Skip to content

[Regression] PaddleOCR 3.0.0/3.0.1 requires specifying the model directory and name #15707

Open
@timminator

Description

@timminator

🔎 Search before asking

  • I have searched the PaddleOCR Docs and found no similar bug report.
  • I have searched the PaddleOCR Issues and found no similar bug report.
  • I have searched the PaddleOCR Discussions and found no similar bug report.

🐛 Bug (问题描述)

In PaddleOCR 2.10 it was enough to specify the detection model dir, in PaddleOCR 3.0.0 it is required to specify both, when not the user sees this error which is not very user friendly:

paddleocr ocr --i "Path\to\image" --lang fr  --use_doc_orientation_classify false --use_doc_unwarping false --use_textline_orientation false --device cpu --text_detection_model_dir "C:\Users\gpuvm\.paddlex\official_models\PP-OCRv3_mobile_det" --text_recognition_model_dir "C:\Users\gpuvm\.paddlex\official_models\latin_PP-OCRv3_mobile_rec"
C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddleocr\_utils\cli.py:107: UserWarning: `lang` and `ocr_version` will be ignored when model names or model directories are not `None`.
  wrapper = wrapper_cls(**init_params)
Creating model: ('PP-OCRv5_server_det', 'C:\\Users\\gpuvm\\.paddlex\\official_models\\PP-OCRv3_mobile_det')
Traceback (most recent call last):
  File "C:\Users\gpuvm\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\gpuvm\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\Scripts\paddleocr.exe\__main__.py", line 7, in <module>
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddleocr\__main__.py", line 26, in console_entry
    main()
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddleocr\_cli.py", line 124, in main
    _execute(args)
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddleocr\_cli.py", line 113, in _execute
    args.executor(args)
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddleocr\_pipelines\ocr.py", line 598, in execute_with_args
    perform_simple_inference_ocr(PaddleOCR, params)
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddleocr\_utils\cli.py", line 107, in perform_simple_inference_ocr
    wrapper = wrapper_cls(**init_params)
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddleocr\_pipelines\ocr.py", line 161, in __init__
    super().__init__(**base_params)
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddleocr\_pipelines\base.py", line 63, in __init__
    self.paddlex_pipeline = self._create_paddlex_pipeline()
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddleocr\_pipelines\base.py", line 97, in _create_paddlex_pipeline
    return create_pipeline(config=self._merged_paddlex_config, **kwargs)
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddlex\inference\pipelines\__init__.py", line 165, in create_pipeline
    pipeline = BasePipeline.get(pipeline_name)(
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddlex\utils\deps.py", line 195, in _wrapper
    return old_init_func(self, *args, **kwargs)
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 103, in __init__
    self._pipeline = self._create_internal_pipeline(config, self.device)
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddlex\inference\pipelines\_parallel.py", line 158, in _create_internal_pipeline
    return self._pipeline_cls(
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddlex\inference\pipelines\ocr\pipeline.py", line 114, in __init__
    self.text_det_model = self.create_model(
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddlex\inference\pipelines\base.py", line 107, in create_model
    model = create_predictor(
  File "C:\Users\gpuvm\Desktop\New folder (2)\venv-3.10\lib\site-packages\paddlex\inference\models\__init__.py", line 74, in create_predictor
    assert (
AssertionError: Model name mismatch,please input the correct model dir.

This happens because it just defaults to PPOCRv5 if nothing is specified, even though the model name can be derived from the model directory name.

🏃‍♂️ Environment (运行环境)

OS: Windows 11
PaddleOCR 3.0.1
PaddlePaddle 3.0.0 (CPU version)
16GB RAM
GPU: Nvidia GTX 1660 TI
Installed via pip in a venv with Python 3.10

🌰 Minimal Reproducible Example (最小可复现问题的Demo)

Explained above

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions