PaddlePaddle / PaddleOCR

Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
https://paddlepaddle.github.io/PaddleOCR/
Apache License 2.0
44.47k stars 7.84k forks source link

Crash when using PaddleOCR with CPU on Google Colab #12831

Closed knowpwr closed 5 months ago

knowpwr commented 5 months ago

问题描述 / Problem Description

运行环境 / Runtime Environment

复现代码 / Reproduction Code

I have an issue when using PaddleOCR with Google Colab while choosing CPU runtime. The issue is only restricted to CPU runtime. If I go for GPU option everything works fine. I used the following code to install PaddleOCR into the Google Colab:

!pip install paddlepaddle
!pip install paddleocr

Then, I execture:

from paddleocr import PaddleOCR,draw_ocr
ocr = PaddleOCR(use_angle_cls=True, use_gpu=False)

The notebook crashes on the second line (on initializing PaddleOCR). I see the following line displayed on output:

ppocr DEBUG: Namespace(help='==SUPPRESS==', use_gpu=False, use_xpu=False, use_npu=False, ir_optim=True, use_tensorrt=False, min_subgraph_size=15, precision='fp32', gpu_mem=500, gpu_id=0, image_dir=None, page_num=0, det_algorithm='DB', det_model_dir='/root/.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='/root/.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='/usr/local/lib/python3.10/dist-packages/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=True, cls_model_dir='/root/.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, 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', ocr_version='PP-OCRv4', structure_version='PP-StructureV2')

完整报错 / Complete Error Message

Here is the crash log:

|Timestamp|Level|Message|
|---|---|---|
||WARNING|WARNING:root:kernel 6c85c233-fe5d-4af5-9dde-74fbfe41a0b8 restarted|
||INFO|KernelRestarter: restarting kernel \(1/5\), keep random ports|
||WARNING|  \[SignalInfo: \*\*\* SIGILL \(@0x7d19d5a5a13a\) received by PID 2861 \(TID 0x7d1a2017a000\) from PID 18446744072998986042 \*\*\*\]|
||WARNING|  \[TimeInfo: \*\*\* Aborted at 1717605093 \(unix time\) try "date -d @1717605093" if you are using GNU date \*\*\*\]|
||WARNING|FatalError: `Illegal instruction` is detected by the operating system\.|
||WARNING|----------------------|
||WARNING|Error Message Summary:|
||WARNING|----------------------|
||WARNING|10  paddle::framework::ir::GraphPatternDetector::operator\(\)\(paddle::framework::ir::Graph\*, std::function\<void \(std::map\<paddle::framework::ir::PDNode\*, paddle::framework::ir::Node\*, paddle::framework::ir::GraphPatternDetector::PDNodeCompare, std::allocator\<std::pair\<paddle::framework::ir::PDNode\* const, paddle::framework::ir::Node\*\> \> \> const&, paddle::framework::ir::Graph\*\)\>\)|
||WARNING|9   paddle::framework::ir::SelfAttentionFusePass::ApplyImpl\(paddle::framework::ir::Graph\*\) const|
||WARNING|8   paddle::framework::ir::Pass::Apply\(paddle::framework::ir::Graph\*\) const|
||WARNING|7   paddle::inference::analysis::IRPassManager::Apply\(std::unique\_ptr\<paddle::framework::ir::Graph, std::default\_delete\<paddle::framework::ir::Graph\> \>\)|
||WARNING|6   paddle::inference::analysis::IrAnalysisPass::RunImpl\(paddle::inference::analysis::Argument\*\)|
||WARNING|5   paddle::inference::analysis::Analyzer::RunAnalysis\(paddle::inference::analysis::Argument\*\)|
||WARNING|4   paddle::AnalysisPredictor::OptimizeInferenceProgram\(\)|
||WARNING|3   paddle::AnalysisPredictor::PrepareProgram\(std::shared\_ptr\<paddle::framework::ProgramDesc\> const&\)|
||WARNING|2   paddle::AnalysisPredictor::Init\(std::shared\_ptr\<paddle::framework::Scope\> const&, std::shared\_ptr\<paddle::framework::ProgramDesc\> const&\)|
||WARNING|1   std::unique\_ptr\<paddle::PaddlePredictor, std::default\_delete\<paddle::PaddlePredictor\> \> paddle::CreatePaddlePredictor\<paddle::AnalysisConfig, \(paddle::PaddleEngineKind\)2\>\(paddle::AnalysisConfig const&\)|
||WARNING|0   paddle\_infer::Predictor::Predictor\(paddle::AnalysisConfig const&\)|
||WARNING|--------------------------------------|
||WARNING|C++ Traceback \(most recent call last\):|
||WARNING|--------------------------------------|

Thank you.

GreatV commented 5 months ago

you may try paddlepaddle 2.5

knowpwr commented 5 months ago

Thanks for the reply. Tried with paddlepaddle 2.5 and I got this error:

Error: Can not import paddle core while this file exists: /usr/local/lib/python3.10/dist-packages/paddle/fluid/libpaddle.so

at the following line:

from paddleocr import PaddleOCR,draw_ocr

Also, got another error:

ImportError: libssl.so.1.1: cannot open shared object file: No such file or directory

at:

from . import libpaddle
GreatV commented 5 months ago

@knowpwr This link may solve your problem: https://stackoverflow.com/questions/72133316/libssl-so-1-1-cannot-open-shared-object-file-no-such-file-or-directory.

knowpwr commented 5 months ago

@GreatV That fixed it. Thank you for the help.