cv_crnn_ocr-recognition-general_damo on Ascend NPU
1. 简介
本文档记录 cv_crnn_ocr-recognition-general_damo (读光文字识别) 在昇腾 NPU 上的适配验证结果。
- 模型来源: iic/cv_crnn_ocr-recognition-general_damo
- 架构: CRNN (Conv + BiLSTM + Linear)
- 任务: OCR 文字识别 (中文,7643字符 + blank)
- 适配状态: SUCCESS
- 适配时间: 2026-05-18
2. 验证环境
| 组件 | 版本 |
|---|
torch | 2.9.0 |
torch-npu | 2.9.0.post1 |
CANN | 8.5.1 |
- NPU: Ascend 910B4
- 系统: Linux aarch64
3. 推理脚本
python inference.py --device npu:0 --dtype float32
4. 推理输出证据
模型: cv_crnn_ocr-recognition-general_damo
设备: npu:0
精度: float32
模型参数量: 11,966,336
--- CPU 推理 ---
输出形状: [26, 1, 7644]
总输出维度: 198744
是否有 NaN: False
--- NPU 推理 (npu:0) ---
输出形状: [26, 1, 7644]
总输出维度: 198744
是否有 NaN: False
5. 性能参考
6. CPU vs NPU 精度对比
| 指标 | 数值 |
|---|
| Cosine Similarity | 0.999998 |
| Max Abs Error | 0.006883 |
| 精度误差 | < 0.01% |
| 是否满足要求 | 是(< 1%) |
7. 评测材料
| 材料 | 文件 | 说明 |
|---|
| 推理脚本 | inference.py | 独立可运行的 NPU 推理代码 |
8. 注意事项
- CRNN 架构: Conv特征提取 → BiLSTM序列建模 → Linear分类
- 输入: 灰度图像 (1通道), 32x100
- 输出: 26个时间步, 每步7644维logits (7643中文字符 + blank)
- 使用 adaptive_avg_pool2d 将卷积输出高度归一化为1
- 使用 LSTM (4-gate) 匹配原始 checkpoint 的权重结构
贡献者: xujiashuai
参赛赛道: 模型适配赛道
提交时间: 2026-05-18