票据识别任务的需求是给定不同类型的票据图像,提取出指定的字段值,以json格式给出结构化信息。
目前的范式包括OCR,OCR+LLM, OCR+VLM,VLM四种方法。
一、OCR
利用OCR技术进行图像文字识别。
例如:https://github.com/AUGUSTRUSH8/ImageProcess
https://cloud.baidu.com/doc/OCR/s/yke30j1hq
流程
图片来源:https://zhuanlan.zhihu.com/p/7783443583
1.预处理:图像去噪、旋转、校正纠偏、图像去模糊处理。
2.文字检测:定位文本区域。
3.文字识别:进入具体区域提取文字。
4.后处理:规则引擎驱动。
优点
推理速度快;精度较高。
缺点
板式固定,泛化能力弱。
二、OCR+LLM
在2023年大模型流行后,发现可以利用大模型的语义理解和信息抽取能力,对OCR识别出的非结构化文本进行组织,同时结合上下文校正文字。
例如:https://zhuanlan.zhihu.com/p/655601678
https://www.cnblogs.com/little-horse/p/18316823
流程
1.利用OCR提取出一串文字
2.撰写提示词,提示大模型从这下文字里提取出结构化信息。
图片来源:https://zhuanlan.zhihu.com/p/655601678
优势
自动提取结构化信息;保留了OCR的精度。
缺点
依赖OCR的识别结果。
三、OCR+VLM
VLM比LLM能够处理更多的模态,最主流的就是图像。二者结合,使得不再完全依赖OCR的识别结果,VLM自身就能处理图像。
例如:https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247543352&idx=1&sn=4999c5ab327bf40bc487397e11f1ef46&
https://zhuanlan.zhihu.com/p/7783443583
相比于OCR,VLM的引入带来的最大收益就是泛化性得到了巨大提升。
但同时,VLM由于图文模态的未能完全对齐,以及语言模型的幻觉问题,在识别精度上有所欠缺,甚至会杜撰字段的值。
二者结合在一定程度上会中和两种方法的优势,从而弥补两者的缺点。
方法1
类似与RAG,将OCR的识别结果放在提示词模版里,让VLM参考该识别结果,有针对性的提取票据字段。
图片来源:https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247543352&idx=1&sn=4999c5ab327bf40bc487397e11f1ef46&
方法2
使用OCR的识别结果,作为Token判别器,干预token生成过程。从而确保VLM的输出是严格与OCR识别结果对齐的。
图片来源:https://zhuanlan.zhihu.com/p/7783443583
优点
结合了两种识别方法,在票据图像高质量的情况下能够提高识别精度。
缺点
仍然依赖OCR识别结果,在票据图像质量差的情况下反而会因为OCR识别结果错误导致整体识别错误,不如VLM。
四、VLM
VLM在预训练和监督微调阶段本身就有OCR数据集做训练,具有强大的OCR能力。
直接使用VLM的效果已经超越了绝大部分OCR和上述的方法。
例如:https://blog.csdn.net/xiyang_1990/article/details/144825329
实际测试发现,对于高质量的票据图像,OCR能够识别出大部分文字,VLM基本能够提取出所指定的字段。
对于低质量的票据图像,OCR不能识别出大部分文字,还有大量错字。VLM能够提取出所指定的字段,但部分值会错误。
现在使用DIFY等流程编排工具,已经能很快开发出一套票据识别系统了。
五、未来研究方向
正如RAG是大模型长文本能力不足的代餐,OCR也是VLM识别精度不足的代餐。
纯VLM的端到端票据识别是未来的研究重点。
优化方向:
1.针对垂域场景的微调:挑选低质量的票据,人工生成标注数据集,进行微调。
2.推理增强:人工设计推理过程,进行R1类的强化学习。
3.大规模继续预训练:在不同票据上进行继续预训练。
4.置信度计算:票据识别的重点在于哪些字段是准确的,哪些是不准确的。如果置信度能够正确反映这个情况,那VLM的应用将会如虎添翼。然而目前实测,置信度只是模型的token概率估计,遇到低质量的票据,模型会很自信地将自己的错误回答的token概率提升至最大。导致无法百分百根据置信度判断是否准确。