v2.8.0
PaddlePaddle/PaddleOCRv2.8.0Jul 4, 2024by GreatV
AI Summary
A major release introducing PP-OCRv4 and several new algorithm models (ParseQ, SVTR Large, CPPD). It focuses on performance, multi-language support, and ONNX runtime improvements.
Key Highlights
- Released PP-OCRv4 (mobile and server) with significant accuracy improvements.
- Added ParseQ recognition method.
- Added SVTR Large model.
- Added CPPD (Compact Prediction Dense) model.
- Added ONNX Runtime GPU support.
Breaking Changes
- Removed `fluid` API (Paddle 2.6+ requirement).
- Temporarily set numpy < 2.0.
New Features
- PP-OCRv4 models
- ParseQ model
- SVTR Large model
- CPPD model
- ONNX Runtime GPU support
- XPU/NPU support
- Burmese language support
Full Release Notes
**[终于等到你!PaddleOCR 新版本发布!](https://pfcc.blog/posts/paddleocr-release)** ## What's Changed * [Cherry-pick] #10515 by @ToddBear in https://github.com/PaddlePaddle/PaddleOCR/pull/10537 * [BugFix]compat_pillow by @shiyutang in https://github.com/PaddlePaddle/PaddleOCR/pull/10596 * [bug fix] fix none res in recovery by @andyjiang1116 in https://github.com/PaddlePaddle/PaddleOCR/pull/10603 * Fix seed passing issue of build_dataloader by @RuohengMa in https://github.com/PaddlePaddle/PaddleOCR/pull/10614 * [bug fix]rm invalid params by @andyjiang1116 in https://github.com/PaddlePaddle/PaddleOCR/pull/10605 * [Cherry-pick] #10441 #10512 by @moehuster in https://github.com/PaddlePaddle/PaddleOCR/pull/10593 * 修改数据增强导致的DSR报错 by @xu-peng-7 in https://github.com/PaddlePaddle/PaddleOCR/pull/10662 * onnxruntime support gpu by @WenmuZhou in https://github.com/PaddlePaddle/PaddleOCR/pull/10668 * Update VQA to use the updated LayoutLM syntax from PaddleNLP by @sijunhe in https://github.com/PaddlePaddle/PaddleOCR/pull/9791 * 实现功能:当--savefile为true时,在--output下以当前图片名称后接“.txt”为文件名保存ocr推理结果,解决了issues: by @WilliamQf-AI in https://github.com/PaddlePaddle/PaddleOCR/pull/10628 * Cherrypicking GH-10217 and GH-10216 to PaddlePaddle:dygraph by @UserUnknownFactor in https://github.com/PaddlePaddle/PaddleOCR/pull/10654 * fix numpy speed by @wanghuancoder in https://github.com/PaddlePaddle/PaddleOCR/pull/10773 * Cherrypicking GH-10251 & GH-10181 to PaddleOCR:dygraph by @itasli in https://github.com/PaddlePaddle/PaddleOCR/pull/10710 * rec_r45_abinet.yml add max_length and image_size by @xlg-go in https://github.com/PaddlePaddle/PaddleOCR/pull/10744 * ch_PP-OCRv4_rec_distill.yml, fix KeyError: 'NRTRLabelDecode' by @xlg-go in https://github.com/PaddlePaddle/PaddleOCR/pull/10761 * 根据推理对三通道的图像需求,以及opencv中imread参数说明IMREAD_COLOR(If set, always convert … by @Gmgge in https://github.com/PaddlePaddle/PaddleOCR/pull/10777 * Update algorithm_kie_vi_layoutxlm_en.md by @sagarjgb in https://github.com/PaddlePaddle/PaddleOCR/pull/10736 * Add new recognition method "ParseQ" by @ToddBear in https://github.com/PaddlePaddle/PaddleOCR/pull/10836 * rm fluid for paddle dev by @tink2123 in https://github.com/PaddlePaddle/PaddleOCR/pull/10931 * rec_r45_abinet for export model by @xlg-go in https://github.com/PaddlePaddle/PaddleOCR/pull/10892 * fix:修复通道数不匹配造成的PPOCRLabel启动失败问题#10748,根据更新日志发现#10655,由于paddleocr中增加了对… by @Gmgge in https://github.com/PaddlePaddle/PaddleOCR/pull/10847 * [New] add rec CPPD model by @Topdu in https://github.com/PaddlePaddle/PaddleOCR/pull/10990 * fix `cls_x` and `bbox_x` is possibly unbound by @SigureMo in https://github.com/PaddlePaddle/PaddleOCR/pull/10991 * add svtr large model by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/10937 * [WIP]support eval pre epoch by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/11003 * Update kie_datasets_en.md by @sagarjgb in https://github.com/PaddlePaddle/PaddleOCR/pull/10735 * fix import collection for py310 by @tink2123 in https://github.com/PaddlePaddle/PaddleOCR/pull/11012 * update ppocrv4_framework by @tink2123 in https://github.com/PaddlePaddle/PaddleOCR/pull/11048 * Update how_to_do_kie_en.md by @sagarjgb in https://github.com/PaddlePaddle/PaddleOCR/pull/10731 * add cppd u14m train model and doc by @Topdu in https://github.com/PaddlePaddle/PaddleOCR/pull/11052 * Fixed bug with "max_text_length" for VisionLAN by @victor30608 in https://github.com/PaddlePaddle/PaddleOCR/pull/11025 * Cherrypicking GH-10923 to PaddleOCR:dygraph by @itasli in https://github.com/PaddlePaddle/PaddleOCR/pull/11069 * Update quickstart_en.md by @sagarjgb in https://github.com/PaddlePaddle/PaddleOCR/pull/10732 * Update README.md by @sagarjgb in https://github.com/PaddlePaddle/PaddleOCR/pull/10733 * Update algorithm_overview_en.md by @sagarjgb in https://github.com/PaddlePaddle/PaddleOCR/pull/10734 * [Cherry-pick] Cherry-pick from release/2.6 by @shiyutang in https://github.com/PaddlePaddle/PaddleOCR/pull/11092 * [TIPC]update tipc scripts by @USTCKAY in https://github.com/PaddlePaddle/PaddleOCR/pull/11097 * fix satrn export for paddle2.5 by @tink2123 in https://github.com/PaddlePaddle/PaddleOCR/pull/11096 * [BugFix]Fix parseq net by @shiyutang in https://github.com/PaddlePaddle/PaddleOCR/pull/11126 * update uygur dict by @hfengzhi in https://github.com/PaddlePaddle/PaddleOCR/pull/11125 * Add tipc for "ParseQ" method by @ToddBear in https://github.com/PaddlePaddle/PaddleOCR/pull/10843 * fix SAR inference, when batch size>1, norm_img_batch and valid_ratios… by @shiyunalex in https://github.com/PaddlePaddle/PaddleOCR/pull/11238 * v4 det cml configs by @sylarwcy in https://github.com/PaddlePaddle/PaddleOCR/pull/11258 * 解決recognition的train test分割程式執行後的文檔每行間多出一行空格 by @DingHsun in https://github.com/PaddlePaddle/PaddleOCR/pull/11280 * Fix for Ambiguous Boolean Evaluation Error in PaddleOCR with Python 3.11 by @muhammadAgfian96 in https://github.com/PaddlePaddle/PaddleOCR/pull/11287 * Dygraph【benchmark】add max_mem_reserved for benchmark by @mmglove in https://github.com/PaddlePaddle/PaddleOCR/pull/11284 * Fix bug when running on XPU by @RuohengMa in https://github.com/PaddlePaddle/PaddleOCR/pull/11299 * Dygraph by @RuohengMa in https://github.com/PaddlePaddle/PaddleOCR/pull/11301 * Dygraph fix max_mem_reserved for benchmark by @mmglove in https://github.com/PaddlePaddle/PaddleOCR/pull/11341 * 在check_gpu时增加对当前环境可用设备的检查 by @TracebaK in https://github.com/PaddlePaddle/PaddleOCR/pull/11293 * Fixed some bugs that caused PPOCRLabel to crash, added ability to expand checkboxes by @g39088902 in https://github.com/PaddlePaddle/PaddleOCR/pull/11236 * fix a bug for rec_postprocess.py by @Ataraxy33 in https://github.com/PaddlePaddle/PaddleOCR/pull/11389 * Optimize prediction on long image and deduplicate similar boxes with multiple lables by @marswen in https://github.com/PaddlePaddle/PaddleOCR/pull/11366 * doc: add doc for satrn by @wkml in https://github.com/PaddlePaddle/PaddleOCR/pull/11397 * Update zeros' comment in rec_abinet_head.py by @YesianRohn in https://github.com/PaddlePaddle/PaddleOCR/pull/11374 * Fix QPointF IndexError: list index out of range by @firmament2008 in https://github.com/PaddlePaddle/PaddleOCR/pull/11393 * update paddlex of readme by @zhangyubo0722 in https://github.com/PaddlePaddle/PaddleOCR/pull/11422 * chore: add notes for docker gpu deploy PP-OCRv4 by @sheiy in https://github.com/PaddlePaddle/PaddleOCR/pull/11390 * Fix words by @co63oc in https://github.com/PaddlePaddle/PaddleOCR/pull/11448 * [Feature]Complete the ppocrv4_act by @ranchongzhi in https://github.com/PaddlePaddle/PaddleOCR/pull/11345 * rm QR code in the document by @tink2123 in https://github.com/PaddlePaddle/PaddleOCR/pull/11512 * rm QR code by @tink2123 in https://github.com/PaddlePaddle/PaddleOCR/pull/11532 * Fix dead links by @MatKollar in https://github.com/PaddlePaddle/PaddleOCR/pull/11520 * cherry-pick for lazy import pymupdf and pre-commit by @tink2123 in https://github.com/PaddlePaddle/PaddleOCR/pull/11692 * adapter new type promotion rule for Paddle 2.6 by @zxcd in https://github.com/PaddlePaddle/PaddleOCR/pull/11698 * setup a workflow for publishing package to pypi by @jzhang533 in https://github.com/PaddlePaddle/PaddleOCR/pull/11804 * update link mentioned at #11763 by @jzhang533 in https://github.com/PaddlePaddle/PaddleOCR/pull/11764 * fix AttributeError by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/11686 * fix: Correct misuse of `try_import` from `paddle.utils` by @neteroster in https://github.com/PaddlePaddle/PaddleOCR/pull/11820 * Update quickstart.md for a better python pdf demo by @qwedc001 in https://github.com/PaddlePaddle/PaddleOCR/pull/11927 * Update quickstart_en.md by @qwedc001 in https://github.com/PaddlePaddle/PaddleOCR/pull/11934 * Enhance the OCR recognition accuracy of PPStructure. by @RussellLuo in https://github.com/PaddlePaddle/PaddleOCR/pull/11916 * add u14m results of cppd by @Topdu in https://github.com/PaddlePaddle/PaddleOCR/pull/11943 * use tensor.shape bug not paddle.shape(tensor) by @wanghuancoder in https://github.com/PaddlePaddle/PaddleOCR/pull/11919 * add pre-commit workflow by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/11973 * docs: Update FAQ.md, delete repeated question by @xu8117 in https://github.com/PaddlePaddle/PaddleOCR/pull/11972 * Fix the bug where Python scripts fail to execute PDF text recognition… by @guangyunms in https://github.com/PaddlePaddle/PaddleOCR/pull/11994 * 【OCR Issue No.9】以可选形式支持Visualdl by @Liyulingyue in https://github.com/PaddlePaddle/PaddleOCR/pull/11947 * fix weird version info by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12003 * 【OCR Issue No.9】移除明确不适合放在ppocr依赖中的依赖项 by @Liyulingyue in https://github.com/PaddlePaddle/PaddleOCR/pull/11946 * Burmese Language dict and corpus by @1chimaruGin in https://github.com/PaddlePaddle/PaddleOCR/pull/12020 * 面版识别添加onnx支持完善 by @heweisheng in https://github.com/PaddlePaddle/PaddleOCR/pull/12068 * Update README.md by @dyning in https://github.com/PaddlePaddle/PaddleOCR/pull/12086 * fix readme codestyle by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12095 * fix wrong link for 通用OCR in README.txt by @tackhwa in https://github.com/PaddlePaddle/PaddleOCR/pull/12100 * move PPOCRLabel to PFCCLab/PPOCRLabel by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12104 * move StyleText to PFCCLab/StyleText by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12121 * openocr compti code by @Topdu in https://github.com/PaddlePaddle/PaddleOCR/pull/12033 * table rec code by @invictuszhao in https://github.com/PaddlePaddle/PaddleOCR/pull/11999 * Error with pyclipper inhomogeneous expanded array by @zovelsanj in https://github.com/PaddlePaddle/PaddleOCR/pull/12108 * 【OCR Issue No.2】修复训练过程中找不到對應模型和训练时计算精度报错 by @mattheliu in https://github.com/PaddlePaddle/PaddleOCR/pull/12140 * fix the issue of repeatedly downloading pretrained model by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12142 * fix typo by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12146 * Added Bengali , gujrati and kazakh dictionary by @asif-ca in https://github.com/PaddlePaddle/PaddleOCR/pull/12151 * add ci for paddleocr test by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12062 * update community section of README, and did a few tweaks by @jzhang533 in https://github.com/PaddlePaddle/PaddleOCR/pull/12154 * 【OCR Issue No.12】Modify the setuptools configuration from SETUP.py into PYPROJECT.toml by @Liyulingyue in https://github.com/PaddlePaddle/PaddleOCR/pull/12013 * commit fix by running pre-commit run -a by @jzhang533 in https://github.com/PaddlePaddle/PaddleOCR/pull/12165 * added sliding window for large image inference by @aspaul20 in https://github.com/PaddlePaddle/PaddleOCR/pull/12152 * chore(issue_template): Optimize issue template and add Dissucussion entry by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/12171 * fix the error of `np.int` by @Liyulingyue in https://github.com/PaddlePaddle/PaddleOCR/pull/12249 * add `slice` op demo for quickstart by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12439 * fix and enable flake8 E721 by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12258 * Update pyproject.toml by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12520 * Save detection inference logs to file by @AlexPasqua in https://github.com/PaddlePaddle/PaddleOCR/pull/12042 * update common pre-commit configs by @jzhang533 in https://github.com/PaddlePaddle/PaddleOCR/pull/12516 * Update FAQ.md by @SkyFlap in https://github.com/PaddlePaddle/PaddleOCR/pull/12528 * Save recognition inference logs to file by @AlexPasqua in https://github.com/PaddlePaddle/PaddleOCR/pull/12542 * add test for cls_postprocess by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12534 * fix layout recovery error: list index out of range by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12541 * update documentation about the installation by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12565 * Update README.md by @SkyFlap in https://github.com/PaddlePaddle/PaddleOCR/pull/12583 * fix wrong output when --det=False by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/12589 * fix requirements.txt by @wencan in https://github.com/PaddlePaddle/PaddleOCR/pull/12605 * Add note about issue and Discussions on README by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/12703 * 【Doc】Add notification document by @tink2123 in https://github.com/PaddlePaddle/PaddleOCR/pull/12731 * docs(README): Add Discord shields by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/12755 * [doc] Fix wrong link by @enximi in https://github.com/PaddlePaddle/PaddleOCR/pull/12824 * fix wrong function name by @enximi in https://github.com/PaddlePaddle/PaddleOCR/pull/12826 * [doc] fixing broken links and updating paddle2onnx usage descriptions by @Mrxuba in https://github.com/PaddlePaddle/PaddleOCR/pull/12749 * add layout score return by @myhloli in https://github.com/PaddlePaddle/PaddleOCR/pull/13068 * fix pr11999 about slanet train error. by @UserWangZz in https://github.com/PaddlePaddle/PaddleOCR/pull/13073 * temporarily set numpy < 2.0 by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/13136 * docs: Fixed the invalid Discord invite link by @SWHL in https://github.com/PaddlePaddle/PaddleOCR/pull/13135 * fix(sec): upgrade fonttools to 4.43.0 by @chncaption in https://github.com/PaddlePaddle/PaddleOCR/pull/13091 * update ppocrv4 docs by @mattheliu in https://github.com/PaddlePaddle/PaddleOCR/pull/13081 * 解决onnruntime推理问题 by @Ghorc in https://github.com/PaddlePaddle/PaddleOCR/pull/13154 * fix opencv import error for numpy 2.0 by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/13105 * The model link for tabe rec compti by @invictuszhao in https://github.com/PaddlePaddle/PaddleOCR/pull/13254 * Updated Recognition Competition Model Link by @Topdu in https://github.com/PaddlePaddle/PaddleOCR/pull/13259 * update ReadMe by @GreatV in https://github.com/PaddlePaddle/PaddleOCR/pull/13263 ## New Contributors * @RuohengMa made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/10614 * @sijunhe made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/9791 * @WilliamQf-AI made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/10628 * @xlg-go made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/10744 * @Gmgge made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/10777 * @victor30608 made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11025 * @hfengzhi made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11125 * @shiyunalex made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11238 * @sylarwcy made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11258 * @DingHsun made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11280 * @muhammadAgfian96 made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11287 * @TracebaK made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11293 * @g39088902 made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11236 * @marswen made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11366 * @wkml made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11397 * @YesianRohn made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11374 * @firmament2008 made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11393 * @sheiy made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11390 * @co63oc made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11448 * @ranchongzhi made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11345 * @MatKollar made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11520 * @neteroster made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11820 * @qwedc001 made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11927 * @RussellLuo made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11916 * @xu8117 made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11972 * @guangyunms made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11994 * @Liyulingyue made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11947 * @1chimaruGin made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12020 * @heweisheng made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12068 * @tackhwa made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12100 * @invictuszhao made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/11999 * @zovelsanj made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12108 * @mattheliu made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12140 * @asif-ca made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12151 * @aspaul20 made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12152 * @SWHL made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12171 * @AlexPasqua made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12042 * @SkyFlap made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12528 * @wencan made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12605 * @enximi made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12824 * @Mrxuba made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/12749 * @myhloli made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/13068 * @chncaption made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/13091 * @Ghorc made their first contribution in https://github.com/PaddlePaddle/PaddleOCR/pull/13154 **Full Changelog**: https://github.com/PaddlePaddle/PaddleOCR/compare/v2.7.5...v2.8.0