同一页论文从电脑里导出来和用手机拍下来内容一点没变。可到了文档解析模型手里它们最好别走同一条路。电脑导出的 PDF 横平竖直标题、段落、表格和公式都有清楚的边界。先把这些区域找出来再分块识别通常又稳又省事。手机拍下来的纸却不一样页面会弯会皱会有透视和阴影。此时还拿一排矩形框硬切框本身就可能先把文字和表格切坏。论文的 Figure 5 把这个差别拍在了脸上。同一张发生弯折、透视和模糊的纸Dolphin-v2 保留整页关系后输出比对照方法更完整。当然这只是一组案例不是批量成绩但它很适合拿来理解问题究竟出在哪。Dolphin-v2 最有意思的地方就在这里。它没有继续争论整页读和拆开读到底谁更高级而是先问了一个更实际的问题这页东西到底是数字文档还是拍照文档然后再决定整页读还是拆开读。PDF链接https://arxiv.org/abs/2602.05384文档解析不是抄字而是重建一页东西很多人听到 OCR脑子里还是把图片上的字变成文本。可一份真正可用的文档远不止一串字符。双栏论文要知道先读左边还是右边表格要保留行列关系公式要变成结构正确的 LaTeX代码要留下缩进标题、脚注和图注也得回到各自的位置。字都认对了顺序却乱了这份文档依然没法进入知识库。代码字符一个没错Python 缩进丢了程序照样跑不起来。所以文档解析更像是重建页面而不是抄写页面。过去常见的做法大致有两条。第一条是先做版面检测把表格、公式、段落等区域裁出来再交给不同能力处理。它的好处很直接类型清楚多个小块还能并行生成。但第一步一旦漏框、错框后面看到的就是残缺输入再强的识别模型也救不回来。第二条是整页交给视觉语言模型让它直接按阅读顺序生成 Markdown。全局关系保住了弯曲和透视也不必强塞进方方正正的框里。代价同样明显整页输出很长自回归生成更容易漏内容或幻觉推理负担也会变重。这两条路没有谁天然更先进。它们解决的是不同输入条件下的问题。先分类再选择页面的读法Dolphin-v2 用的是同一个 Qwen2.5-VL-3B 模型只是让它在两个阶段扮演不同角色。第一阶段先看完整页面判断它属于 digital 还是 photographed。如果是拍照文档模型到这里就不再生成一堆元素框。第二阶段复用整页视觉特征按阅读顺序直接生成页面内容尽量保住透视、褶皱和不规则布局中的全局关系。如果是数字文档第一阶段会继续输出元素类别、绝对像素坐标和阅读顺序。第二阶段再把这些区域裁出来表格、公式、代码和普通段落各用对应提示并行解析最后按预测顺序拼回去。论文的 Figure 3 就是整套方法的总览。上半部分先分类并做布局分析下半部分才出现真正的分流照片整页走数字页面按元素并行走。我更愿意把这里的 anchor 理解成页面上的路标而不是一句神奇 prompt。路标里有这里是什么、它在哪、应该第几个读。第二阶段拿着这些信息才知道眼前这块应该输出普通文本、HTML 表格、LaTeX 公式还是保留缩进的代码。这也是 Dolphin-v2 所谓 Scalable Anchor Prompting 真正有工程味的部分。同一个模型不是永远执行一个任务而是由输入粒度、元素类型和提示接口共同决定此刻该做什么。三张表不是成绩单而是模型的工作词典论文用 Table 1 列出 21 个布局标签从论文标题、五级标题、段落、页眉页脚一直到表格、公式、代码、目录、参考文献和列表。原始 Dolphin 只有 14 类v2 把页面拆得更细。Table 2 则给出六种任务提示。布局、整页、公式、代码、表格和普通段落各有入口。表格要求输出 HTML公式走专门的公式提示代码也有自己的读取方式。Table 3 再往前走了一步它列出的 14 个属性字段包括作者、单位、邮箱、发表日期、DOI、arXiv 编号、摘要、关键词和页码。输出不再只是这里有一段文字而是试图告诉下游系统这段文字在文档里扮演什么角色。但这三张表需要用对读法。它们描述的是系统的能力词典和接口范围不是字段级准确率成绩单。论文没有在这里证明 21 类元素都能同样稳定地解析也没有给 14 个属性逐项报分。把 schema 支持直接等同于可靠抽取反而会高估系统。有些错误人眼看不出来机器却没法继续用结构为什么这么重要代码是最直观的例子。论文的 Figure 6 展示了一页含 Python 代码的数字文档。对照输出把代码当成普通文字字符大体还在缩进层级却丢了。Dolphin-v2 先把代码识别成单独元素再用专门提示保留空格和层级。这张图能说明它做得到却还不能证明代码能力已经全面解决。论文没有代码专项测试集、可编译率或缩进准确率。这里更适合把它看成一个能力样例。公式的证据更完整一些。Figure 9 里的输出肉眼看上去和原图很接近但模型把一整段带公式的文字当成了独立展示公式。画面像底层结构却错了。后面无论做检索、编辑还是重新排版都会出问题。这大概是我看这篇论文时最想保留的一层判断下一代 OCR 的目标不只是让输出看起来像原文而是生成下游机器还能继续操作的文档表示。60 万张新数据和十倍参数也得算进成绩里Dolphin-v2 的变化不只有路由。作者又合成了 20 万张拍照文档、20 万张代码图和 20 万张目录图。拍照数据用 Blender 模拟弯折、褶皱、透视、灯光和相机变化代码覆盖 C、Python、Go、JavaScript每种 5 万张目录则覆盖单双栏和不同层级。模型也从原 Dolphin 的 0.3B 扩到了 3B参数量增加十倍。与此同时坐标从两位小数的归一化位置换成绝对像素坐标布局类别从 14 种扩到 21 种又加入类型分类、公式和代码专用处理。所以后面的总成绩衡量的是整套升级系统。路由很重要但不能把所有提升都算到路由头上。真正能单独支持某个设计的是后面的两张消融表。三个测试集给出了三种不同强度的答案先看数字文档。OmniDocBench 同时考文字、公式、表格和阅读顺序Table 4 是这部分的主结果。Dolphin-v2 的 Overall 是 89.78排在 PaddleOCR-VL 的 91.93 和 MinerU2.5 的 90.67 后面。它没有拿到单项第一但相对原 Dolphin 的 74.67文字编辑距离、公式 CDM、表格 TEDS 和阅读顺序都明显改善。这里有一个会影响精确增幅的口径差异。主表从 74.67 到 89.78差值是 15.11 分论文摘要和正文却写成 89.45 与增加 14.78 分。两组说法没有对齐。新稿采用主表的 89.78 描述榜单位置不替作者猜哪个版本才是最终值。再看作者自建的 RealDoc-160。它有 160 页英文和中文各 80 页。页面先打印再用手机在不同角度、光照、弯折和褶皱条件下拍摄。Table 5 的指标是 Edit Distance越低越好。Dolphin-v2 的英文、中文和平均值分别是 0.0046、0.0737 和 0.0392。原 Dolphin 的平均值是 0.4363编辑距离相对减少约 91%。注意这句话说的是错误量下降不是准确率提高 91%。中文单项也不是第一。Gemini-2.5 Pro 是 0.0681低于 Dolphin-v2 的 0.0737。Dolphin-v2 的平均优势主要来自极低的英文编辑距离。91% 很亮眼但 RealDoc-160 毕竟只有 160 页而且来自作者内部文档。于是还得看更大的外部拍照文档基准 DocPTBench。Table 6 一次给出英文、中文的文字、公式、表格和阅读顺序结果。Dolphin-v2 的 Overall Edit 是英文 30.8、中文 37.3。和原 Dolphin 的 57.5、71.5 相比错误分别相对减少约 46.4% 和 47.8%。这个幅度没有 RealDoc-160 那么夸张但仍然是稳定的大步提升。它在专用文档模型里拿到英文 Overall 第一中文与 dots.ocr 并列。不过把通用大模型也放进来Gemini-2.5 Pro 的 18.2、30.4 仍然更低。分项也各有强手olmOCR 的文字编辑距离更低Nanonets-OCR2 的表格 TEDS 更高olmOCR 的中文阅读顺序也更好。所以 Dolphin-v2 的优势更像均衡和跨场景而不是每一列都横扫。两张消融表终于能把方法单独拎出来看Table 7 拿掉了文档类型分类与对应路由。在 RealDoc-160 上无分类版本的平均 Edit 是 0.1871完整版本是 0.0392。按更直观的方向计算完整路由把平均编辑距离相对降低约 79%。这张表是双路径设计最硬的一块证据。它没有报告分类器准确率也不是只替换一个孤立分类头但至少说明拿掉类型感知策略后整套系统在拍照文档上会明显变差。Table 8 再看专用公式解析。统一解析时 CDM 是 83.34单独识别公式并使用专门提示后是 86.72增加 3.38 个 CDM 分。CDM 是论文使用的公式匹配指标所以准确的写法是分数增加 3.38不能写成准确率提高 3.38%。它和前面的 Figure 9 正好一软一硬一个展示结构错误长什么样一个说明专用处理确实让指标变好。路由很聪明但路由错了后面会整条走偏既然系统把第一步交给分类分类就成了入口处的单点风险。Figure 10 展示了两张很有意思的失败页。它们确实是手机拍摄的但角度接近垂直褶皱和光照变化又不明显。模型把它们当成数字文档随后走进元素裁切路线。我们能从 Table 7 看见路由整体有效却还不知道这种边界页究竟多容易走错因为论文没有单独给出分类准确率和分畸变强度结果。当前框架也仍然是单页解析。跨页段落、跨页表格和整份长文档的一致性被作者放进未来工作。化学结构、复杂图表、数据可视化和乐谱同样还没有覆盖。这不是给论文挑刺而是选工具时必须知道的地图边界。真正的通用是先承认输入不一样如果你要测试一个文档解析器最容易犯的错就是把所有文件混在一起算平均分。数字原生 PDF、扫描件、手机斜拍和轻微畸变页面应该分开。文字、表格、公式、代码和阅读顺序也应该分开。中英文不能只看一个平均值最后还要专门准备一批看起来几乎像数字页面的手机照片因为它们最容易把路由骗过去。Dolphin-v2 在 OmniDocBench 不是第一在 DocPTBench 也仍落后 Gemini-2.5 Pro。可它提供了一条很有迁移价值的工程判断同一个系统没有必要执着于一条统一流水线。规整页面适合结构分解和并行处理畸变页面需要完整上下文。所谓通用不是把差异抹平而是先识别差异再给不同输入保留合适的读法。这才是 Dolphin-v2 最值得记住的地方。感谢阅读。点个关注不迷路我们后续会持续跟进文档解析、OCR领域的前沿技术动态第一时间为你解读。
字节跳动Dolphin-v2:数字 PDF 拆开读、拍照文档整页读,自建拍照文档集平均编辑距离较原始 Dolphin降低约 91%
同一页论文从电脑里导出来和用手机拍下来内容一点没变。可到了文档解析模型手里它们最好别走同一条路。电脑导出的 PDF 横平竖直标题、段落、表格和公式都有清楚的边界。先把这些区域找出来再分块识别通常又稳又省事。手机拍下来的纸却不一样页面会弯会皱会有透视和阴影。此时还拿一排矩形框硬切框本身就可能先把文字和表格切坏。论文的 Figure 5 把这个差别拍在了脸上。同一张发生弯折、透视和模糊的纸Dolphin-v2 保留整页关系后输出比对照方法更完整。当然这只是一组案例不是批量成绩但它很适合拿来理解问题究竟出在哪。Dolphin-v2 最有意思的地方就在这里。它没有继续争论整页读和拆开读到底谁更高级而是先问了一个更实际的问题这页东西到底是数字文档还是拍照文档然后再决定整页读还是拆开读。PDF链接https://arxiv.org/abs/2602.05384文档解析不是抄字而是重建一页东西很多人听到 OCR脑子里还是把图片上的字变成文本。可一份真正可用的文档远不止一串字符。双栏论文要知道先读左边还是右边表格要保留行列关系公式要变成结构正确的 LaTeX代码要留下缩进标题、脚注和图注也得回到各自的位置。字都认对了顺序却乱了这份文档依然没法进入知识库。代码字符一个没错Python 缩进丢了程序照样跑不起来。所以文档解析更像是重建页面而不是抄写页面。过去常见的做法大致有两条。第一条是先做版面检测把表格、公式、段落等区域裁出来再交给不同能力处理。它的好处很直接类型清楚多个小块还能并行生成。但第一步一旦漏框、错框后面看到的就是残缺输入再强的识别模型也救不回来。第二条是整页交给视觉语言模型让它直接按阅读顺序生成 Markdown。全局关系保住了弯曲和透视也不必强塞进方方正正的框里。代价同样明显整页输出很长自回归生成更容易漏内容或幻觉推理负担也会变重。这两条路没有谁天然更先进。它们解决的是不同输入条件下的问题。先分类再选择页面的读法Dolphin-v2 用的是同一个 Qwen2.5-VL-3B 模型只是让它在两个阶段扮演不同角色。第一阶段先看完整页面判断它属于 digital 还是 photographed。如果是拍照文档模型到这里就不再生成一堆元素框。第二阶段复用整页视觉特征按阅读顺序直接生成页面内容尽量保住透视、褶皱和不规则布局中的全局关系。如果是数字文档第一阶段会继续输出元素类别、绝对像素坐标和阅读顺序。第二阶段再把这些区域裁出来表格、公式、代码和普通段落各用对应提示并行解析最后按预测顺序拼回去。论文的 Figure 3 就是整套方法的总览。上半部分先分类并做布局分析下半部分才出现真正的分流照片整页走数字页面按元素并行走。我更愿意把这里的 anchor 理解成页面上的路标而不是一句神奇 prompt。路标里有这里是什么、它在哪、应该第几个读。第二阶段拿着这些信息才知道眼前这块应该输出普通文本、HTML 表格、LaTeX 公式还是保留缩进的代码。这也是 Dolphin-v2 所谓 Scalable Anchor Prompting 真正有工程味的部分。同一个模型不是永远执行一个任务而是由输入粒度、元素类型和提示接口共同决定此刻该做什么。三张表不是成绩单而是模型的工作词典论文用 Table 1 列出 21 个布局标签从论文标题、五级标题、段落、页眉页脚一直到表格、公式、代码、目录、参考文献和列表。原始 Dolphin 只有 14 类v2 把页面拆得更细。Table 2 则给出六种任务提示。布局、整页、公式、代码、表格和普通段落各有入口。表格要求输出 HTML公式走专门的公式提示代码也有自己的读取方式。Table 3 再往前走了一步它列出的 14 个属性字段包括作者、单位、邮箱、发表日期、DOI、arXiv 编号、摘要、关键词和页码。输出不再只是这里有一段文字而是试图告诉下游系统这段文字在文档里扮演什么角色。但这三张表需要用对读法。它们描述的是系统的能力词典和接口范围不是字段级准确率成绩单。论文没有在这里证明 21 类元素都能同样稳定地解析也没有给 14 个属性逐项报分。把 schema 支持直接等同于可靠抽取反而会高估系统。有些错误人眼看不出来机器却没法继续用结构为什么这么重要代码是最直观的例子。论文的 Figure 6 展示了一页含 Python 代码的数字文档。对照输出把代码当成普通文字字符大体还在缩进层级却丢了。Dolphin-v2 先把代码识别成单独元素再用专门提示保留空格和层级。这张图能说明它做得到却还不能证明代码能力已经全面解决。论文没有代码专项测试集、可编译率或缩进准确率。这里更适合把它看成一个能力样例。公式的证据更完整一些。Figure 9 里的输出肉眼看上去和原图很接近但模型把一整段带公式的文字当成了独立展示公式。画面像底层结构却错了。后面无论做检索、编辑还是重新排版都会出问题。这大概是我看这篇论文时最想保留的一层判断下一代 OCR 的目标不只是让输出看起来像原文而是生成下游机器还能继续操作的文档表示。60 万张新数据和十倍参数也得算进成绩里Dolphin-v2 的变化不只有路由。作者又合成了 20 万张拍照文档、20 万张代码图和 20 万张目录图。拍照数据用 Blender 模拟弯折、褶皱、透视、灯光和相机变化代码覆盖 C、Python、Go、JavaScript每种 5 万张目录则覆盖单双栏和不同层级。模型也从原 Dolphin 的 0.3B 扩到了 3B参数量增加十倍。与此同时坐标从两位小数的归一化位置换成绝对像素坐标布局类别从 14 种扩到 21 种又加入类型分类、公式和代码专用处理。所以后面的总成绩衡量的是整套升级系统。路由很重要但不能把所有提升都算到路由头上。真正能单独支持某个设计的是后面的两张消融表。三个测试集给出了三种不同强度的答案先看数字文档。OmniDocBench 同时考文字、公式、表格和阅读顺序Table 4 是这部分的主结果。Dolphin-v2 的 Overall 是 89.78排在 PaddleOCR-VL 的 91.93 和 MinerU2.5 的 90.67 后面。它没有拿到单项第一但相对原 Dolphin 的 74.67文字编辑距离、公式 CDM、表格 TEDS 和阅读顺序都明显改善。这里有一个会影响精确增幅的口径差异。主表从 74.67 到 89.78差值是 15.11 分论文摘要和正文却写成 89.45 与增加 14.78 分。两组说法没有对齐。新稿采用主表的 89.78 描述榜单位置不替作者猜哪个版本才是最终值。再看作者自建的 RealDoc-160。它有 160 页英文和中文各 80 页。页面先打印再用手机在不同角度、光照、弯折和褶皱条件下拍摄。Table 5 的指标是 Edit Distance越低越好。Dolphin-v2 的英文、中文和平均值分别是 0.0046、0.0737 和 0.0392。原 Dolphin 的平均值是 0.4363编辑距离相对减少约 91%。注意这句话说的是错误量下降不是准确率提高 91%。中文单项也不是第一。Gemini-2.5 Pro 是 0.0681低于 Dolphin-v2 的 0.0737。Dolphin-v2 的平均优势主要来自极低的英文编辑距离。91% 很亮眼但 RealDoc-160 毕竟只有 160 页而且来自作者内部文档。于是还得看更大的外部拍照文档基准 DocPTBench。Table 6 一次给出英文、中文的文字、公式、表格和阅读顺序结果。Dolphin-v2 的 Overall Edit 是英文 30.8、中文 37.3。和原 Dolphin 的 57.5、71.5 相比错误分别相对减少约 46.4% 和 47.8%。这个幅度没有 RealDoc-160 那么夸张但仍然是稳定的大步提升。它在专用文档模型里拿到英文 Overall 第一中文与 dots.ocr 并列。不过把通用大模型也放进来Gemini-2.5 Pro 的 18.2、30.4 仍然更低。分项也各有强手olmOCR 的文字编辑距离更低Nanonets-OCR2 的表格 TEDS 更高olmOCR 的中文阅读顺序也更好。所以 Dolphin-v2 的优势更像均衡和跨场景而不是每一列都横扫。两张消融表终于能把方法单独拎出来看Table 7 拿掉了文档类型分类与对应路由。在 RealDoc-160 上无分类版本的平均 Edit 是 0.1871完整版本是 0.0392。按更直观的方向计算完整路由把平均编辑距离相对降低约 79%。这张表是双路径设计最硬的一块证据。它没有报告分类器准确率也不是只替换一个孤立分类头但至少说明拿掉类型感知策略后整套系统在拍照文档上会明显变差。Table 8 再看专用公式解析。统一解析时 CDM 是 83.34单独识别公式并使用专门提示后是 86.72增加 3.38 个 CDM 分。CDM 是论文使用的公式匹配指标所以准确的写法是分数增加 3.38不能写成准确率提高 3.38%。它和前面的 Figure 9 正好一软一硬一个展示结构错误长什么样一个说明专用处理确实让指标变好。路由很聪明但路由错了后面会整条走偏既然系统把第一步交给分类分类就成了入口处的单点风险。Figure 10 展示了两张很有意思的失败页。它们确实是手机拍摄的但角度接近垂直褶皱和光照变化又不明显。模型把它们当成数字文档随后走进元素裁切路线。我们能从 Table 7 看见路由整体有效却还不知道这种边界页究竟多容易走错因为论文没有单独给出分类准确率和分畸变强度结果。当前框架也仍然是单页解析。跨页段落、跨页表格和整份长文档的一致性被作者放进未来工作。化学结构、复杂图表、数据可视化和乐谱同样还没有覆盖。这不是给论文挑刺而是选工具时必须知道的地图边界。真正的通用是先承认输入不一样如果你要测试一个文档解析器最容易犯的错就是把所有文件混在一起算平均分。数字原生 PDF、扫描件、手机斜拍和轻微畸变页面应该分开。文字、表格、公式、代码和阅读顺序也应该分开。中英文不能只看一个平均值最后还要专门准备一批看起来几乎像数字页面的手机照片因为它们最容易把路由骗过去。Dolphin-v2 在 OmniDocBench 不是第一在 DocPTBench 也仍落后 Gemini-2.5 Pro。可它提供了一条很有迁移价值的工程判断同一个系统没有必要执着于一条统一流水线。规整页面适合结构分解和并行处理畸变页面需要完整上下文。所谓通用不是把差异抹平而是先识别差异再给不同输入保留合适的读法。这才是 Dolphin-v2 最值得记住的地方。感谢阅读。点个关注不迷路我们后续会持续跟进文档解析、OCR领域的前沿技术动态第一时间为你解读。