RapidOCR 支持 PyTorch MPS 作为计算后端
记录 RapidOCR 支持 PyTorch MPS 作为计算后端的过程。
引言¶
衷心感谢 Github @HighDoping 提交的 PR #639!
相关的测试代码已经放到 Gist,有需要的小伙伴自取。
运行环境¶¶
- 操作系统:macOS Tahoe 26.2
-
硬件:MacBookPro M2
-
Python 环境(3.10.0):
Det 模型对比¶
| Exp | 模型 | 推理框架 | 推理引擎 | Precision↑ | Recall↑ | H-mean↑ | Elapse↓(ms) |
|---|---|---|---|---|---|---|---|
| 1 | ch_PP-OCRv4_det_infer | PyTorch | CPU | 0.8121 | 0.8419 | 0.8267 | 609.64 |
| 2 | ch_PP-OCRv4_det_infer | PyTorch | MPS | 0.8121 | 0.8419 | 0.8267 | 896.91 |
| 3 | ch_PP-OCRv5_mobile_det | PyTorch | CPU | 0.7861 | 0.8266 | 0.8058 | 611.07 |
| 4 | ch_PP-OCRv5_mobile_det | PyTorch | MPS | 0.7861 | 0.8266 | 0.8058 | 273.44 |
Rec 模型对比¶
| Exp | 模型 | 推理框架 | 推理引擎 | ExactMatch↑ | CharMatch↑ | Elapse↓(ms) |
|---|---|---|---|---|---|---|
| 1 | ch_PP-OCRv4_rec_infer | PyTorch | CPU | 0.8290 | 0.9432 | 101.03 |
| 2 | ch_PP-OCRv4_rec_infer | PyTorch | MPS | 0.8290 | 0.9432 | 163.01 |
| 3 | ch_PP-OCRv5_rec_mobile_infer | PyTorch | CPU | 0.7355 | 0.9177 | 134.61 |
| 4 | ch_PP-OCRv5_rec_mobile_infer | PyTorch | MPS | 0.7355 | 0.9177 | 47.41 |
写在最后¶
从以上结果来看,采用 PyTorch MPS 作为计算后端,模型精度维持在误差允许范围内。尽管如此,推理速度的提升并非总是显著,其表现可能与模型内部的具体实现结构有关。有兴趣的读者,可深入探究其背后的原因。
rapidocr 将在 >=v3.7.0 集成 PyTorch MPS,欢迎届时使用和反馈。