2026/10/14 18:43:28

竖排日语怎么OCR?NDLOCR-Lite纵書き与縦中横识别技术详解

竖排日语怎么OCR?NDLOCR-Lite纵書き与縦中横识别技术详解 【免费下载链接】ndlocr-liteNDLOCR-Liteアプリケーションのリポジトリソースコードを含むNDLOCR‑Lite application repository (including source code)项目地址https://gitcode.com/gh_mirrors/nd/ndlocr-lite点击查看免费下载竖排日语纵書き图书、报纸该如何做 OCR传统工具常把竖排文本读乱序、读成横排而NDLOCR-Lite正是为这类场景而生的开源 OCR 工具它由日本国立国会图书馆NDL开源不需要 GPU在普通笔记本上就能高速把竖排、横排、手写及縦中横竖排中嵌入横排的文档图片转成文本。本文将带你看懂它的三大核心模块、縦中横处理原理以及最快上手命令。一、NDLOCR-Lite 是什么跑在 CPU 上的轻量日语 OCR ️NDLOCR-Lite 是 NDLOCR 的轻量版面向 Windows、macOS、Linux特点很明确纯 CPU 推理基于 ONNX Runtime不依赖显卡家用的笔记本也能跑见 src/parseq.py 中的CPUExecutionProvider配置面向真实资料专为图书、杂志等数字化影像设计活字与手写体均支持v1.2 起强化了手写识别三种使用方式命令行、桌面 GUIndlocr-lite-gui/main.py、PDF 批处理二、三大模块流水线从图片到有序文本NDLOCR-Lite 的识别流程可以概括为三步每一步对应一个源码模块步骤功能技术方案源码位置① 布局识别找出文字行、标题、图表、表格等 17 类区域DEIMv2DINOv3 蒸馏的 ViT-Tinysrc/deim.py② 文字列识别对每条文字行读出文字PARSeq三档级联模型src/parseq.py③ 阅读顺序整序把打乱的行按真实阅读顺序排序xy-cut 递归切块算法src/reading_order/xy_cut/block_xy_cut.py布局识别的分类定义在 src/config/ndl.yaml 中包括line_main本文、line_caption说明文字、block_table表组、line_title标题等 17 类这让竖排文档中的标题、正文、图表能被分别对待。三个 ONNX 推理模型1 个检测模型 3 个不同长度的 PARSeq 识别模型随仓库提供位于 src/model/无需额外下载权重。三、纵書き识别竖排文字行是如何被转正再识读的 竖排 OCR 最大的难点在于识别模型通常只见过横排文字。NDLOCR-Lite 的解法非常直接——先判断方向再旋转识读。方向判定布局识别输出的每条文字行都有宽高line_h line_w即判定为竖排行并在结果 JSON 中标记isVertical: truesrc/ocr.py自动旋转PARSeq 预处理时若图片高度明显大于宽度就自动逆时针旋转 90° 再送入模型src/parseq.py字符集支持识别用的字符表由 src/config/NDLmoji.yaml 定义覆盖日语汉字、平假名、片假名及常用符号来看两个官方示例一份 1954 年的竖排年报告活字和《方丈记》手稿手写。红框即竖排文字行的检测位置横排文字同样适用下图是手写《徒然草》的识别可视化红框为横排文字行级联识读技巧检测模型会预估每行字符数NDLOCR-Lite 据此把文字行分派给 30 字符、50 字符、100 字符三档 PARSeq 小模型src/ocr.py——短行用快模型、长行用大模型超长行还会对半切开分两次识读。既快又准。四、縦中横识别竖排里的横排夹心层 报纸竖排里常出现縦中横一句话中间横着嵌入英文、数字如竖排文字中横写的「1954年」。直接旋转整行识读会把这些横排片段读错NDLOCR-Lite 因此提供了专门的--enable-tcy选项实现位于 src/tcy_wrapper.py。它的工作原理分四步正常读一遍先把整行旋转后识别一次作为兜底结果墨量投影分段沿行方向做投影把一行切成若干墨迹块空白处即分段边界_segment_blocks判定是否縦中横对每个块统计横向笔画连通分量数量若块内存在足够多个横向笔画组且块高不超过行宽的一定比例判定为横排片段_count_horizontal_componentssrc/tcy_wrapper.py分段重读再拼接横排片段不旋转、竖排段落旋转分别识别后按位置顺序拼回一行若分段结果更长采用分段结果python3 ocr.py --sourceimg 报纸页面.jpg --output tmpdir --enable-tcy--enable-tcy还支持 8 个细调参数如--tcy-min-line-width、--tcy-max-aspect-ratio等默认值对新闻纸等典型场景已足够一般无需改动。五、阅读顺序整序为什么竖排要从右往左读检出所有文字行后还有一个隐蔽的坑阅读顺序。横排从左到右竖排却要从右到左、从上到下。NDLOCR-Lite 沿用 NDL 的 xy-cut 算法src/reading_order/xy_cut/block_xy_cut.py把文字行的外接矩形映射到网格按墨水最少的空白带递归切分页面block_xy_cut统计每个区块内竖排行占比竖排行多于横排行时判定该区块为竖排is_vertical左右切分时自动反转子块顺序——竖排区块中右侧子块排在前面block_xy_cut.py 的sort_nodes区块内部再按坐标精排竖排块内按 x 从右到左横排块内按 y 从上到下src/reading_order/order/reorder.py最后还有一道保险若全页 50% 以上为竖排行输出文本整体反转顺序src/ocr.py确保 TXT 结果首句就是真正的开头。六、识别性能如何官方公开的评估数据evaluation_jptype.csv显示活字文档1870—2000 年代的日语图书/杂志 F 值普遍在 0.880.98 之间接近完整版 NDLOCR手写文字JaWildText 基准1065 张整体平均 CER 0.268其中纵書き平均 CER 0.279、横書き 0.264CER 越低越好对一般数字化需求来说竖排活字与手写体的可用度都不错对识别结果有更高要求的场景可参考 train/README.md 用自有数据再训练模型。七、快速上手5 分钟跑通竖排日语 OCR 环境要求Python 3.10或使用 uv桌面应用建议放在不含全角字符的路径下。git clone https://gitcode.com/gh_mirrors/nd/ndlocr-lite cd ndlocr-lite pip install -r requirements.txt cd src处理单张竖排图片并开启縦中横与可视化python3 ocr.py --sourceimg 竖排页面.jpg --output tmpdir --enable-tcy --viz True批量处理目录python3 ocr.py --sourcedir 图片目录 --output tmpdir用 uv 安装成命令行工具uv tool install . ndlocr-lite --sourceimg 竖排页面.jpg --output tmpdir输出文件说明文件内容*.txt按阅读顺序拼接的纯文本*.xml每行的坐标、类型、置信度与文字见 resource/viz_tategaki2026-04-24-094138.png 对应的 XML*.json含isVertical方向标记的结构化结果viz_*.jpg加了检测框的可视化图PDF 输入时还会生成带透明文字层的 PDF竖排文字使用 HeiseiMin-W3 竖排 CID 字体、按 bbox 精确排布可直接在 PDF 中检索与复制src/ocr.py。八、小结 NDLOCR-Lite 用「DEIMv2 布局识别 PARSeq 级联识读 xy-cut 整序」三段式流水线通吃活字、手写、横排、纵書き竖排行靠宽高比判定并自动旋转识读阅读顺序靠 xy-cut 按排版方向智能反转--enable-tcy让报纸里的縦中横横排片段不再被读乱全部 CPU 推理、模型随仓库分发clone 下来即可开箱即用想深入了解训练与模型转换细节可继续查看 train/README.md 与 ndlocr-lite-gui/README.md。赞分享【免费下载链接】ndlocr-liteNDLOCR-Liteアプリケーションのリポジトリソースコードを含むNDLOCR‑Lite application repository (including source code)项目地址https://gitcode.com/gh_mirrors/nd/ndlocr-lite点击查看免费下载相关推荐Umi-OCR在日语竖排文字识别中的技术挑战与解决方案Umi OCR在日语竖排文字识别中的技术挑战与解决方案 背景介绍 Umi OCR作为一款开源OCR工具在横排文字识别方面表现优异但在处理日语竖排文字时遇到了OCR桌面应用eSearch竖排文本中文竖排文字识别技术eSearch竖排文本中文竖排文字识别技术 痛点传统OCR对竖排文本的识别困境 在日常工作和学习中我们经常会遇到需要识别竖排中文文本的场景古籍文献、传统桌面应用OCR屏幕录制视频处理图像处理pot-desktop竖排文字竖排文本识别pot desktop竖排文字竖排文本识别 痛点传统OCR对竖排文字的识别困境 在日常工作和学习中我们经常会遇到需要识别竖排文字的场景古籍文献、日文典籍桌面应用AI 应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考