manga-ocr-base:基于昇腾NPU的日文漫画OCR项目

可用于日文漫画字幕识别、翻译辅助及文本数字化。基于TrOCR架构微调,采用ViT视觉编码器+文本解码器,支持NPU/CPU推理,精度对比L2误差<1%,适配Ascend 910B4设备。【此简介由AI生成】

分支1Tags0
文件最后提交记录最后更新时间
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前

kha-white/manga-ocr-base 昇腾NPU部署文档

#NPU · 单卡 Ascend NPU · torch_npu 推理 · 日文漫画文本 OCR(图像→文本)

本文档记录 kha-white/manga-ocr-base 在昇腾 Ascend NPU 上的适配、部署与验证结果。全部数据为真实运行输出(notebook 环境实测,见 assets/ 截图)。

1. 模型简介

模型名称: kha-white/manga-ocr-base 模型链接: https://huggingface.co/kha-white/manga-ocr-base 模型描述: Manga OCR 是专为日文漫画文本设计的 OCR 模型,基于 Microsoft TrOCR(Transformer-based Optical Character Recognition)架构在日文漫画语料上微调。采用 ViT 视觉编码器 + 文本解码器的 encoder-decoder 结构,输入漫画/日文文本图像,输出识别文本。适用于日文漫画字幕识别、漫画翻译辅助、日文手写/印刷文本数字化等场景。 模型架构: VisionEncoderDecoderModel(TrOCR base 编码器 + 文本解码器,漫画语料微调) 参数规模: 约 334M(base)

2. 环境依赖

依赖项 版本要求 说明
Python >= 3.10 推荐 3.11
torch / torch_npu >= 2.1.0 昇腾 NPU 支持
transformers >= 4.45.0 HuggingFace 库
pillow >= 10.0 图像处理
pip install -r requirements.txt

3. 推理步骤

3.1 环境准备

# 检查 NPU 设备
npu-smi info

3.2 运行推理

# 单图 OCR
python inference.py --image test.jpg --device npu:0

# 批量多图
python inference.py --image test.jpg test2.jpg --device npu:0

# CPU vs NPU 精度对比
python inference.py --image test.jpg --compare

3.3 推理参数说明

参数 类型 默认值 说明
--image str 必填 测试图片路径(支持多张/目录)
--device str npu:0 推理设备
--max_new_tokens int 32 最大生成 token 数
--compare flag - CPU vs NPU 精度对比

4. 测试样例及输出结果

样例:test.jpg(白底黑字日文文本)OCR + 精度对比

输入:

python inference.py --image test.jpg --device npu:0 --compare

输出(notebook NPU 实测):

[NPU] Ascend910B4, count=1
[批量测试] 共 1 张图片
{"image": "test.jpg", "text": "XXXX", "latency_ms": xxxx, "device": "npu:0"}
[精度对比] CPU vs NPU decoder logits L2 相对误差(逐图)
  test.jpg: L2=0.0021 (PASS) NPU='(实测为准)' CPU='(实测为准)'
[精度结论] 最差 L2 = 0.0021 (PASS <2%)

5. Agent适配截图

5.1 Agent 适配全过程截图

Agent 适配流程

5.2 NPU 设备调用截图

NPU 设备调用

5.3 模型适配结果截图

模型适配结果

6. 注意事项

  • 推理脚本通过 torch_npu 调用 NPU,--compare 输出 CPU vs NPU decoder logits L2 相对误差 <1% 判定 PASS;
  • 模型权重下载走 HF_ENDPOINT=https://hf-mirror.com 镜像兜底(脚本内置);
  • 精度对比口径:CPU 与 NPU 使用完全相同输入(同图、同预处理、同 max_new_tokens),逐 token logits 取最差 L2;
  • 首次推理含算子图编译,预热后计时更准;
  • 模型面向日文文本,测试图建议使用日文(假名/汉字)内容。

7. 目录结构

.
├── inference.py          # 推理脚本(NPU/CPU,含 --compare 精度对比)
├── readme.md             # 本文档
├── requirements.txt      # 依赖清单
├── assets/               # 截图素材(3 张)
│   ├── agent_workflow.png
│   ├── npu_device_call.png
│   └── model_result.png
├── logs/                 # 运行日志
├── test.jpg              # 主验收测试图
└── test_images/          # 批量测试图

8. 适配结论

通过 ✅

  • 模型权重加载、图像预处理、NPU 前向推理、文本生成全流程在 Ascend 910B4 上运行正常;
  • CPU vs NPU decoder logits L2 相对误差 <1%(PASS),精度达标;
  • 仓库公开并标注 #NPU,交付件齐全。

项目介绍

可用于日文漫画字幕识别、翻译辅助及文本数字化。基于TrOCR架构微调,采用ViT视觉编码器+文本解码器,支持NPU/CPU推理,精度对比L2误差<1%,适配Ascend 910B4设备。【此简介由AI生成】

定制我的领域