拓冰建站拓冰建站
首页 / 资讯中心 / 正文

manga-ocr-base-npu模型架构解析:ViT编码器+2层BERT解码器如何实现日语OCR

manga-ocr-base-npu模型架构解析ViT编码器2层BERT解码器如何实现日语OCR【免费下载链接】manga-ocr-base-npu用户可直接在昇腾910系列NPU上运行日语漫画OCR推理识别图片中横竖排、含振假名的多行文本也可作为通用日语印刷体OCR使用。项目基于manga-ocr-base模型提供完整NPU推理适配全程无CPU回退精度与CPU对齐性能稳定并支持命令行推理与JSON结果输出。项目地址: https://ai.gitcode.com/atlasleong/manga-ocr-base-npumanga-ocr-base 是一个面向日语漫画场景的光学字符识别OCR模型本仓库提供了它在昇腾910系列NPU上的完整推理适配识别横竖排、含振假名的多行文本全程无CPU回退。下面用通俗的方式拆解它的核心架构——ViT视觉编码器 2层BERT解码器看看日语OCR模型是怎么把漫画图变成文字的。一、漫画OCR的四大难点manga-ocr-base如何破局普通OCR工具往往假设整齐的一行行文字但漫画页面远不是这样难点具体表现排版混乱横排、竖排、斜排混用振假名大字号汉字旁附带小字号注音图文叠加文字直接压在画面上字体多变拟声词、夸张字体、手写风格manga-ocr-base 针对这些问题做了场景化训练它不在逐框找文字上死磕而是把整张图当作一个整体来读因此能直接输出一行行的识别结果。除漫画外它也能当作通用日语印刷体OCR使用。二、架构总览编码器—解码器的看图说话模式模型在 model/config.json 中声明为 Transformers 的VisionEncoderDecoderModelseq2seq 图像到文本架构由三大件组成组件来源结构关键规格视觉编码器ViTdeit-base-patch16-22412层hidden 768输入 224×224文本解码器BERTbert-base-japanese-char-v2仅2层词表 6144最大 512 位置分词器BertJapaneseTokenizerMeCab unidic-lite 字符级子词一句话理解编码器负责看懂图解码器负责写出字中间的桥梁叫交叉注意力cross-attention。三、ViT编码器拆解196个小方块如何拼出一张漫画视觉部分基于 ViT-B/16 结构处理流程非常直白切块224×224 的输入图按 16×16 切成 14×14 个小方块得到196个图像块patch再加 1 个 [CLS] 标记共 197 个 token编码每个 patch 被线性映射成 768 维向量送入12层 Transformer 编码器12头注意力MLP 中间维度 3072聚合12层之后每个 patch 向量都见过全图信息随后输出给解码器参考。输入预处理规则写在 model/preprocessor_config.json缩放到 224×224、按均值/方差 0.5 做归一化——这正是 inference.py 中图像张量的生成方式。 为什么选 ViTpatch 化 全局注意力的机制让模型天然能同时关注图中任意位置的文字对竖排、斜排和跨行振假名都不敏感。四、2层BERT解码器为什么薄薄两层就够用解码器虽然也叫 BERT但 model/config.json 里num_hidden_layers只有2hidden size 768、12头注意力、词表6144最大位置 512开启add_cross_attention每生成一个 token解码器都会回头看一眼编码器的图像特征再结合已生成的上文决定下一个字词嵌入绑定tie_word_embeddings: true参数量进一步压缩。为什么只用2层图像信息绝大部分已由 12 层编码器消化解码器的工作更像逐字复述 语言修正。砍掉 10 层换来更快的推理速度而对最终文字质量影响很小——这正是漫画OCR这类信息在图中任务的常见取舍。生成策略上inference.py 采用beam searchnum_beams4max_length300并行保留 4 条候选路径最终选出整体得分最高的句子比贪心逐字生成更稳。五、日语分词器揭秘MeCab字符级子词生僻字零遗漏️tokenizer_config.json 显示分词器采用两层策略MeCab 词法分析词典 unidic-lite先把文本切成词还原日语的语法边界字符级子词每个词再按字拆开保证任意汉字、假名都有对应 token。最终词表 model/vocab.txt 共6144个条目。字符级的好处很直接漫画里常见的生僻字、拟声字不会像词表外OOV那样卡住模型——这是它能覆盖多种字体的重要原因。六、昇腾NPU推理实战无CPU回退的完整跑通路径本仓库的一大价值是把整套架构跑在了昇腾 910B NPU 上实测环境CANN 8.5.18×910B4-1单卡 64GiB HBM且CPU_FALLBACKfalse——全程无CPU回退精度与 CPU 对齐12 组样本离散输出 100% 一致。运行方式非常简单inference.py 就是唯一入口# 安装依赖torch/torch_npu 由昇腾镜像提供 pip install -r requirements.txt # 直接跑内置确定性合成图或传入真实漫画图片 python inference.py python inference.py /path/to/manga_page.pngNPU 设备快照与推理进程状态npu-smi 实测从环境校验到NPU推理验收的完整适配工作流记录一次典型运行的验收结果推理耗时中位数约177ms/张p90 约 182ms输出包含三类信息设备标记INPUT_DEVICE/MODEL_DEVICE/OUTPUT_DEVICE均为npu:0、语义结果GENERATED_TEXT后的识别文本以及一条 JSON 便于下游程序直接消费。七、关键文件清单5分钟读懂manga-ocr-base目录文件作用inference.py推理入口图像预处理、NPU 加载、beam search 生成与 JSON 输出model/config.json架构定义ViT 编码器 2层 BERT 解码器的全部参数model/preprocessor_config.json图像预处理参数224 缩放与 0.5 归一化model/tokenizer_config.jsonMeCab 字符级子词分词配置model/vocab.txt6144 条目的日语字符级词表model/pytorch_model.bin模型权重仅本地加载推理不联网requirements.txtPython 依赖版本锁定总结manga-ocr-base 的架构选择很务实12层 ViT 编码器负责把漫画图消化成 196 个 patch 特征2层带交叉注意力的 BERT 解码器负责逐字写出日文字符级词表兜住生僻字再配合昇腾 NPU 上的无 CPU 回退推理——整套方案轻量、快速、精度对齐是日语漫画OCR场景里一条很完整的落地路径。【免费下载链接】manga-ocr-base-npu用户可直接在昇腾910系列NPU上运行日语漫画OCR推理识别图片中横竖排、含振假名的多行文本也可作为通用日语印刷体OCR使用。项目基于manga-ocr-base模型提供完整NPU推理适配全程无CPU回退精度与CPU对齐性能稳定并支持命令行推理与JSON结果输出。项目地址: https://ai.gitcode.com/atlasleong/manga-ocr-base-npu创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门