简介:超长截图直接交给大模型或办公软件识别,常因图片尺寸超限而失败。本文给出一套完整的长图文字提取方案:先矫正图像并调用OCR提取纯文本,再借助大语言模型修复英文单词粘连等识别错误,最后用规则与AI排版清理空行、缩进与断句;对超长图片,则进一步采用分块切割、批量识别、顺序合并的流水线,兼顾成功率与准确率。
在内容社区看到一篇干货长文,作者把全文压成了一张长截图。想把它转成文字存进个人知识库,却发现处处碰壁:
这不是个例,而是长图的普遍困境。原因主要有三点:
换句话说,长图文字提取不是“调一个识别功能”就能解决的单点问题,而是一条“图像工程 + 文本工程”的组合流水线。
长截图├─ 路线A(常规长图):图像矫正 → OCR识别 → 导出文本│ → 大模型校对 → 格式整理 → 归档知识库└─ 路线B(超长图片):图片分割 → 批量OCR → 顺序合并→ 校对与整理 → 归档知识库
工具层面并不苛刻,三类能力即可拼出完整链路:
操作路径如下:
为什么要强调“先矫正”:OCR引擎对倾斜极其敏感,正文哪怕歪几度,行切分就可能整体失败;来自手机滚动截图的长图还可能存在拼接错位与边缘变形,矫正能显著提升识别的稳定性。
如果识别效果仍不理想,可以在预处理阶段补三件事:
导出的文本往往“能看但不能读”:最典型的是英文单词粘连——“machine learning”被识别成“machinelearning”,密密麻麻粘成一片;此外还有中英混排标点错位、个别字符误识别等。
对策:把识别文本另存为docx,上传给大模型或智能体,用一条约束式提示词定点修复:
请修复文档中的英文错误:在英文单词之间补上空格。除必要的空格修正外,不要增删、改写任何内容,保持原有段落结构。
提示词设计有三个要点:
这一招之所以有效,是因为单词粘连的修复依赖上下文语义——人眼一看便知“machinelearning”该拆成两个词,但用规则穷举几乎不可能覆盖所有组合。大模型恰好擅长这类“低风险、上下文敏感”的修正;而确定性强的场景则交给正则兜底:
// 正则示意(主流语言语法通用)([a-z])([A-Z]) → 替换为 "\1 \2" // 小写接大写,多半是两个粘连的单词([\u4e00-\u9fa5])([A-Za-z]) → 替换为 "\1 \2" // 中英文之间补空格(排版偏好,可选)
规则处理“确定的部分”,大模型处理“语义的部分”,两者各司其职,校对效率最高。
校对后的文本在格式上仍可能有问题:多余空行、首行缩进忽有忽无、句子被硬换行拦腰截断。同样分两类手段处理。
规则法,处理确定性问题:
// 合并被硬换行打断的句子:前一行不以句末标点收尾、且下一行非空(?<![。!?!?;;])\n(?=\S) → 替换为空串// 压缩连续空行\n{3,} → 替换为 \n\n
AI排版,处理语义性问题:判断哪一行是标题、哪里是真正的段落边界,这类规则很难写全,交给“通用文档排版”类的智能能力更省事——给出“在不改变文字内容的前提下,恢复正确的段落划分与缩进”的指令即可。
经过这两步,从长图到一份干净可读、可直接归档的文本文档,整条链路就闭环了。
当图片高度达到数万像素、连路线A也力不从心时,就要换思路:把大问题拆成小问题。
边界自动寻优的思路(伪代码):
对每条初始分割线 y:在候选区间 [y-Δ, y+Δ] 内,逐行计算该行像素的灰度均值灰度均值最大(最接近背景色、几乎不含文字)的行即为空白带将分割线移动到该行,得到最终切割位置
优点:每个子图的宽高比恢复正常、分辨率不被压缩,落在识别引擎的最佳工作区间,成功率和准确率都显著提升;子图尺寸也符合多模态模型的输入要求,可以逐块喂给模型做交叉校验。
代价:流程更长、速度更慢,且需要额外一次“合并+统一校对”。
适用判断:图片高度明显超过工具单图上限;图片经过滚动截图压缩、存在失真;资料价值高、需要“OCR+大模型”双重校验。一句话,这是“以时间换精度”的方案。
无论走哪条路线,入库前都建议做三件事:
回到最初的问题:超长截图之所以难处理,本质上不是“识别能力不足”,而是“输入超出了工具的舒适区”。破局思路有两条,且都已被实践反复验证:
在此之上,再叠加大模型的文本校对与格式整理——“识别、校对、排版”三段式后处理,才最终决定这份文本的可用性。日常办公中遇到值得收藏的长图资料,不妨按这条流水线走一遍:工具可以随时替换,方法论始终不变。