
——大胖老师“你猜古人为什么竖着写字”——小菜“因为竹简是一根一根的”——大胖老师“那后来用纸了为啥还竖着”——小菜“惯性”——大胖老师“是执拗。跟咱们非要用神经网络啃古籍一样执拗。”一、公元1716年世界上第一本“繁体字词库”诞生康熙五十五年紫禁城武英殿里发生了一件大事由张玉书、陈廷敬等三十多位翰林院编修历时六年编成的《康熙字典》正式刊行。这部收录四万七千零三十五个汉字的巨著堪称当时的“Unicode联盟”——它给每个汉字标了读音、释义、出处还顺带规定了标准写法。小菜听说这段历史后很兴奋“大胖老师这不就是最早的‘汉字编码表’吗他们是不是早就预见到三百年后会有OCR”大胖老师白了他一眼“预见到是有鬼了。但康熙字典的确做了一件对OCR至关重要的事它把汉字的‘异体字’和‘正体字’之间的关系给理了一遍。你看——”他翻出一页电子版指着某条目“‘説’和‘說’其实是同一个字只是左边偏旁写法不同。古人写字没那么讲究一个‘为’字能有几十种写法。如果OCR模型没见过这些变体它就会觉得这是生僻字直接蒙一个形近的。”“这就像你让一个只看过‘马冬梅’的人去认‘馬冬梅’他大概率会问‘马上面怎么多了四个点’而康熙字典等于给了模型一本‘繁体字家族谱’告诉它这些五花八门的写法其实是一家人。”所以古籍OCR的源头还真可以追溯到三百多年前的这部字典。它定义了汉字的基本形态也为今天AI的“识字”划定了范围。只不过当年的编修们肯定想不到他们手抄的竖排小楷有一天会被一种叫“神经网络”的东西以每秒几十个字的速度“阅读”。二、竖排的倔强为什么古人非要跟我们反着来小菜一直想不通一个问题“大胖老师古人明明知道横着写字更方便比如题匾额、写楹联都是横的为什么书籍正文非要竖排而且还要从右往左读这简直是在给后世的OCR挖坑。”大胖老师放下保温杯开始上课“这得从竹简说起。商周时期文字主要写在竹简上。竹简是一根一根细长条自然适合竖着书写。左手拿着简册右手执笔写完一根放右边顺手。所以阅读顺序就成了从右往左。这个习惯根深蒂固哪怕到了东汉蔡伦改进造纸术纸张普及书写材料变了但‘竖排右行’的传统已经成了文化基因刻进骨子里。”“后来活字印刷术发明排版当然也延续竖排。一直到清末西学东渐数理化公式、外国地名、标点符号这些‘横着更合理’的东西大量涌入横排才开始出现在部分书籍里。1949年后大陆正式推广横排简体但港台和海外中文世界至今仍大量使用竖排繁体。而你要面对的古籍99%都是竖排。这个延续三千年的习惯到了OCR这里就成了‘反人类’的难题。”“为什么难因为现代OCR模型底层依赖的是卷积神经网络CNN它对图像特征的提取是‘从左到右、从上到下’滑动窗口的。这天然适合横排文字。遇到竖排相当于让一个习惯了横向扫视的人突然改成竖着扫路径全乱。所以早期的OCR会把竖排文字的每一列当成一行来处理——这就需要先精准切出每一列再旋转90度才能送进识别模型。可是古籍呢经常是三列正文夹两行小注栏线还粗细不均想自动切准比拆炸弹还难。”小菜恍然大悟“所以竖排识别本质上是把‘版面分析’和‘文字方向检测’这两个问题搅在一起了。先得知道哪些是正文、哪些是注文、哪些是标题还得搞清楚它们分别朝哪个方向。这比以前处理现代横排书复杂了不止一个量级。”“没错。这也是为什么直到深度学习模型有了足够的‘空间感知能力’竖排识别才真正突破。你用上PPStructure之后会发现它里面有个‘图像方向分类器’专门判断文字块的朝向然后自动旋转校正。这背后是ResNet这类网络在撑腰它在训练时见过了各种旋转角度的文字所以能本能地判断‘这块文字是歪的给我转正’——就像你拿起手机看照片会自动旋转屏幕一样自然。”三、神经网络登场当古籍遇上CNNTransformer时间快进到2012年AlexNet在ImageNet上大放异彩深度学习正式复苏。OCR领域也开始了翻天覆地的变化。大胖老师指着PPT上的时间线2015年CRNN卷积循环神经网络被提出它把CNN提取图像特征、RNN处理序列、CTC转录出文字串成了一条流水线。这个架构直接成为了后来所有OCR引擎的“标准模板”。从此OCR从传统的手工特征模板匹配进入了端到端学习的时代。2019年PaddleOCR发布把CRNN搬到了工业级而且开源。中文识别准确率一下子飙到了95%以上。更重要的是它开始支持竖排文字的训练——通过数据增强把训练图片随机旋转90度让模型学会“见多识广”。2021年PPStructure问世在CRNN基础上加了版面分析模块用目标检测YOLO系列来定位文字块再用方向分类器摆正最后OCR识别。到这时一套能对付复杂版面的引擎才算基本成型。2023年Transformer大杀四方OCR模型也开始引入Attention机制比如SVTR、ABINet。它们不再死板地依赖RNN的串行处理而是让每个字都能“看到”上下文更好地解决形近字、遮挡字的问题。同时PaddleOCR更新了繁体中文专用模型训练数据覆盖了康熙字典里的绝大部分字形。“所以”大胖老师敲黑板“我们今天做古籍OCR本质上是站在三代技术积累的肩膀上康熙字典定义了汉字边界CRNN奠定了识别框架Transformer带来了语义理解。缺一不可。”四、实战拆解一页清刻本的“数字化旅程”为了让小菜直观理解大胖老师现场打开一页乾隆年间的刻本《古文观止》开始逐步演示。第一步图像预处理原图是从PDF里导出的300DPI扫描件微微发黄有几个虫蛀小洞边缘还有模糊的藏书印。大胖老师先用OpenCV做了自适应二值化把文字和背景彻底分开。他解释“古籍纸张老化严重光照不均普通二值化会丢笔画。自适应阈值能根据局部亮度动态调整保细节。”第二步版面分析PPStructure的布局检测模型上场。它用基于ResNet的骨干网络提取特征然后通过特征金字塔FPN多尺度融合检测出不同大小的文字块。页面上立刻被画出了几种颜色的框红色的是正文竖排块蓝色的是夹注小块绿色的是版心外的书名和页码。更妙的是方向分类器给每个框标记了角度0度是正向横排90度是竖排180度是倒置。所有竖排块都被悄悄旋转了90度变成了临时的横排图像准备喂给OCR。小菜问“那识别完之后顺序怎么还原总不能还是一段一段乱的吧”大胖老师笑“问得好。版面分析模块会输出每个框的坐标尤其是左上角的位置。我们根据古籍的阅读顺序——从上到下、从右到左——对框进行排序先按右上角纵坐标分组确定是同一列然后在同一列内按横坐标从左到右排。这样输出的时候就能自动拼接成正确的阅读顺序。”第三步文字识别旋转矫正后的文字块被送入识别模型。这是一个基于SVTR的轻量级Transformer网络。它先用卷积切分图像成小方块patch然后通过多层Transformer编码器捕获全局特征最后用一个线性层分类出每个位置的汉字。由于训练时见惯了繁体、异体它很轻松地把“説”认成“說”把“羣”认成“群”。遇到“己”“已”“巳”这样的细微差别语言模型会根据前后文施加约束——“自己”还是“已经”概率天差地别。第四步后处理与输出识别出的纯文本还要经过规则校正。比如古籍中常见的避讳缺笔字“玄”缺最后一点模型有时会误认成别的字。后处理模块内置了一个避讳字表检测到可疑组合时自动补全。最终所有文字按照正确的阅读顺序拼接同时保留坐标信息方便生成双层PDF——在原图上叠加透明文字层实现“看着是原版却能搜索复制”的效果。小菜看着这一气呵成的流程感叹道“合着这就是一场流水席啊康熙字典定的菜名CRNN配的料Transformer炒的锅最后PPStructure端的盘子。”五、两个让人又笑又叹的落地案例技术讲完了大胖老师又开始举实例。案例一湖南某县“憋死县令”事件这套系统刚在湖南某县图书馆试运行时馆长抱来一套康熙县志想看看效果。一小时后全部转成了文字。图书馆一个小姑娘在翻检结果时忽然笑出了声。大家围过去一看原来是康熙年间当地闹饥荒的记载中有这么一句“邑令某率民食观音土便秘几死。”大意是县令带头吃观音土结果拉不出屎差点憋死。原文是双行小注藏在某页右下角以前的扫描件根本没人注意到。版面分析模型把它单独拎出来OCR准确识别出“便秘几死”四个字尤其是那个“秘”字的异体写法模型竟认得分毫不差。馆长感慨“这就是数字化的意外之喜——它不光能存史还能刨梗。”案例二上海初中生的“米价曲线”另一个例子是上海某初中生做的研究性学习。课题是“晚清上海米价波动”数据全在《申报》的广告版里。那版式横七竖八什么“白粳”“上白米”“糙米”分类极细价格数字还混在广告词里。以前要做这个课题得蹲图书馆抄一个月。这次他用了文渊慧典的公开版上传扫描件后系统不但把价格条目全识别出来还通过版面分析定位到“日期-品种-价格”的结构直接导出Excel。孩子花了一周就画出了漂亮的米价曲线作业拿了一等奖。他在致谢里写“感谢那个不懂拒绝的老学究系统它帮我翻遍了十年的报纸却不求一杯奶茶。”六、这场“战争”远没有结束小菜听得热血沸腾“那我们是不是已经赢了竖排繁体彻底攻克了”大胖老师摇摇头指了指窗外“早呢。咱们现在搞定的主要是刻本——印刷体。但古籍里还有大量手抄本、稿本、信札。那字迹比医生的处方还狂草。而且还有满文、蒙文、藏文古籍它们也是竖写的。另外识别出来只是第一步后面的自动句读、实体提取、知识图谱构建每一项都是硬骨头。”“但好在方向对了。从康熙字典为汉字立规矩到深度学习让计算机‘识字’再到我们用工程化手段把技术送到每个县图书馆这条路走了三百年。竖排战争的下一阶段是让AI不仅能‘看到’字还能‘读懂’句从文字识别走向知识挖掘。”他顿了顿抿了一口枸杞茶“不过那又是另一个大坑了。今天先讲到这儿你回去把那个虫蛀的‘怪’字再测试一下看咱们的新模型能不能猜到它缺的胳膊。”小菜合上笔记本脑子里闪过一句话竖排三千载一页一乾坤。键盘敲下的是过去屏幕亮起的是未来。而这之间的桥梁正由一行行代码浇筑而成。窗外图书馆的灯还亮着王大姐正在电脑前把又一张发黄的扫描件拖进文渊慧典的网页里。进度条转动像时间在倒流。