Avafly/PaddleOCR-ncnn-CPP
Avafly/PaddleOCR-ncnn-CPP has 112 GitHub stars and 10 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-12 13:58 UTC. Last push 2026-11-07.
C++ implementations of PP-OCRv3/4/5/6 using ncnn for inference.
实测星标增长
- 24小时
- +1
- 7天
- 更新延迟
- 15天
- 更新延迟
- 1个月
- 更新延迟
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.md
原文This repository provides C++ implementations of PP-OCRv3/4/5/6, inspired by the official PaddleOCR project and using ncnn for inference.
The Release page contains a complete project archive that includes resources like models and images required to run the demo.
Demo
Usage
./main ../config.json ../images/ocr_img1.png
Requirements
- OpenCV 4.11.0
- ncnn 20241226
- OpenMP 2.0+
Benchmarks
I ran benchmarks on a VPS using ocr_img1.png (simple) and ocr_img3.png (complex). You can find those images inside the release page archive.tar.gz.
CPU: 2 x Intel(R) Xeon(R) Platinum (2) @ 2.50 GHz
| Models | Latency / Peak memory for ocr_img1 | Latency / Peak memory for ocr_img3 |
|---|---|---|
| PP-OCRv3 mobile | 88.09 ms / 106.2 MB | 926.34 ms / 228.3 MB |
| PP-OCRv4 mobile | 90.44 ms / 97.57 MB | 1005.45 ms / 211.5 MB |
| PP-OCRv5 mobile | 92.17 ms / 106.1 MB | 1062.56 ms / 292.2 MB |
| PP-OCRv5 server | 3948.50 ms / 1.545 GB | 11172.83 ms / OOM |
| PP-OCRv6 tiny | 67.45 ms / 62.22 MB | 420.28 ms / 156.7 MB |
| PP-OCRv6 small | 139.36 ms / 127.7 MB | 1590.45 ms / 351.4 MB |
| PP-OCRv6 medium | 584.79 ms / 425.3 MB | 6298.11 ms / 706.2 MB |
Tested on
- macOS 15
- Debian 12
- Windows 10/11
Notes
Enabling FP16 may be faster but can cause NaN results on some devices. Edit config.json to enable or disable FP16.
It is recommended to use an ncnn version the same as or newer than the PNNX version used to convert the models.
Implementation References
https://github.com/nihui/ncnn-android-ppocrv5