v2.10.0

PaddlePaddle/PaddleOCRv2.10.0Mar 7, 2025by cuicheng01

AI Summary

A maintenance release focusing on bug fixes, documentation updates, and compatibility improvements. It adds support for a new Chinese document recognition model and various deployment updates.

Key Highlights

  • Added `ch_doc` language support for Chinese document recognition (supports 15,000+ characters).
  • Added support for GCU (Enflame) inference.
  • Updated ONNX execution providers to accept arrays.
  • Removed Python 2 compatibility dependency.
  • Upgraded to numpy 2.0 and removed imgaug.

Breaking Changes

  • Removed Python 2 compatibility dependency (`six`).
  • Upgraded to numpy 2.0.
  • Removed `imgaug` dependency.

New Features

  • New `ch_doc` recognition model
  • GCU device support
  • Unimernet model support
  • SLANext model support
  • Formulanet model support
  • Thai language dictionary support

Full Release Notes

## What's Changed
* update docs by @cuicheng01 in https://github.com/PaddlePaddle/PaddleOCR/pull/14031
* update paddle2onnx doc by @inisis in https://github.com/PaddlePaddle/PaddleOCR/pull/14038
* fix gpu memory growth by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14037
* updata en docs by @dyning in https://github.com/PaddlePaddle/PaddleOCR/pull/14036
* fix nan in PP-OCRv4 by @wangna11BD in https://github.com/PaddlePaddle/PaddleOCR/pull/14043
* update a live promotion by @Zhiiixin in https://github.com/PaddlePaddle/PaddleOCR/pull/14042
* reset latex ocr by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14046
* Update pyproject.toml for add dependency by @Liyulingyue in https://github.com/PaddlePaddle/PaddleOCR/pull/14058
* Fix `CMAKE_CXX_FLAGS` optimize flag by @Hirozy in https://github.com/PaddlePaddle/PaddleOCR/pull/14059
* fix isnan_v2 is not supported in paddle2onnx by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14060
* ci: Fixed docs multi version error by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14048
* fix hyperlinks by @AmberC0209 in https://github.com/PaddlePaddle/PaddleOCR/pull/14073
* fix nan in ppocrv4 for benchmark by @wangna11BD in https://github.com/PaddlePaddle/PaddleOCR/pull/14072
* ci: Support seperate update of branch docs by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14079
* ci: fixed main doc ci by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14084
* Allow `create_predictor` function to accept array of ONNX Execution Providers by @Salmondx in https://github.com/PaddlePaddle/PaddleOCR/pull/14078
* docs: update quickstart by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14108
* docs: add command line usage documentation of quickstart page by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14110
* docs: add installation documentation of paddle by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14117
* docs: fixed typo by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14118
* image without any text will show a warning by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14132
* doc: remove duplicate paragraphs by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14133
* docs: update paddle2onnx documentations by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14144
* [third-party] Fix the issue of inference errors with KIE mode in ONNX format by @Alex37882388 in https://github.com/PaddlePaddle/PaddleOCR/pull/14138
* update tests PR CI github action by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14159
* 移除doc目录下文档,保留fonts和doc_i18n两个目录 by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14156
* 移除ppstructure目录下旧有文档 by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14161
* docs: fixed error image link (#14164) by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14165
* 更新i18n的首页内容到新站点 by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14166
* docs: fix i18n languange code error by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14167
* docs: fix syntax error by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14168
* docs: update i18n docs by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14169
* upgrade to numpy 2.0 and remove imgaug by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/13937
* docs: format multi languange docs home page by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14170
* docs: add the missing image by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14180
* Create close_inactive_issues.yaml by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14183
* update hpi config by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14076
* Update close_inactive_issues.yaml by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14189
* Update close_inactive_issues.yaml by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14190
* remove lock inactive issues by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14192
* fix benchmark bug by @changdazhou in https://github.com/PaddlePaddle/PaddleOCR/pull/14194
* pre-commit autoupdate && pre-commit run --all-files by @cclauss in https://github.com/PaddlePaddle/PaddleOCR/pull/14201
* Remove Python 2 compatibility dependency six by @cclauss in https://github.com/PaddlePaddle/PaddleOCR/pull/14202
* update quick_start by @AmberC0209 in https://github.com/PaddlePaddle/PaddleOCR/pull/14200
* rename train result by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14217
* fix benchmark bug by @changdazhou in https://github.com/PaddlePaddle/PaddleOCR/pull/14235
* fix benchmark det_r50_vd_pse_v2_0 train error by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14239
* update infer/utility.py to support json format model by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14233
* Support inference for GCU by @EnflameGCU in https://github.com/PaddlePaddle/PaddleOCR/pull/14142
* update docs by @AmberC0209 in https://github.com/PaddlePaddle/PaddleOCR/pull/14230
* fix: Title text partially missing issue in `recovery_to_markdown.py` by @Coobiw in https://github.com/PaddlePaddle/PaddleOCR/pull/14216
* change_support list by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14293
* support latexocr static train by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14297
* docs: Fix chinese image being displayed on the english readme page by @khanfarhan10 in https://github.com/PaddlePaddle/PaddleOCR/pull/14299
* docs: update quick_start and recognition doc by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14302
* add d2s_train_image_shape for static train by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14312
* update install command by @AmberC0209 in https://github.com/PaddlePaddle/PaddleOCR/pull/14314
* fix: unable to export images without text to docx format by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14306
* paddle.shape return int64 tensor by @wanghuancoder in https://github.com/PaddlePaddle/PaddleOCR/pull/14318
* docs: add warning of Apolications part by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14338
* Update algorithm_rec_cppd.md by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14366
* Update 印章弯曲文字识别.md by @BUJIQI in https://github.com/PaddlePaddle/PaddleOCR/pull/14368
* update_det_static by @Sunting78 in https://github.com/PaddlePaddle/PaddleOCR/pull/14372
* fix:calcute the left_center_pt and right_center_pt from min_area_quad by @fangfangzk in https://github.com/PaddlePaddle/PaddleOCR/pull/14363
* add unimernet model by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14357
* fix shape64 by @wanghuancoder in https://github.com/PaddlePaddle/PaddleOCR/pull/14376
* add slanext models by @liu-jiaxuan in https://github.com/PaddlePaddle/PaddleOCR/pull/14374
* fix: replace `rec_image_shape` when manually set by @JesuisTong in https://github.com/PaddlePaddle/PaddleOCR/pull/14371
* repair type bug for ppocrv3 by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14397
* [WIP]support export with pir and no pir by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14379
* Add pp formulanet by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14429
* repair formula bug when export by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14442
* modify export with pir by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14441
* update SLANet inference weights for adapt to paddle3.0b2 by @cuicheng01 in https://github.com/PaddlePaddle/PaddleOCR/pull/14467
* fix_server_v4_det_output by @Sunting78 in https://github.com/PaddlePaddle/PaddleOCR/pull/14472
* fix label_dict save bug by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14273
* add ppocrv4_doc dict by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14499
* fix latex_ocr inference by @vivienfanghuagood in https://github.com/PaddlePaddle/PaddleOCR/pull/14498
* fix SLANeXt export bug by @liu-jiaxuan in https://github.com/PaddlePaddle/PaddleOCR/pull/14512
* add version control for export and modify hpi config by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14513
* fix slanext export bug by @liu-jiaxuan in https://github.com/PaddlePaddle/PaddleOCR/pull/14519
* repair bug in latexocr cpu infer and typo in bleu score by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14552
* Fix language error and spelling mistakes in the documentation by @timminator in https://github.com/PaddlePaddle/PaddleOCR/pull/14571
* Keep GitHub Actions up to date with GitHub's Dependabot by @cclauss in https://github.com/PaddlePaddle/PaddleOCR/pull/14569
* repair train bug in multi gpu by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14576
* build(deps): bump the github-actions group with 3 updates by @dependabot in https://github.com/PaddlePaddle/PaddleOCR/pull/14573
* remove max inplace grad by @phlrain in https://github.com/PaddlePaddle/PaddleOCR/pull/14596
* build(deps): bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 in the github-actions group by @dependabot in https://github.com/PaddlePaddle/PaddleOCR/pull/14603
* CPP: emplace_back() replaces many push_back()...to improve performance by @nonwill in https://github.com/PaddlePaddle/PaddleOCR/pull/14610
* Add Thai character dictionary for OCR recognition by @Thanajade in https://github.com/PaddlePaddle/PaddleOCR/pull/14620
* CPP: Make functions mostly noexcept to improve runtime performance by @nonwill in https://github.com/PaddlePaddle/PaddleOCR/pull/14613
* CPP: tidied file header includes by @nonwill in https://github.com/PaddlePaddle/PaddleOCR/pull/14621
* repair bleu score computation by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14626
* CPP: codes view and some minimum fix (compiler warning...) by @nonwill in https://github.com/PaddlePaddle/PaddleOCR/pull/14635
* Add english docu for CMAKE compilation on windows by @timminator in https://github.com/PaddlePaddle/PaddleOCR/pull/14641
* CPP: Using vector initialize list constructor by @nonwill in https://github.com/PaddlePaddle/PaddleOCR/pull/14656
* fix dy shapes of trt for rec models by @TingquanGao in https://github.com/PaddlePaddle/PaddleOCR/pull/14654
* Update quick_start.md by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14658
* allow environment variable for BASE_DIR models by @mauryaland in https://github.com/PaddlePaddle/PaddleOCR/pull/14678
* use the env variable PADDLE_OCR_BASE_DIR if it exists to download models by @mauryaland in https://github.com/PaddlePaddle/PaddleOCR/pull/14686
* docs: update quick_start doc by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14690
* docs/en: fix typo by @jk4e in https://github.com/PaddlePaddle/PaddleOCR/pull/14715
* fix_ppocrv3_dy2st_config by @Sunting78 in https://github.com/PaddlePaddle/PaddleOCR/pull/14721
* fix static train of ppocrv3_mobile_rec by @liuhongen1234567 in https://github.com/PaddlePaddle/PaddleOCR/pull/14724
* docs: add infer_deploy module in navigate bar by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/14728
* docs: update paddle2onnx docs by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14745
* docs: update android demo doc by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14756
* fix LaTeXOCR hpi_config by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14739
* unlock albumentations version by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14746
* fix `OverflowError` in text_visual func by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14758
* Fix typos by @co63oc in https://github.com/PaddlePaddle/PaddleOCR/pull/14795
* Fix typos by @co63oc in https://github.com/PaddlePaddle/PaddleOCR/pull/14798
* Fix typos by @co63oc in https://github.com/PaddlePaddle/PaddleOCR/pull/14800
* remove usused mem in latex_ocr head by @warrentdrew in https://github.com/PaddlePaddle/PaddleOCR/pull/14803
* Fix typos in several files by @co63oc in https://github.com/PaddlePaddle/PaddleOCR/pull/14808
* Fix typos in several files by @co63oc in https://github.com/PaddlePaddle/PaddleOCR/pull/14812
* fix bs for hpi config by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14807
* add cli rec model by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/14740
* docs: fix typos by @jk4e in https://github.com/PaddlePaddle/PaddleOCR/pull/14816
* docs: fix typos by @jk4e in https://github.com/PaddlePaddle/PaddleOCR/pull/14817
* New capabilities added for version 2.10 by @cuicheng01 in https://github.com/PaddlePaddle/PaddleOCR/pull/14810
* Fix wrong date in newly added capabilities by @timminator in https://github.com/PaddlePaddle/PaddleOCR/pull/14819
* docs: remove Python 3.7 related expressions by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/14818
* Release/2.10 by @cuicheng01 in https://github.com/PaddlePaddle/PaddleOCR/pull/14823

## New Contributors
* @Hirozy made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14059
* @Salmondx made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14078
* @Alex37882388 made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14138
* @cclauss made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14201
* @EnflameGCU made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14142
* @Coobiw made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14216
* @khanfarhan10 made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14299
* @BUJIQI made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14368
* @fangfangzk made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14363
* @JesuisTong made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14371
* @vivienfanghuagood made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14498
* @timminator made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14571
* @dependabot made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14573
* @phlrain made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14596
* @nonwill made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14610
* @Thanajade made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14620
* @mauryaland made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14678
* @jk4e made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14715
* @warrentdrew made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/14803

## Package New Features
- A new Chinese recognition model for document scenarios, addressing some rare Chinese characters, supports a character count exceeding 15,000. CLI usage is as follows:

```bash
paddleocr --image_dir xxx.png --lang ch_doc
```
Similarly, in the Python API, you only need to change the `lang` parameter to ` ch_doc`.

**Full Changelog**: https://github.com/PaddlePaddle/PaddleOCR/compare/v2.9.1...v2.10.0