Skip to content

Introduction to PP-OCRv5

PP-OCRv5 is the new generation text recognition solution of PP-OCR, focusing on multi-scenario and multi-text type recognition. In terms of text types, PP-OCRv5 supports 5 major mainstream text types: Simplified Chinese, Chinese Pinyin, Traditional Chinese, English, and Japanese. For scenarios, PP-OCRv5 has upgraded recognition capabilities for challenging scenarios such as complex Chinese and English handwriting, vertical text, and uncommon characters. On internal complex evaluation sets across multiple scenarios, PP-OCRv5 achieved a 13 percentage point end-to-end improvement over PP-OCRv4.

Key Metrics

1. Text Detection Metrics

Model Handwritten Chinese Handwritten English Printed Chinese Printed English Traditional Chinese Ancient Text Japanese General Scenario Pinyin Rotation Distortion Artistic Text Average
PP-OCRv5_server_det 0.803 0.841 0.945 0.917 0.815 0.676 0.772 0.797 0.671 0.8 0.876 0.673 0.827
PP-OCRv4_server_det 0.706 0.249 0.888 0.690 0.759 0.473 0.685 0.715 0.542 0.366 0.775 0.583 0.662
PP-OCRv5_mobile_det 0.744 0.777 0.905 0.910 0.823 0.581 0.727 0.721 0.575 0.647 0.827 0.525 0.770
PP-OCRv4_mobile_det 0.583 0.369 0.872 0.773 0.663 0.231 0.634 0.710 0.430 0.299 0.715 0.549 0.624

Compared to PP-OCRv4, PP-OCRv5 shows significant improvement in all detection scenarios, especially in handwriting, ancient texts, and Japanese detection capabilities.

2. Text Recognition Metrics

Evaluation Set Category Handwritten Chinese Handwritten English Printed Chinese Printed English Traditional Chinese Ancient Text Japanese Confusable Characters General Scenario Pinyin Vertical Text Artistic Text Weighted Average
PP-OCRv5_server_rec 0.5807 0.5806 0.9013 0.8679 0.7472 0.6039 0.7372 0.5946 0.8384 0.7435 0.9314 0.6397 0.8401
PP-OCRv4_server_rec 0.3626 0.2661 0.8486 0.6677 0.4097 0.3080 0.4623 0.5028 0.8362 0.2694 0.5455 0.5892 0.5735
PP-OCRv5_mobile_rec 0.4166 0.4944 0.8605 0.8753 0.7199 0.5786 0.7577 0.5570 0.7703 0.7248 0.8089 0.5398 0.8015
PP-OCRv4_mobile_rec 0.2980 0.2550 0.8398 0.6598 0.3218 0.2593 0.4724 0.4599 0.8106 0.2593 0.5924 0.5555 0.5301

A single model can cover multiple languages and text types, with recognition accuracy significantly ahead of previous generation products and mainstream open-source solutions.

PP-OCRv5 Demo Examples

More Demos

Reference Data for Inference Performance

Test Environment:

  • NVIDIA Tesla V100
  • Intel Xeon Gold 6271C
  • PaddlePaddle 3.0.0

Tested on 200 images (including both general and document images). During testing, images are read from disk, so the image reading time and other associated overhead are also included in the total time consumption. If the images are preloaded into memory, the average time per image can be further reduced by approximately 25 ms.

Unless otherwise specified:

  • PP-OCRv4_mobile_det and PP-OCRv4_mobile_rec models are used.
  • Document orientation classification, image correction, and text line orientation classification are not used.
  • text_det_limit_type is set to "min" and text_det_limit_side_len to 736.

1. Comparison of Inference Performance Between PP-OCRv5 and PP-OCRv4

Config Description
v5_mobile Uses PP-OCRv5_mobile_det and PP-OCRv5_mobile_rec models.
v4_mobile Uses PP-OCRv4_mobile_det and PP-OCRv4_mobile_rec models.
v5_server Uses PP-OCRv5_server_det and PP-OCRv5_server_rec models.
v4_server Uses PP-OCRv4_server_det and PP-OCRv4_server_rec models.

GPU

Configuration Avg. Time per Image (s) Avg. Characters Predicted per Second Avg. CPU Utilization (%) Peak RAM Usage (MB) Avg. RAM Usage (MB) Avg. GPU Utilization (%) Peak VRAM Usage (MB) Avg. VRAM Usage (MB)
v5_mobile 0.62 1054.23 106.35 1829.36 1521.92 17.42 4190.00 3114.02
v4_mobile 0.29 2062.53 112.21 1713.10 1456.14 26.53 1304.00 1166.68
v5_server 0.74 878.84 105.68 1899.80 1569.46 34.39 5402.00 4683.93
v4_server 0.47 1322.06 108.06 1773.10 1518.94 55.25 6760.67 5788.02

CPU

Configuration Avg. Time per Image (s) Avg. Characters Predicted per Second Avg. CPU Utilization (%) Peak RAM Usage (MB) Avg. RAM Usage (MB)
v5_mobile 1.75 371.82 965.89 2219.98 1830.97
v4_mobile 1.37 444.27 1007.33 2090.53 1797.76
v5_server 4.34 149.98 990.24 4020.85 3137.20
v4_server 5.42 115.20 999.03 4018.35 3105.29

Note: PP-OCRv5 uses a larger dictionary in the recognition model, which increases inference time and causes slower performance compared to PP-OCRv4.

2. Impact of Auxiliary Features on PP-OCRv5 Inference Performance

Config Description
base No document orientation classification, no image correction, no text line orientation classification.
with_textline Includes text line orientation classification only.
with_all Includes document orientation classification, image correction, and text line orientation classification.

GPU

Configuration Avg. Time per Image (s) Avg. Characters Predicted per Second Avg. CPU Utilization (%) Peak RAM Usage (MB) Avg. RAM Usage (MB) Avg. GPU Utilization (%) Peak VRAM Usage (MB) Avg. VRAM Usage (MB)
base 0.62 1054.23 106.35 1829.36 1521.92 17.42 4190.00 3114.02
with_textline 0.64 1012.32 106.37 1867.69 1527.42 19.16 4198.00 3115.05
with_all 1.09 562.99 105.67 2381.53 1792.48 10.77 2480.00 2065.54

CPU

Configuration Avg. Time per Image (s) Avg. Characters Predicted per Second Avg. CPU Utilization (%) Peak RAM Usage (MB) Avg. RAM Usage (MB)
base 1.75 371.82 965.89 2219.98 1830.97
with_textline 1.87 347.61 972.08 2232.38 1822.13
with_all 3.13 195.25 828.37 2751.47 2179.70

Note: Auxiliary features such as image unwarping can impact inference accuracy. More features do not necessarily yield better results and may increase resource usage.

3. Impact of Input Scaling Strategy in Text Detection Module on PP-OCRv5 Inference Performance

Config Description
mobile_min_1280 Uses min limit type and text_det_limit_side_len=1280 with PP-OCRv5_mobile models.
mobile_min_736 Same as default, min, side_len=736.
mobile_max_960 Uses max limit type and side_len=960.
mobile_max_640 Uses max limit type and side_len=640.
server_min_1280 Uses min, side_len=1280 with PP-OCRv5_server models.
server_min_736 Same as default, min, side_len=736.
server_max_960 Uses max, side_len=960.
server_max_640 Uses max, side_len=640.

GPU

Configuration Avg. Time per Image (s) Avg. Characters Predicted per Second Avg. CPU Utilization (%) Peak RAM Usage (MB) Avg. RAM Usage (MB) Avg. GPU Utilization (%) Peak VRAM Usage (MB) Avg. VRAM Usage (MB)
mobile_min_1280 0.66 985.77 109.52 1878.74 1536.43 18.01 4050.00 3407.33
mobile_min_736 0.62 1054.23 106.35 1829.36 1521.92 17.42 4190.00 3114.02
mobile_max_960 0.52 1206.68 104.01 1795.27 1484.73 18.66 2490.00 2173.91
mobile_max_640 0.45 1353.49 103.32 1728.91 1470.64 18.55 2378.00 1998.62
server_min_1280 0.86 759.10 107.81 1876.31 1572.20 37.33 10368.00 8287.41
server_min_736 0.74 878.84 105.68 1899.80 1569.46 34.39 5402.00 4683.93
server_max_960 0.64 988.85 103.61 1831.31 1544.26 30.29 2929.33 2079.90
server_max_640 0.57 1036.90 102.89 1838.36 1532.50 28.91 3153.33 2743.40

4. Pipeline benchmark data

Click to expand/collapse the table
Pipeline configurationHardwareAvg. inference time (s)Peak CPU utilization (%)Avg. CPU utilization (%)Peak host memory (MB)Avg. host memory (MB)Peak GPU utilization (%)Avg. GPU utilization (%)Peak device memory (MB)Avg. device memory (MB)
OCR-default Intel 6271C 3.97 1015.40 917.61 4381.22 3457.78 N/A N/A N/A N/A
Intel 8350C 3.79 1022.50 921.68 4675.46 3585.96 N/A N/A N/A N/A
Intel 8350C + A100 0.65 113.50 102.48 2240.15 1868.44 47 19.60 7612.00 6634.15
Intel 6271C + V100 1.06 114.90 103.05 2142.66 1791.43 72 20.01 5516.00 4812.81
Intel 8563C + H20 0.65 108.90 101.95 2456.05 2080.26 100 36.52 6736.00 6017.05
Intel 8350C + A10 0.74 115.90 102.22 2352.88 1993.39 100 25.56 6762.00 6039.93
Intel 6271C + T4 1.17 107.10 101.78 2361.88 1986.61 100 51.11 5282.00 4585.10
OCR-nopp-mobile Intel 6271C 1.39 1019.60 1007.69 2178.12 1873.73 N/A N/A N/A N/A
Intel 8350C 1.15 1015.70 1006.87 2184.91 1916.85 N/A N/A N/A N/A
Hygon 7490 + P800 0.35 110.80 103.77 2022.49 1808.11 N/A N/A N/A N/A
Intel 8350C + A100 0.27 110.90 103.80 1762.36 1525.04 31 19.30 4328.00 3356.30
Intel 6271C + V100 0.55 113.80 103.68 1728.02 1470.52 38 18.59 4198.00 3199.12
Intel 8563C + H20 0.22 111.90 103.99 2073.88 1876.14 32 20.25 4386.00 3435.86
Intel 8350C + A10 0.31 119.90 104.24 2037.38 1771.06 52 32.74 3446.00 2733.21
M4 6.51 147.30 106.24 3550.58 3236.75 N/A N/A N/A N/A
Intel 6271C + T4 0.46 111.90 103.11 2035.38 1742.39 65 46.77 3968.00 2991.91
OCR-nopp-server Intel 6271C 3.00 1016.00 1004.87 4445.46 3179.86 N/A N/A N/A N/A
Intel 8350C 3.23 1010.70 1002.63 4175.39 3137.58 N/A N/A N/A N/A
Intel 8350C + A100 0.34 110.90 103.30 1904.99 1591.10 57 32.29 7494.00 6551.47
Intel 6271C + V100 0.69 108.90 102.95 1808.30 1568.64 72 35.30 5410.00 4741.18
Intel 8563C + H20 0.38 109.40 102.34 2100.00 1863.73 100 50.18 6614.00 5926.51
Intel 8350C + A10 0.41 109.00 103.18 2055.21 1845.14 100 47.15 6654.00 5951.22
Intel 6271C + T4 0.82 104.40 101.73 1906.88 1689.69 100 76.41 5178.00 4502.64
OCR-nopp-min736-mobile Intel 6271C 1.41 1020.10 1008.14 2184.16 1911.86 N/A N/A N/A N/A
Intel 8350C 1.20 1015.70 1007.08 2254.04 1935.18 N/A N/A N/A N/A
Hygon 7490 + P800 0.36 112.90 104.29 2174.58 1827.67 N/A N/A N/A N/A
Intel 8350C + A100 0.27 113.90 104.48 1717.55 1529.77 30 19.54 4328.00 3388.44
Intel 6271C + V100 0.57 118.80 104.45 1693.10 1470.74 40 19.83 4198.00 3206.91
Intel 8563C + H20 0.22 113.40 104.66 2037.13 1797.10 31 20.64 4384.00 3427.91
Intel 8350C + A10 0.31 119.30 106.05 1879.15 1732.39 49 30.40 3446.00 2751.08
M4 6.39 124.90 107.16 3578.98 3209.90 N/A N/A N/A N/A
Intel 6271C + T4 0.47 109.60 103.26 1961.40 1742.95 60 44.26 3968.00 3002.81
OCR-nopp-min736-server Intel 6271C 3.26 1068.50 1004.96 4582.52 3135.68 N/A N/A N/A N/A
Intel 8350C 3.52 1010.70 1002.33 4723.23 3209.27 N/A N/A N/A N/A
Intel 8350C + A100 0.35 108.90 103.94 1703.65 1485.50 60 35.54 7492.00 6576.97
Intel 6271C + V100 0.71 110.80 103.54 1800.06 1559.28 78 36.65 5410.00 4741.55
Intel 8563C + H20 0.40 110.20 102.75 2012.64 1843.45 100 55.74 6614.00 5940.44
Intel 8350C + A10 0.44 114.90 103.87 2002.72 1773.17 100 49.28 6654.00 5980.68
Intel 6271C + T4 0.89 105.00 101.91 2149.31 1795.35 100 76.39 5176.00 4528.77
OCR-nopp-max640-mobile Intel 6271C 1.00 1033.70 1005.95 2021.88 1743.27 N/A N/A N/A N/A
Intel 8350C 0.88 1043.60 1006.77 1980.82 1724.51 N/A N/A N/A N/A
Hygon 7490 + P800 0.28 125.70 101.56 1962.27 1782.68 N/A N/A N/A N/A
Intel 8350C + A100 0.21 122.50 101.87 1772.39 1569.55 29 18.74 2360.00 2039.07
Intel 6271C + V100 0.43 133.80 101.82 1636.93 1464.10 37 20.94 2386.00 2055.30
Intel 8563C + H20 0.18 119.90 102.12 2119.93 1889.49 29 20.92 2636.00 2321.11
Intel 8350C + A10 0.24 126.80 101.78 1905.14 1739.93 48 30.71 2232.00 1911.18
M4 7.08 137.80 104.83 2931.08 2658.25 N/A N/A N/A N/A
Intel 6271C + T4 0.36 124.80 101.70 1983.21 1729.43 61 46.10 2162.00 1836.63
OCR-nopp-max960-mobile Intel 6271C 1.21 1020.00 1008.49 2200.30 1800.74 N/A N/A N/A N/A
Intel 8350C 1.01 1024.10 1007.32 2038.80 1800.05 N/A N/A N/A N/A
Hygon 7490 + P800 0.32 107.50 102.00 2001.21 1799.01 N/A N/A N/A N/A
Intel 8350C + A100 0.23 107.70 102.33 1727.89 1490.18 30 20.19 2646.00 2385.40
Intel 6271C + V100 0.49 109.90 102.26 1726.01 1504.90 38 20.11 2498.00 2227.73
Intel 8563C + H20 0.20 109.90 102.52 1959.46 1798.35 28 19.38 2712.00 2450.10
Intel 8350C + A10 0.27 102.90 101.19 1938.48 1741.19 47 29.27 3344.00 2585.02
M4 5.44 122.10 105.91 3094.72 2686.52 N/A N/A N/A N/A
Intel 6271C + T4 0.41 106.00 101.81 1859.88 1722.62 68 47.05 2264.00 2001.07
OCR-nopp-max640-server Intel 6271C 2.16 1026.30 1005.10 3467.93 3074.06 N/A N/A N/A N/A
Intel 8350C 2.30 1008.70 1003.32 3435.54 3042.62 N/A N/A N/A N/A
Hygon 7490 + P800 0.35 104.70 101.27 1948.85 1779.77 N/A N/A N/A N/A
Intel 8350C + A100 0.25 104.90 101.42 1833.93 1560.71 41 27.61 4480.00 3955.14
Intel 6271C + V100 0.56 106.20 101.47 1669.73 1500.87 58 31.78 3160.00 2838.78
Intel 8563C + H20 0.23 109.40 101.45 1968.77 1800.81 58 30.81 2602.00 2588.77
Intel 8350C + A10 0.30 106.10 101.55 2027.13 1749.07 69 39.10 3318.00 2795.54
M4 7.26 133.90 104.48 5473.38 3472.28 N/A N/A N/A N/A
Intel 6271C + T4 0.58 103.90 100.86 1884.23 1714.48 84 63.50 2852.00 2540.37
OCR-nopp-max960-server Intel 6271C 2.53 1014.50 1005.22 3625.57 3151.73 N/A N/A N/A N/A
Intel 8350C 2.66 1010.60 1003.39 3580.64 3197.09 N/A N/A N/A N/A
Hygon 7490 + P800 0.40 105.90 101.76 2040.65 1810.97 N/A N/A N/A N/A
Intel 8350C + A100 0.29 108.90 102.12 1821.03 1620.02 44 30.38 4290.00 2928.79
Intel 6271C + V100 0.60 109.90 101.98 1797.75 1544.96 61 32.48 2936.00 2117.71
Intel 8563C + H20 0.28 108.80 101.92 2016.22 1811.74 73 41.82 2636.00 2241.23
Intel 8350C + A10 0.34 111.00 102.75 1964.21 1750.21 68 41.25 2722.00 2293.74
M4 6.28 129.10 103.74 7780.70 3571.92 N/A N/A N/A N/A
Intel 6271C + T4 0.67 116.90 101.33 1941.09 1693.39 88 65.48 2714.00 1923.06
OCR-nopp-min1280-server Intel 6271C 4.13 1043.40 1005.45 5993.70 3454.00 N/A N/A N/A N/A
Intel 8350C 4.46 1011.70 996.72 5633.51 3489.79 N/A N/A N/A N/A
Intel 8350C + A100 0.42 113.90 106.08 1747.88 1546.18 85 43.73 13558.00 11297.98
Intel 6271C + V100 0.82 116.80 105.18 1873.38 1609.55 100 39.57 10376.00 8427.30
Intel 8563C + H20 0.55 114.80 103.14 2036.36 1864.45 100 69.67 13224.00 11411.31
Intel 8350C + A10 0.55 105.90 101.86 1931.35 1764.44 100 56.16 12418.00 10510.77
Intel 6271C + T4 1.13 105.90 102.35 2066.73 1787.78 100 83.50 10142.00 8338.80
OCR-nopp-min1280-mobile Intel 6271C 1.59 1019.90 1008.39 2366.86 1992.03 N/A N/A N/A N/A
Intel 8350C 1.29 1017.70 1007.28 2501.24 2059.99 N/A N/A N/A N/A
Hygon 7490 + P800 0.43 120.90 107.02 2108.87 1821.91 N/A N/A N/A N/A
Intel 8350C + A100 0.29 117.90 107.19 1847.97 1570.89 31 18.98 3746.00 3321.86
Intel 6271C + V100 0.61 122.80 107.07 1789.25 1542.56 39 20.52 4058.00 3487.46
Intel 8563C + H20 0.24 116.80 106.80 2092.63 1882.77 28 18.67 3902.00 3444.00
Intel 8350C + A10 0.34 125.80 106.79 1959.45 1783.97 49 32.66 3532.00 3094.29
M4 6.64 139.40 107.63 4283.97 3112.59 N/A N/A N/A N/A
Intel 6271C + T4 0.51 116.90 105.06 1927.22 1675.34 68 45.78 3828.00 3283.78
Pipeline configurationdescription
OCR-default Default configuration
OCR-nopp-mobile Based on the default configuration, document image preprocessing is disabled and mobile det and rec models are used
OCR-nopp-server Based on the default configuration, document image preprocessing is disabled
OCR-nopp-min736-mobile Based on the default configuration, document image preprocessing is disabled, det model input resizing strategy is set to min+736, and mobile det and rec models are used
OCR-nopp-min736-server Based on the default configuration, document image preprocessing is disabled, and the det model input resizing strategy is set to min+736
OCR-nopp-max640-mobile Based on the default configuration, document image preprocessing is disabled, det model input resizing strategy is set to max+640, and mobile det and rec models are used
OCR-nopp-max960-mobile Based on the default configuration, document image preprocessing is disabled, det model input resizing strategy is set to max+960, and mobile det and rec models are used
OCR-nopp-max640-server Based on the default configuration, document image preprocessing is disabled, and the det model input resizing strategy is set to max+640
OCR-nopp-max960-server Based on the default configuration, document image preprocessing is disabled, and the det model input resizing strategy is set to max+960
OCR-nopp-min1280-server Based on the default configuration, document image preprocessing is disabled, and the det model input resizing strategy is set to min+1280
OCR-nopp-min1280-mobile Based on the default configuration, document image preprocessing is disabled, det model input resizing strategy is set to min+1280, and mobile det and rec models are used
  • Test environment:
    • PaddlePaddle 3.1.0、CUDA 11.8、cuDNN 8.9
    • PaddleX @ develop (f1eb28e23cfa54ce3e9234d2e61fcb87c93cf407)
    • Docker image: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.1.0-gpu-cuda11.8-cudnn8.9
  • Test data:
    • Test data containing 200 images from document and general scenarios.
  • Test strategy:
    • Warm up with 20 samples, then repeat the full dataset once for performance testing.
  • Note:
    • Since we did not collect device memory data for NPU and XPU, the corresponding entries in the table are marked as N/A.

CPU

Configuration Avg. Time per Image (s) Avg. Characters Predicted per Second Avg. CPU Utilization (%) Peak RAM Usage (MB) Avg. RAM Usage (MB)
mobile_min_1280 2.00 326.44 976.83 2233.16 1867.94
mobile_min_736 1.75 371.82 965.89 2219.98 1830.97
mobile_max_960 1.49 422.62 969.11 2048.67 1677.82
mobile_max_640 1.31 459.11 978.41 2023.25 1616.42
server_min_1280 5.57 117.08 991.34 4452.39 3286.19
server_min_736 4.34 149.98 990.24 4020.85 3137.20
server_max_960 3.39 186.59 984.67 3492.62 2977.13
server_max_640 2.95 201.00 980.59 3342.38 2935.24

Deployment and Secondary Development

  • Multiple System Support: Compatible with mainstream operating systems including Windows, Linux, and Mac.
  • Multiple Hardware Support: Besides NVIDIA GPUs, it also supports inference and deployment on Intel CPU, Kunlun chips, Ascend, and other new hardware.
  • High-Performance Inference Plugin: Recommended to combine with high-performance inference plugins to further improve inference speed. See High-Performance Inference Guide for details.
  • Service Deployment: Supports highly stable service deployment solutions. See Service Deployment Guide for details.
  • Secondary Development Capability: Supports custom dataset training, dictionary extension, and model fine-tuning. Example: To add Korean recognition, you can extend the dictionary and fine-tune the model, seamlessly integrating into existing pipelines. See Text Detection Module Usage Tutorial and Text Recognition Module Usage Tutorial for details.