PaddleOCR icon indicating copy to clipboard operation
PaddleOCR copied to clipboard

Error with pyclipper inhomogeneous expanded array

Open zovelsanj opened this issue 1 month ago • 1 comments

In case of det_box_type='poly', for some images, np.array(offset.Execute(distance)) can result in inhomogeneous part of the detection box list, which cannot be casted into numpy array directly. Due to this the following error occurs:

  File "C:\Users\ekser\OneDrive\Documents\OCR\cwat-integrator\venv_new\lib\site-packages\paddleocr\paddleocr.py", line 670, in ocr
    dt_boxes, rec_res, _ = self.__call__(img, max_dt_boxes, cls)
  File "C:\Users\ekser\OneDrive\Documents\OCR\cwat-integrator\venv_new\lib\site-packages\paddleocr\tools\infer\predict_system.py", line 76, in __call__
    dt_boxes, elapse = self.text_detector(binarize_img(img))
  File "C:\Users\ekser\OneDrive\Documents\OCR\cwat-integrator\venv_new\lib\site-packages\paddleocr\tools\infer\predict_det.py", line 318, in __call__
    post_result = self.postprocess_op(preds, shape_list)
  File "C:\Users\ekser\OneDrive\Documents\OCR\cwat-integrator\venv_new\lib\site-packages\paddleocr\ppocr\postprocess\db_postprocess.py", line 239, in __call__
    boxes, scores = self.polygons_from_bitmap(pred[batch_index],
  File "C:\Users\ekser\OneDrive\Documents\OCR\cwat-integrator\venv_new\lib\site-packages\paddleocr\ppocr\postprocess\db_postprocess.py", line 84, in polygons_from_bitmap
    box = self.unclip(points, self.unclip_ratio)
  File "C:\Users\ekser\OneDrive\Documents\OCR\cwat-integrator\venv_new\lib\site-packages\paddleocr\ppocr\postprocess\db_postprocess.py", line 159, in unclip
    return np.array(expanded)
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.

This is because the expanded list from pyclipper's offset.Execute is an inhomogeneous list. For example, in the case of the following image: image_8

the expanded list (before converting to numpy array) is as follows: [[[47, 79], [45, 79], [46, 78]], [[56, 78], [58, 78], [59, 79], [55, 79]]] which is an inhomogeneous list and cannot be cast directly to the numpy array. Such expanded lists generally represent the detections with very small area thus resembling lines instead of polygons. Thus, it is better to eliminate such detections.

zovelsanj avatar May 13 '24 12:05 zovelsanj

Thanks for your contribution!

paddle-bot[bot] avatar May 13 '24 12:05 paddle-bot[bot]

not work for me

paddleocr --image_dir doc/imgs/1.jpg --det_box_type poly
[2024/05/15 15:16:12] ppocr DEBUG: Namespace(help='==SUPPRESS==', use_gpu=False, use_xpu=False, use_npu=False, use_mlu=False, ir_optim=True, use_tensorrt=False, min_subgraph_size=15, precision='fp32', gpu_mem=500, gpu_id=0, image_dir='doc/imgs/1.jpg', page_num=0, det_algorithm='DB', det_model_dir='/Users/wangxin/.paddleocr/whl/det/ch/ch_PP-OCRv4_det_infer', det_limit_side_len=960, det_limit_type='max', det_box_type='poly', det_db_thresh=0.3, det_db_box_thresh=0.6, det_db_unclip_ratio=1.5, max_batch_size=10, use_dilation=False, det_db_score_mode='fast', det_east_score_thresh=0.8, det_east_cover_thresh=0.1, det_east_nms_thresh=0.2, det_sast_score_thresh=0.5, det_sast_nms_thresh=0.2, det_pse_thresh=0, det_pse_box_thresh=0.85, det_pse_min_area=16, det_pse_scale=1, scales=[8, 16, 32], alpha=1.0, beta=1.0, fourier_degree=5, rec_algorithm='SVTR_LCNet', rec_model_dir='/Users/wangxin/.paddleocr/whl/rec/ch/ch_PP-OCRv4_rec_infer', rec_image_inverse=True, rec_image_shape='3, 48, 320', rec_batch_num=6, max_text_length=25, rec_char_dict_path='/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/utils/ppocr_keys_v1.txt', use_space_char=True, vis_font_path='./doc/fonts/simfang.ttf', drop_score=0.5, e2e_algorithm='PGNet', e2e_model_dir=None, e2e_limit_side_len=768, e2e_limit_type='max', e2e_pgnet_score_thresh=0.5, e2e_char_dict_path='./ppocr/utils/ic15_dict.txt', e2e_pgnet_valid_set='totaltext', e2e_pgnet_mode='fast', use_angle_cls=False, cls_model_dir='/Users/wangxin/.paddleocr/whl/cls/ch_ppocr_mobile_v2.0_cls_infer', cls_image_shape='3, 48, 192', label_list=['0', '180'], cls_batch_num=6, cls_thresh=0.9, enable_mkldnn=False, cpu_threads=10, use_pdserving=False, warmup=False, sr_model_dir=None, sr_image_shape='3, 32, 128', sr_batch_num=1, draw_img_save_dir='./inference_results', save_crop_res=False, crop_res_save_dir='./output', use_mp=False, total_process_num=1, process_id=0, benchmark=False, save_log_path='./log_output/', show_log=True, use_onnx=False, return_word_box=False, output='./output', table_max_len=488, table_algorithm='TableAttn', table_model_dir=None, merge_no_span_structure=True, table_char_dict_path=None, layout_model_dir=None, layout_dict_path=None, layout_score_threshold=0.5, layout_nms_threshold=0.5, kie_algorithm='LayoutXLM', ser_model_dir=None, re_model_dir=None, use_visual_backbone=True, ser_dict_path='../train_data/XFUND/class_list_xfun.txt', ocr_order_method=None, mode='structure', image_orientation=False, layout=True, table=True, ocr=True, recovery=False, use_pdf2docx_api=False, invert=False, binarize=False, alphacolor=(255, 255, 255), lang='ch', det=True, rec=True, type='ocr', savefile=False, ocr_version='PP-OCRv4', structure_version='PP-StructureV2')
[2024/05/15 15:16:13] ppocr INFO: **********doc/imgs/1.jpg**********
Traceback (most recent call last):
  File "/Users/wangxin/miniconda3/envs/ppocr/bin/paddleocr", line 33, in <module>
    sys.exit(load_entry_point('paddleocr==2.8.0', 'console_scripts', 'paddleocr')())
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/paddleocr.py", line 880, in main
    result = engine.ocr(
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/paddleocr.py", line 727, in ocr
    dt_boxes, rec_res, _ = self.__call__(img, cls)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_system.py", line 83, in __call__
    dt_boxes, elapse = self.text_detector(img)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_det.py", line 379, in __call__
    dt_boxes, elapse = self.predict(img)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_det.py", line 268, in predict
    post_result = self.postprocess_op(preds, shape_list)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/postprocess/db_postprocess.py", line 240, in __call__
    boxes, scores = self.polygons_from_bitmap(
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/postprocess/db_postprocess.py", line 92, in polygons_from_bitmap
    box = box.reshape(-1, 2)
AttributeError: 'list' object has no attribute 'reshape'

GreatV avatar May 15 '24 07:05 GreatV

not work for me

paddleocr --image_dir doc/imgs/1.jpg --det_box_type poly
[2024/05/15 15:16:12] ppocr DEBUG: Namespace(help='==SUPPRESS==', use_gpu=False, use_xpu=False, use_npu=False, use_mlu=False, ir_optim=True, use_tensorrt=False, min_subgraph_size=15, precision='fp32', gpu_mem=500, gpu_id=0, image_dir='doc/imgs/1.jpg', page_num=0, det_algorithm='DB', det_model_dir='/Users/wangxin/.paddleocr/whl/det/ch/ch_PP-OCRv4_det_infer', det_limit_side_len=960, det_limit_type='max', det_box_type='poly', det_db_thresh=0.3, det_db_box_thresh=0.6, det_db_unclip_ratio=1.5, max_batch_size=10, use_dilation=False, det_db_score_mode='fast', det_east_score_thresh=0.8, det_east_cover_thresh=0.1, det_east_nms_thresh=0.2, det_sast_score_thresh=0.5, det_sast_nms_thresh=0.2, det_pse_thresh=0, det_pse_box_thresh=0.85, det_pse_min_area=16, det_pse_scale=1, scales=[8, 16, 32], alpha=1.0, beta=1.0, fourier_degree=5, rec_algorithm='SVTR_LCNet', rec_model_dir='/Users/wangxin/.paddleocr/whl/rec/ch/ch_PP-OCRv4_rec_infer', rec_image_inverse=True, rec_image_shape='3, 48, 320', rec_batch_num=6, max_text_length=25, rec_char_dict_path='/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/utils/ppocr_keys_v1.txt', use_space_char=True, vis_font_path='./doc/fonts/simfang.ttf', drop_score=0.5, e2e_algorithm='PGNet', e2e_model_dir=None, e2e_limit_side_len=768, e2e_limit_type='max', e2e_pgnet_score_thresh=0.5, e2e_char_dict_path='./ppocr/utils/ic15_dict.txt', e2e_pgnet_valid_set='totaltext', e2e_pgnet_mode='fast', use_angle_cls=False, cls_model_dir='/Users/wangxin/.paddleocr/whl/cls/ch_ppocr_mobile_v2.0_cls_infer', cls_image_shape='3, 48, 192', label_list=['0', '180'], cls_batch_num=6, cls_thresh=0.9, enable_mkldnn=False, cpu_threads=10, use_pdserving=False, warmup=False, sr_model_dir=None, sr_image_shape='3, 32, 128', sr_batch_num=1, draw_img_save_dir='./inference_results', save_crop_res=False, crop_res_save_dir='./output', use_mp=False, total_process_num=1, process_id=0, benchmark=False, save_log_path='./log_output/', show_log=True, use_onnx=False, return_word_box=False, output='./output', table_max_len=488, table_algorithm='TableAttn', table_model_dir=None, merge_no_span_structure=True, table_char_dict_path=None, layout_model_dir=None, layout_dict_path=None, layout_score_threshold=0.5, layout_nms_threshold=0.5, kie_algorithm='LayoutXLM', ser_model_dir=None, re_model_dir=None, use_visual_backbone=True, ser_dict_path='../train_data/XFUND/class_list_xfun.txt', ocr_order_method=None, mode='structure', image_orientation=False, layout=True, table=True, ocr=True, recovery=False, use_pdf2docx_api=False, invert=False, binarize=False, alphacolor=(255, 255, 255), lang='ch', det=True, rec=True, type='ocr', savefile=False, ocr_version='PP-OCRv4', structure_version='PP-StructureV2')
[2024/05/15 15:16:13] ppocr INFO: **********doc/imgs/1.jpg**********
Traceback (most recent call last):
  File "/Users/wangxin/miniconda3/envs/ppocr/bin/paddleocr", line 33, in <module>
    sys.exit(load_entry_point('paddleocr==2.8.0', 'console_scripts', 'paddleocr')())
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/paddleocr.py", line 880, in main
    result = engine.ocr(
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/paddleocr.py", line 727, in ocr
    dt_boxes, rec_res, _ = self.__call__(img, cls)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_system.py", line 83, in __call__
    dt_boxes, elapse = self.text_detector(img)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_det.py", line 379, in __call__
    dt_boxes, elapse = self.predict(img)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_det.py", line 268, in predict
    post_result = self.postprocess_op(preds, shape_list)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/postprocess/db_postprocess.py", line 240, in __call__
    boxes, scores = self.polygons_from_bitmap(
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/postprocess/db_postprocess.py", line 92, in polygons_from_bitmap
    box = box.reshape(-1, 2)
AttributeError: 'list' object has no attribute 'reshape'

Hi @GreatV, I have fixed the code now. Actually there should have been numpy array conversion at line 92. Just in case the image attached in the description doesn't reproduce the error, here is another one. image.zip

zovelsanj avatar May 15 '24 07:05 zovelsanj

paddleocr --image_dir doc/imgs/1.jpg --det_box_type poly
[2024/05/15 15:45:48] ppocr DEBUG: Namespace(help='==SUPPRESS==', use_gpu=False, use_xpu=False, use_npu=False, use_mlu=False, ir_optim=True, use_tensorrt=False, min_subgraph_size=15, precision='fp32', gpu_mem=500, gpu_id=0, image_dir='doc/imgs/1.jpg', page_num=0, det_algorithm='DB', det_model_dir='/Users/wangxin/.paddleocr/whl/det/ch/ch_PP-OCRv4_det_infer', det_limit_side_len=960, det_limit_type='max', det_box_type='poly', det_db_thresh=0.3, det_db_box_thresh=0.6, det_db_unclip_ratio=1.5, max_batch_size=10, use_dilation=False, det_db_score_mode='fast', det_east_score_thresh=0.8, det_east_cover_thresh=0.1, det_east_nms_thresh=0.2, det_sast_score_thresh=0.5, det_sast_nms_thresh=0.2, det_pse_thresh=0, det_pse_box_thresh=0.85, det_pse_min_area=16, det_pse_scale=1, scales=[8, 16, 32], alpha=1.0, beta=1.0, fourier_degree=5, rec_algorithm='SVTR_LCNet', rec_model_dir='/Users/wangxin/.paddleocr/whl/rec/ch/ch_PP-OCRv4_rec_infer', rec_image_inverse=True, rec_image_shape='3, 48, 320', rec_batch_num=6, max_text_length=25, rec_char_dict_path='/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/utils/ppocr_keys_v1.txt', use_space_char=True, vis_font_path='./doc/fonts/simfang.ttf', drop_score=0.5, e2e_algorithm='PGNet', e2e_model_dir=None, e2e_limit_side_len=768, e2e_limit_type='max', e2e_pgnet_score_thresh=0.5, e2e_char_dict_path='./ppocr/utils/ic15_dict.txt', e2e_pgnet_valid_set='totaltext', e2e_pgnet_mode='fast', use_angle_cls=False, cls_model_dir='/Users/wangxin/.paddleocr/whl/cls/ch_ppocr_mobile_v2.0_cls_infer', cls_image_shape='3, 48, 192', label_list=['0', '180'], cls_batch_num=6, cls_thresh=0.9, enable_mkldnn=False, cpu_threads=10, use_pdserving=False, warmup=False, sr_model_dir=None, sr_image_shape='3, 32, 128', sr_batch_num=1, draw_img_save_dir='./inference_results', save_crop_res=False, crop_res_save_dir='./output', use_mp=False, total_process_num=1, process_id=0, benchmark=False, save_log_path='./log_output/', show_log=True, use_onnx=False, return_word_box=False, output='./output', table_max_len=488, table_algorithm='TableAttn', table_model_dir=None, merge_no_span_structure=True, table_char_dict_path=None, layout_model_dir=None, layout_dict_path=None, layout_score_threshold=0.5, layout_nms_threshold=0.5, kie_algorithm='LayoutXLM', ser_model_dir=None, re_model_dir=None, use_visual_backbone=True, ser_dict_path='../train_data/XFUND/class_list_xfun.txt', ocr_order_method=None, mode='structure', image_orientation=False, layout=True, table=True, ocr=True, recovery=False, use_pdf2docx_api=False, invert=False, binarize=False, alphacolor=(255, 255, 255), lang='ch', det=True, rec=True, type='ocr', savefile=False, ocr_version='PP-OCRv4', structure_version='PP-StructureV2')
[2024/05/15 15:45:49] ppocr INFO: **********doc/imgs/1.jpg**********
Traceback (most recent call last):
  File "/Users/wangxin/miniconda3/envs/ppocr/bin/paddleocr", line 33, in <module>
    sys.exit(load_entry_point('paddleocr==2.8.0', 'console_scripts', 'paddleocr')())
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/paddleocr.py", line 880, in main
    result = engine.ocr(
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/paddleocr.py", line 727, in ocr
    dt_boxes, rec_res, _ = self.__call__(img, cls)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_system.py", line 83, in __call__
    dt_boxes, elapse = self.text_detector(img)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_det.py", line 379, in __call__
    dt_boxes, elapse = self.predict(img)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_det.py", line 272, in predict
    dt_boxes = self.filter_tag_det_res_only_clip(dt_boxes, ori_im.shape)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_det.py", line 212, in filter_tag_det_res_only_clip
    dt_boxes = np.array(dt_boxes_new)
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.
(ppocr) (ppocr) 

GreatV avatar May 15 '24 07:05 GreatV

paddleocr --image_dir doc/imgs/1.jpg
[2024/05/15 15:45:36] ppocr DEBUG: Namespace(help='==SUPPRESS==', use_gpu=False, use_xpu=False, use_npu=False, use_mlu=False, ir_optim=True, use_tensorrt=False, min_subgraph_size=15, precision='fp32', gpu_mem=500, gpu_id=0, image_dir='doc/imgs/1.jpg', page_num=0, det_algorithm='DB', det_model_dir='/Users/wangxin/.paddleocr/whl/det/ch/ch_PP-OCRv4_det_infer', det_limit_side_len=960, det_limit_type='max', det_box_type='quad', det_db_thresh=0.3, det_db_box_thresh=0.6, det_db_unclip_ratio=1.5, max_batch_size=10, use_dilation=False, det_db_score_mode='fast', det_east_score_thresh=0.8, det_east_cover_thresh=0.1, det_east_nms_thresh=0.2, det_sast_score_thresh=0.5, det_sast_nms_thresh=0.2, det_pse_thresh=0, det_pse_box_thresh=0.85, det_pse_min_area=16, det_pse_scale=1, scales=[8, 16, 32], alpha=1.0, beta=1.0, fourier_degree=5, rec_algorithm='SVTR_LCNet', rec_model_dir='/Users/wangxin/.paddleocr/whl/rec/ch/ch_PP-OCRv4_rec_infer', rec_image_inverse=True, rec_image_shape='3, 48, 320', rec_batch_num=6, max_text_length=25, rec_char_dict_path='/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/utils/ppocr_keys_v1.txt', use_space_char=True, vis_font_path='./doc/fonts/simfang.ttf', drop_score=0.5, e2e_algorithm='PGNet', e2e_model_dir=None, e2e_limit_side_len=768, e2e_limit_type='max', e2e_pgnet_score_thresh=0.5, e2e_char_dict_path='./ppocr/utils/ic15_dict.txt', e2e_pgnet_valid_set='totaltext', e2e_pgnet_mode='fast', use_angle_cls=False, cls_model_dir='/Users/wangxin/.paddleocr/whl/cls/ch_ppocr_mobile_v2.0_cls_infer', cls_image_shape='3, 48, 192', label_list=['0', '180'], cls_batch_num=6, cls_thresh=0.9, enable_mkldnn=False, cpu_threads=10, use_pdserving=False, warmup=False, sr_model_dir=None, sr_image_shape='3, 32, 128', sr_batch_num=1, draw_img_save_dir='./inference_results', save_crop_res=False, crop_res_save_dir='./output', use_mp=False, total_process_num=1, process_id=0, benchmark=False, save_log_path='./log_output/', show_log=True, use_onnx=False, return_word_box=False, output='./output', table_max_len=488, table_algorithm='TableAttn', table_model_dir=None, merge_no_span_structure=True, table_char_dict_path=None, layout_model_dir=None, layout_dict_path=None, layout_score_threshold=0.5, layout_nms_threshold=0.5, kie_algorithm='LayoutXLM', ser_model_dir=None, re_model_dir=None, use_visual_backbone=True, ser_dict_path='../train_data/XFUND/class_list_xfun.txt', ocr_order_method=None, mode='structure', image_orientation=False, layout=True, table=True, ocr=True, recovery=False, use_pdf2docx_api=False, invert=False, binarize=False, alphacolor=(255, 255, 255), lang='ch', det=True, rec=True, type='ocr', savefile=False, ocr_version='PP-OCRv4', structure_version='PP-StructureV2')
[2024/05/15 15:45:37] ppocr INFO: **********doc/imgs/1.jpg**********
Traceback (most recent call last):
  File "/Users/wangxin/miniconda3/envs/ppocr/bin/paddleocr", line 33, in <module>
    sys.exit(load_entry_point('paddleocr==2.8.0', 'console_scripts', 'paddleocr')())
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/paddleocr.py", line 880, in main
    result = engine.ocr(
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/paddleocr.py", line 727, in ocr
    dt_boxes, rec_res, _ = self.__call__(img, cls)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_system.py", line 83, in __call__
    dt_boxes, elapse = self.text_detector(img)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_det.py", line 379, in __call__
    dt_boxes, elapse = self.predict(img)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/tools/infer/predict_det.py", line 268, in predict
    post_result = self.postprocess_op(preds, shape_list)
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/postprocess/db_postprocess.py", line 246, in __call__
    boxes, scores = self.boxes_from_bitmap(
  File "/Users/wangxin/miniconda3/envs/ppocr/lib/python3.10/site-packages/paddleocr-2.8.0-py3.10.egg/paddleocr/ppocr/postprocess/db_postprocess.py", line 143, in boxes_from_bitmap
    box = self.unclip(points, self.unclip_ratio).reshape(-1, 1, 2)
AttributeError: 'list' object has no attribute 'reshape'

GreatV avatar May 15 '24 07:05 GreatV

hi @zovelsanj, please ensure it works well for both 'quad' and 'poly'.

GreatV avatar May 15 '24 07:05 GreatV

hi @zovelsanj, please ensure it works well for both 'quad' and 'poly'.

Hi @GreatV, thanks. I only checked it for --det_box_type poly. I have now made the corresponding changes for --det_box_type quad as well. Also, I have added polygon padding to address the inhomogeneous part issue for the case of poly. These should fix all the issues you encountered.

zovelsanj avatar May 15 '24 08:05 zovelsanj

@zovelsanj, please install and configure pre-commit to pass the CI checks. I will run some tests to verify if it is working correctly.

GreatV avatar May 15 '24 14:05 GreatV