深入解析哈佛构建的 2260 万图像处理管线:如何发掘被 OCR 忽视的书籍配图
参考论文: Institutional Books - Visual Elements: An open-source pipeline for extracting, classifying, deduplicating, and captioning visual elements from digital book collections — Jimmy Mendez, Matteo Cargnelutti, David Lowry-Duda, Catherine Brobston, Salwa Ismail, Greg Leppert, Amanda Watson, Jonathan Zittrain
在哈佛图书馆(Harvard Library)的数字化馆藏中,静静收录着一本古希腊与罗马雕像的艺术参考目录。仅这一本书就独立产出了 5,260 处图像检测结果——单本藏书中提取出的独立视觉元素,甚至超过了大多数小型博物馆整整十年的编目总量。负责该项目的团队发现这本书将平均数据拉偏得极其严重,以至于给它起了个外号叫“吃蜘蛛的乔治”(Spiders Georg,源自那个调侃某人因‘吞下海量蜘蛛’而凭一己之力拉高全村平均值的经典网络梗)。这个有趣的细节揭示了本文的真正主题:究竟需要付出怎样的系统级工程努力,才能在不让图书馆预算破产的前提下,从 983,004 本扫描古籍中找出每一幅隐藏的插图、版画、照片和装饰纹样。
这正是哈佛法学院图书馆机构数据倡议(Harvard Law School Library's Institutional Data Initiative)团队刚刚发布的研究成果:Institutional Books - Visual Elements。它是该团队此前发布的同批藏书文本与元数据成果的姊妹篇。该项目针对哈佛与 Google Books 合作项目中的约 4 亿页扫描件运行了一套开源管线,成功提取出 2260 万个视觉元素,且每个元素都经过了定位检测、分类、去重,并对其中绝大部分生成了描述说明(caption)。该数据集与处理管线已在 Hugging Face 和 GitHub 上开源,对从事文档 AI(Document AI)、OCR 或数字档案领域的从业者而言非常值得一读。

Agnes Miller Parker - 为《还乡》(The Return of The Native)创作的木刻版画 — 摄影:Thomas Shahan 3,来源于 flickr,CC BY 2.0。
OCR 悄然忽视的问题
光学字符识别(OCR)在一项特定任务上已经表现得炉火纯青:将文本像素转化为机器可读的文字。几乎所有大规模古籍数字化项目都重度依赖它。然而,扫描页面上承载的远不止是文字。早期古籍中充斥着木刻画、版画、石版画、手工上色插页、五线谱乐谱、图表,甚至偶尔还会有扫描时不小心入镜的手指。纯文本处理管线根本不会触及这些内容。它们就那样静静地停留在页面图像中,未被建立索引,也无法进行检索。
如今,这种信息断层的负面影响比以往任何时候都更加显著。视觉语言模型(VLM)——那些能够理解、描述图像并进行推理的 AI 系统——其训练语料绝大部分来源于当代互联网的“视觉日常”:网络梗图(memes)、商品照片、屏幕截图以及现代艺术品。论文引用了近期的研究指出,这些模型在面对历史图像时表现挣扎,容易在研究人员所称的“时间分布偏移”(temporal distribution shift)下性能衰退(例如模型主要通过现代照片学习特征,却被要求理解一幅 19 世纪的木刻版画),并极易出现时代错乱式推理(anachronistic reasoning),比如用描述现代高速列车的方式去解读一台老式蒸汽机车。如果没人将历史视觉素材整理成模型能够学习的形式,这个认知盲区绝不会凭空消失。
这一工程的体量同样不容小觑:大约 4 亿页扫描件,数据总量达 60 TB。其中绝大多数页面没有任何插图,但也有少数像上述雕像目录那样的书,单本就包含数千处图像。要在不错漏真实视觉元素的前提下完成全面筛查,同时避免被版式奇特的段落所引发的海量误报淹没,这在成为一个 AI 问题之前,首先是一个极其严苛的工程系统难题。
小模型应对大规模馆藏
这是整篇技术报告中最具主见、也最耐人寻味的技术选型。理论上,视觉语言模型完全有能力在单次前向传播中同时完成视觉元素的定位与描述,那为何不直接让一个 VLM 跑遍这 4 亿页扫描件?作者给出的答案是:成本高昂,且 VLM 的核心优势与当前任务的需求并不匹配。在作者看来,针对如此庞大规模的藏书运行基于 Transformer 的 VLM,对于绝大多数图书馆的预算而言是不可承受之重。而且 VLM 的主要长处——少样本学习能力以及应对异常输入的鲁棒性——在当前场景下的边际收益极低,因为数字化书籍页面本身具备极强且一致的视觉与版式排版规范。因此,他们转而训练了一个专用的轻量级检测器:一个参数量仅 240 万的 YOLO26n 模型,其体量甚至只有普通语言模型的九牛一毛。
研发始于 109 页手工标注的样本,随后将训练集扩展至来自 271 卷图书的 4,528 页,并特意纳入了完全不包含任何视觉元素的页面——因为藏书中绝大多数都是纯文本页,模型必须学会笃定地判断“此处无图”。最终模型在 4 块 GPU 上仅耗时 1.4 小时即完成训练。在 453 页的独立测试集上,面对“此处是否存在视觉元素”这一二分类任务,该模型取得了 0.95 的精确率(precision)和 0.96 的召回率(recall)。对于一个体量如此小巧的模型而言,这无疑是极具说服力的表现,也正是作者在开篇所倡导的“节俭计算”(frugal computing)哲学的绝佳印证:始终从最小可行的干预方案起步,只有当轻量级方案被明确证明无法胜任时,再追加更多算力。
在实际生产环境中,真正的瓶颈甚至根本不是模型本身,而是磁盘 I/O。在针对 3.94 亿页扫描件历时 16 天的检测运行中,单页处理时间的 89.5% 都消耗在从磁盘读取和解码图像文件上,神经网络本身的推理耗时占比不足 10%,导致 4 块专用 GPU 的平均利用率还不到其理论吞吐量的一半。这给所有人提了个醒:在大规模文档处理管线中,消耗时间的往往不是模型计算。
一个颇具启发的细节是:检测器的注意力热力图显示,它重度依赖页面边缘的留白区域来判断页面中是否存在非同寻常的内容——因为纯文本段落在视觉上高度规整统一,而插图则会打破这种固有的几何排版模式。
五大类别与模型的混淆点
一旦某个区域被标出,第二个轻量模型会将其归入以下五类之一:图像/插图(Image/Illustration)、乐谱(Music)、扫描伪影(Artifact)、藏书票/装饰纹样(Ex Libris/Decorative)以及图表/统计图(Chart/Graph)。其中“扫描伪影”(Artifact)是收纳各类扫描噪点的兜底分类:如不慎入镜的人手、金属书夹、破损的书页卷角等。整体来看,各个类别的准确率都十分出色,图像/插图的精确率达到 0.98,乐谱达到 0.99;唯一的薄弱环节是图表/统计图(精确率为 0.87),且有 12.9% 的藏书票/装饰纹样预测结果置信度偏低,最终被重新归类。
论文坦诚分析了其中的原因:藏书票、印刷商徽标(printer's mark)和装饰性边框在结构外观上往往与小型插图非常相似,模型只能依赖极其有限的上下文来推断某处纹样到底属于哪个类别。举个例子:来自某次图书馆比赛的三张华丽藏书票虽然被成功检测出来,却被错分进了“图像/插图”类别,因为脱离整体版面孤立来看,一张藏书票和一幅微型插画几乎别无二致。
针对乐谱分类,团队采取了针对性的修复策略。分类器此前频繁将任何包含密集细小标记或类似五线谱线条的内容误判为乐谱类别,为此团队引入了第二层辅助信号:置信度高于 0.99 的预测结果直接采信;若低于该阈值,则仅当截取区域的 AI 生成描述中包含明确的音乐相关关键词时,才保留“乐谱”标签。这一工程规则将约 120 万条乐谱预测中的 12,502 处重新归类为“其他”(Other)。这是一个微小却极其实用的工程细节:有时解决顽固分类错误的良方并非换用更强大的模型,而是引入一个成本更低、能有效弥补第一道筛选缺陷的补充信号。
捕捉同一个条形码 418,436 次
对百万册图书进行数字化会产生海量的重复数据:在多次印刷中反复复用的同一幅插图、出版商印在每个章节开头的装饰边框,以及一个稍显尴尬的现实——哈佛大学怀德纳图书馆(Widener Library)贴在扫描托架上的物理条形码贴纸。每当这些条形码进入镜头视野,检测器都会恪尽职守地将它们作为视觉元素框选出来。
该管线分两步处理去重:首先,利用计算开销极低的感知哈希(perceptual hashing)处理几乎完全一致的图像(比如因意外重复扫描导致的逐像素级重复);其次,针对视觉相似但不完全相同的元素(例如同一幅插图以不同分辨率重新印刷),采用专门用于副本检测的模型 SSCD 生成稠密向量表征(dense embeddings)。作者将 SSCD 与包括 CLIP 和 SigLIP 2 在内的四款通用多模态表征模型进行了基准评测,结果 SSCD 优势显著:在基准测试中取得了 0.93 的精确率和 0.82 的召回率,大幅领先于表现最好的通用模型。这同样值得玩味:一个垂直领域的专用小模型彻底击败了声量更大、更受瞩目的通用大模型。
如果单独使用,感知哈希能将最初检测到的 4370 万个裁剪区域缩减 22%;而基于向量相似度的策略则更为激进,缩减了 31%。团队在最终公开发布时选择了保守策略:仅在两种方法均判定一致时,才将两个裁剪区域合并为同一重复组。这使数据总量缩减了 19.6%,最终收敛为 22,622,060 个独立的视觉元素。在发现的重复簇中,规模最大的两个分别是:824,599 处近乎完全相同的同一款章节边框装饰饰纹,以及 418,436 处前文提到的怀德纳图书馆条形码贴纸。在某间扫描室里,有人在成千上万个托架上贴了条形码,而一套原本旨在发掘历史插图的管线,极其忠实地把每一次出现都抓了个正着。

实验性环节:让 LLM 生成图像描述
整套管线中最引人入胜、也是作者最为审慎保留的部分是图像描述生成(captioning)。在全部 2260 万个视觉元素中,团队排除了藏书票/装饰纹样以及扫描伪影(因为藏书票或扫描书夹并不需要文字描述),针对剩余的 1850 万个元素采用了 OpenAI 的 GPT-4.1-nano。他们将裁剪出的图像与该页面周围的 OCR 文本一同作为上下文输入模型,要求生成不超过 50 个词的图说,且需使用书籍的原版语言。
这一体量值得仔细推敲:共计发起 3426.3 万次 API 请求,输入 Token 达 669.94 亿个;得益于提示词缓存(prompt caching)技术,总成本被控制在了 4,441.42 美元。以如此低廉的成本生成近 7.67 亿 Token 的描述性元数据固然令人惊叹,但正是这种量级的数据,理应让任何人在盲目全盘采信其输出前停下来深思一番。
值得称赞的是,作者并未对该环节进行过度吹嘘。他们明确将这部分标记为“实验性”(experimental),以区别于目标检测、分类和去重等技术成熟、能够对照标注真值进行严密评测的阶段。使用 LLM 为历史图像撰写图说本身就是一个开放的研究课题:通用 VLM 普遍缺乏特定历史时期印刷工艺的专门知识,而模型幻觉(输出听起来头头是道实则错误的内容)更是无法彻底排除的隐患。早期测试表明,模型有时会去总结周围页面的正文,而不是描述图像本身;尽管团队在下游过滤掉了大部分此类结果,但依然无法做到万无一失。
他们还尝试使用内容安全模型对生成的图说进行过滤,以捕获有害内容,但效果差强人意:何为冒犯性或不恰当的表述会随着文档所处的历史时代与语境而发生变化,这是通用安全过滤器所无法捕捉的。因此,这些图说最终以“原样交付”(as is)的方式发布,作为坚实基础之上的一层实验性产物,绝非经过验证的真值标准。
为何这对构建或选型 OCR 的从业者至关重要
如果你正在为实际项目评估 OCR 或文档 AI 工具,无论你未来是否会接触历史图书馆藏,这里的三个要点都具有普遍参考价值。
文本提取与视觉提取是两个独立的问题,有着截然不同的错误模式。 如果你的管线只做 OCR,就等于默认文档中所有非文本内容都不存在。这在图表仅起辅助作用的合同或申报文件中或许行得通,但在扫描档案中却是一个巨大缺失:带有签名的表单、附有手绘图表的实验笔记、贴有照片的旧档案皆是如此。值得直接向任何 OCR 供应商求证:页面中非文本的部分究竟会被如何处置?需要指出的是,该论文的研究范围仅覆盖拉丁字母体系,而面对包含数千字符且排版更致密的汉字表意系统时,密集字形与插图混排的切割难度显著增加,这意味着将此类视觉提取管线迁移至中文古籍时,字符识别与版面分割将面临远比西文严苛的边界判定挑战。
在成本和准确率上,针对特定任务的轻量小模型决定性地战胜了“直接上 VLM”的直觉。 这种规律在工业级文档 AI 中屡见不鲜。如果你的文档具备一致的版式结构——例如收据模板、表单排版,或是用户反复上传的某种固定文档类型——微调后的小模型往往能在花费仅为通用大模型几分之一推理成本的前提下,取得更优的表现。应当把昂贵的大模型留给模糊边缘用例,这正是作者指出的极具前景的混合架构方向:用廉价检测器搞定 95% 的常规内容,仅在边界判别时调用 VLM。
任何引入 LLM 生成元数据的管线环节都需要独立的置信度信号,绝不能直接继承前序确定性阶段的信任等级。 作者记录了每条图说在 Token 级别的对数概率(log probabilities),并在数据集架构中将所有图说输出明确标记为“实验性”,与直接源自图书馆原始元数据的字段明确区分。这为所有在生产环境中交付 AI 生成元数据的团队提供了良好范式:绝不要让一个容易出现幻觉的环节,悄悄继承前后严谨处理阶段的公信力。
该数据集无法告诉你的事
这篇论文最坦率的部分并非关于模型算法,而是关于究竟哪些内容最终获得了呈现。由于木刻版画和石版画等 19 世纪印刷技术的普及引爆了图文印刷的繁荣,该视觉数据集严重向 1800 年代和 1900 年代倾斜(在包含大量插图的卷本中分别占 64% 和 33%),而远离开本更早的纯文本古籍。相比于底层文本语料中的份额,英文书籍的占比严重过高,因为这批馆藏中的英文书往往具有更高的配图密度。美术与自然科学类书籍的比重被严重放大;而法学类书籍虽然在底层文本藏书中占 13%,但在检出视觉元素的卷本中仅贡献了 4.2%——因为那个时代的法律文献几乎全为纯文字论述。
严格来说,这算不上什么设计缺陷,而是对历史插图出版真实存在的结构性偏差的坦诚度量,同时叠加上了检测模型擅长处理的语言与版式所带来的二次过滤。然而,对于任何计划使用该数据集训练模型的人而言,这都是一张必须注意的警示标签:你所训练的模型将面对一个在英语比例、时代跨度(偏现代)以及学科领域(碰巧重度依赖配图)上严重失衡的历史视觉记录。此外,作者还提出了一些常规的免责声明:基于 HathiTrust 公共领域(public-domain)状态的版权判定“偶尔可能存在误差”,且重复藏书卷册可能会给下游带来同一图像同时落入训练集与测试集的潜在风险。
正因如此,这篇技术报告展现出了异乎寻常的透明度。大多数公开发布的数据集往往只展示令人惊艳的宏大数字,而将数据偏差深埋在无人问津的附录中。而本报告则开辟专门章节,列出详实具体的百分比,明确警告哪些结论是不应盲目得出的。在“吃蜘蛛的乔治”不再是这份报告中最令人印象深刻的细节之后,这种对数据集自身局限性的坦诚,依然值得行业长久铭记。