PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field, with built-in PP-OCR model to automatically detect and re-recognize data. It is written in python3 and pyqt5, supporting rectangular box, table and multi-point annotation modes. Annotations can be directly used for the training of PP-OCR detection and recognition models.
PPOCRLabelv2 is a semi-automatic graphic annotation tool suitable for OCR field, with built-in PP-OCR model to automatically detect and re-recognize data. It is written in Python3 and PyQT5, supporting rectangular box, table, irregular text and key information annotation modes. Annotations can be directly used for the training of PP-OCR detection and recognition models.
description='PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field, with built-in PPOCR model to automatically detect and re-recognize data. It is written in python3 and pyqt5, supporting rectangular box annotation and four-point annotation modes. Annotations can be directly used for the training of PPOCR detection and recognition models',
description='PPOCRLabel is a semi-automatic graphic annotation tool suitable for OCR field, with built-in PPOCR model to automatically detect and re-recognize data. It is written in python3 and pyqt5, supporting rectangular box annotation and four-point annotation modes. Annotations can be directly used for the training of PPOCR detection and recognition models',
logger.error("error in loading image:{}".format(image_file))
returnNone
ifisinstance(img,np.ndarray)andlen(img.shape)==2:
img=cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
returnimg
classPaddleOCR(predict_system.TextSystem):
classPaddleOCR(predict_system.TextSystem):
def__init__(self,**kwargs):
def__init__(self,**kwargs):
"""
"""
...
@@ -482,7 +509,7 @@ class PaddleOCR(predict_system.TextSystem):
...
@@ -482,7 +509,7 @@ class PaddleOCR(predict_system.TextSystem):
rec: use text recognition or not. If false, only det will be exec. Default is True
rec: use text recognition or not. If false, only det will be exec. Default is True
cls: use angle classifier or not. Default is True. If true, the text with rotation of 180 degrees can be recognized. If no text is rotated by 180 degrees, use cls=False to get better performance. Text with rotation of 90 or 270 degrees can be recognized even if cls=False.
cls: use angle classifier or not. Default is True. If true, the text with rotation of 180 degrees can be recognized. If no text is rotated by 180 degrees, use cls=False to get better performance. Text with rotation of 90 or 270 degrees can be recognized even if cls=False.
"""
"""
assertisinstance(img,(np.ndarray,list,str))
assertisinstance(img,(np.ndarray,list,str,bytes))
ifisinstance(img,list)anddet==True:
ifisinstance(img,list)anddet==True:
logger.error('When input a list of images, det must be false')
logger.error('When input a list of images, det must be false')
exit(0)
exit(0)
...
@@ -491,22 +518,8 @@ class PaddleOCR(predict_system.TextSystem):
...
@@ -491,22 +518,8 @@ class PaddleOCR(predict_system.TextSystem):
'Since the angle classifier is not initialized, the angle classifier will not be uesd during the forward process'
'Since the angle classifier is not initialized, the angle classifier will not be uesd during the forward process'
)
)
ifisinstance(img,str):
img=check_img(img)
# download net image
ifimg.startswith('http'):
download_with_progressbar(img,'tmp.jpg')
img='tmp.jpg'
image_file=img
img,flag,_=check_and_read(image_file)
ifnotflag:
withopen(image_file,'rb')asf:
np_arr=np.frombuffer(f.read(),dtype=np.uint8)
img=cv2.imdecode(np_arr,cv2.IMREAD_COLOR)
ifimgisNone:
logger.error("error in loading image:{}".format(image_file))