2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

如何提取手写票据信息?

发布日期:2024-12-09 11:44:55 浏览次数: 3523
作者:阿里云开发者

微信搜一搜,关注“阿里云开发者”

场景:票据信息结构化提取

某客户业务中涉及的票据类型繁多,包括手写票据、打印小票、文档电子表格等,如下图所示。客户希望利用我们的多模态大模型qwen-vl来将这些不同类型的票据信息提取为结构化数据,以便后续进行自动化处理和分析。最关键的需求是确保所提取的票据信息准确无误,尤其是关键信息(如编号编码),不能遗漏也不能出现错误。这将使客户能够更高效地管理他们大量的票据数据,减少人工处理的工作量,提高工作效率。

难点:VL-LLM

测试方案可以从最简单的方式开始,即直接调用qwen-vl。只需将图片上传至OSS,然后编写一段提示即可让大模型为我们处理任务通过api调用qwen-vl模型_大模型服务平台百炼(Model Studio)-阿里云帮助中心 (aliyun.com)[1]

测试样例为下图:

prompt如下:

prompt_with_message="""请结合图片输出结构化的JSON信息。注意要返回完整的数据,不能遗漏,不能省略;对于包含多行的项目用列表表示;只输出JSON不要输出任何额外内容;不同行的内容应该分别输出"""
调用最新的vl-max-0809模型:
messages = [    {        "role": "user",        "content": [            {"image": url},            {"text": prompt_with_message}        ]    }]response = dashscope.MultiModalConversation.call(  model='qwen-vl-max-0809',  messages=messages)
响应结果:见评论区

对比图片内容可以看出,存在以下关键信息的错误:

  • “收货单位:家宴”识别成了“发票单位:某宾馆”
  • 货名“80/30无芯40”与“57/40刷卡纸”识别成了"货物名称": ["57/40无芯纸", "80/30无芯纸"]
  • “单价”: [145.00, 530.00],“金额”: [290.00, 2120.00], “金额合计”: 2410.00 也与票据信息对应不上
  • 出现了签收日期、签收人图中本来不存在的幻觉信息。

这个例子可以看到,使用VL-LLM在“从图像中提取文本”这个特定场景中的效果有时并不太好,但在其他语义指令上,比如“输出json格式数据”,是有效的。

那么如果有其他方式可以更快更好地处理“从图像中提取文本”这个任务呢?受语言大模型中"RAG"思路的启发,也许我们可以先提取图像中的文本,然后将其作为“知识参考”输入VL-LLM,结合VL-LLM强大的语义理解能力,或许就能够准确提取出票据中的信息,并输出结构化数据。

那么给到VL-LLM的prompt template就会是这样的:

prompt_with_message=f"""供参考的票据文字如下,输出时结合上下文对有错误的予以纠正。
{text}
请结合图片输出结构化的JSON信息。注意要返回完成的数据,不能遗漏,不能省略;对于包含多行的项目用列表表示;只输出JSON不要输出任何额外内容;不同行的内容应该分别输出"""

目前的任务是要获取图像中的文字内容,也就是说,我们想知道图中的文字有哪些,这让我们很容易联想到文本识别领域中的“老炮儿”——OCR技术。

比较:OCR与VL-LLM

问:OCR是什么?

通义千问:OCR是光学字符识别(Optical Character Recognition)的缩写,是一种技术,用于将印刷文本、手写文字或文档中的字符转换为机器编码的文本。通过扫描或拍照的方式捕捉文字图像,然后利用计算机软件分析图像中的字符形状,并将其转换成可编辑和可搜索的数据。这种技术在很多领域都有应用,比如文档数字化、数据录入、书籍扫描、发票处理等,大大提高了信息处理的效率和准确性。

尽管多模态大模型也具备通用的文本识别能力,但OCR技术在不同的业务场景下可以通过特定的训练和加强。例如,阿里云产品文字识别_OCR 文字识别_图片识别文字_数据智能-阿里云 (aliyun.com)[2]覆盖了通用文字识别、个人证照识别、车辆物流识别、票据凭证识别、企业资质识别和混贴等多个场景。

我们将OCR与VL-LLM做个对比:

合作:OCR + VL-LLM

因此,我们想到在原有方案的基础上加入OCR作为辅助,让OCR与VL协同工作:

考虑到手写票据的情况,我们利用阿里云OCR产品的通用手写体识别接口调用:

RecognizeHandwriting进行通用手写体识别_文字识别(OCR)-阿里云帮助中心 (aliyun.com)[3],逐行识别图像中的中文文字,并将所识别的文字替换prompt中的{text},提供给大模型作为参考。这样做类似于VL中的“RAG”(Retrieval-Augmented Generation)模式,既结合了OCR高精准文本识别的能力,同时也利用了大模型的指令分析和上下文理解等优势。

效果对比

以下case中vl模型使用qwen-vl-max-0809,ocr使用阿里云OCR通用手写体识别。

case1:

  • OCR,耗时:0.7s,识别结果:

****纸品 送货单 NO:20240323******* 收货单位:**家宴洛溪店 送货日期:2024年3月23日 编号 货 名 规格 单位 数量 单价 金额 备注 1 80/30无芯40 箱 4 145.00 580.00 2 57/40刷卡纸 箱 2 80.00 160.00 金额合计(大写):柒佰肆拾元整 6 Y740.00 送货单位及经手人(签章):收货单位及经手人(签名):恒 审核员:复核员:三 

可以看到与只有VL-LLM结果相比,融合方案结果中的关键信息收货单位、货物名称、金额、总价等都输出正确。

VL

OCR+VL

```json

{

"发票单位": "**某宾馆",

"送货单号": "20240323******",

"送货日期": "2024年3月23日",

"送货单位及经手人": "****纸品",

"收货单位及经手人": "****纸品",

"货物名称": ["57/40无芯纸", "80/30无芯纸"],

"规格": ["57/40", "80/30"],

"单位": ["箱", "箱"],

"数量": [2, 4],

"单价": [145.00, 530.00],

"金额": [290.00, 2120.00],

"金额合计": 2410.00,

"金额合计(大写)": "贰仟肆佰壹拾元整",

"备注": "",

"签收人": "张三",

"签收日期": "2024年3月23日"

}

```

```json
{
"company_name": "****纸品",
"document_type": "送货单",
"document_number": "20240323******",
"recipient_unit": "**家宴洛溪店",
"delivery_date": "2024年3月23日",
"items": [
{
"item_number": "1",
"item_name": "80/30无芯40",
"specification": "箱",
"unit": "箱",
"quantity": 4,
"unit_price": 145.00,
"total_amount": 580.00
},
{
"item_number": "2",
"item_name": "57/40刷卡纸",
"specification": "箱",
"unit": "箱",
"quantity": 2,
"unit_price": 80.00,
"total_amount": 160.00
}
],
"total_amount": "柒佰肆拾元整",
"total_amount_numeric": 740.00,
"delivery_unit_and_handler": "",
"recipient_unit_and_handler": "",
"reviewer": "",
"checker": "",
"seal": "****纸品"
}

```


case2:

  • OCR,耗时:0.75s,识别结果:

骨*购物 收银员:0012 机号:018 时间:2024.05.06 16:20 品名 数量 t 单价 小计 绿箭无糖花香薄荷糖樱花白桃味 20202058 2 12.50 25.00 西兰花(散) 10100335 0.582 13.16 7.66 中购物袋 70700002 0.20 0.20 [惠]水产扁蚕蛹(散) 10400287 0.284 13.80 3.92 原价:19.80 油蟠桃(盒) 10100208 1 19.90 19.90 QQ南瓜(散) 10101272 1.102 5.96 6.57 鳕鱼片(散) 10200357 0.172 98.00 16.86 冻干糖葫芦(散) 10200406 0.246 98.00 24.11 整单优惠:1.70 抹零:0.02 件数:9 应付:104.20 实收:山东一卡通人民币 104.20 小票号:NO.2024050****** 会员消费-卡号(600*****) 本次积分(100.30) 最 最新积分(14404. 07) 电子储零(0) 如需发票,请持此单致客服中心开换 散称商品重量以称签重量为准 热线电话:xxxxxxxx 地址:xxxxxxxxxx 谢谢惠顾,欢迎下次光临!

这个案例两个方案的输出信息基本准确无误,在格式上略有区别。OCR把“昌隆”识别为“骨隆”,大模型并没有采用。

VLOCR+VL
```json
{
"store": "昌*购物",
"cashier": "0012",
"machine_number": "018",
"date": "2024.05.06",
"time": "16:20",
"items": [
{
"name": "绿箭无糖花香薄荷糖樱花白桃味",
"code": "20202058",
"quantity": 2,
"unit_price": 12.50,
"total": 25.00
},
{
"name": "西兰花(散)",
"code": "10100335",
"quantity": 0.582,
"unit_price": 13.16,
"total": 7.66
},
{
"name": "中购物袋",
"code": "70700002",
"quantity": 1,
"unit_price": 0.20,
"total": 0.20
},
{
"name": "水产扁蚕蛹(散)",
"code": "10400287",
"quantity": 0.284,
"unit_price": 13.80,
"total": 3.92
},
{
"name": "油蟠桃(盒)",
"code": "10100208",
"quantity": 1,
"unit_price": 19.90,
"total": 19.90
},
{
"name": "QQ南瓜(散)",
"code": "10101272",
"quantity": 1.102,
"unit_price": 5.96,
"total": 6.57
},
{
"name": "鳕鱼片(散)",
"code": "10200357",
"quantity": 0.172,
"unit_price": 98.00,
"total": 16.86
},
{
"name": "冻干糖葫芦(散)",
"code": "10200406",
"quantity": 0.246,
"unit_price": 98.00,
"total": 24.11
}
],
"discount": 1.70,
"rounding": 0.02,
"total_items": 9,
"total_amount": 104.20,
"payment": 104.20,
"payment_method": "**一卡通人民币",
"receipt_number": "NO.20240********",
"member_number": "600******",
"points_earned": 100.30,
"current_points": 14404.07,
"electronic_wallet": 0,
"note": "如需发票,请持此单致客服中心开换!",
"note2": "散称商品重量以称签重量为准",
"contact_number": "**",
"address": "**",
"greeting": "谢谢惠顾,欢迎下次光临!"
}

```

```json
{
"store": "昌*购物",
"cashier": "0012",
"machine_number": "018",
"date": "2024.05.06",
"time": "16:20",
"items": [
{
"name": "绿箭无糖花香薄荷糖樱花白桃味",
"code": "20202058",
"quantity": 2,
"unit_price": 12.50,
"total": 25.00
},
{
"name": "西兰花(散)",
"code": "10100335",
"quantity": 0.582,
"unit_price": 13.16,
"total": 7.66
},
{
"name": "中购物袋",
"code": "70700002",
"quantity": 1,
"unit_price": 0.20,
"total": 0.20
},
{
"name": "[惠]水产扁蚕蛹(散)",
"code": "10400287",
"quantity": 0.284,
"unit_price": 13.80,
"total": 3.92
},
{
"name": "油蟠桃(盒)",
"code": "10100208",
"quantity": 1,
"unit_price": 19.90,
"total": 19.90
},
{
"name": "QQ南瓜(散)",
"code": "10101272",
"quantity": 1.102,
"unit_price": 5.96,
"total": 6.57
},
{
"name": "鳕鱼片(散)",
"code": "10200357",
"quantity": 0.172,
"unit_price": 98.00,
"total": 16.86
},
{
"name": "冻干糖葫芦(散)",
"code": "10200406",
"quantity": 0.246,
"unit_price": 98.00,
"total": 24.11
}
],
"discount": 1.70,
"rounding": 0.02,
"total_items": 9,
"total_amount": 104.20,
"payment": {
"method": "**一卡通人民币",
"amount": 104.20
},
"receipt_number": "NO.2024050**********",
"member": {
"card_number": "600*****",
"points": {
"current": 100.30,
"total": 14404.07
}
},
"electronic_storage": 0,
"note": "如需发票,请持此单致客服中心开换",
"note2": "散称商品重量以称签重量为准",
"contact": {
"phone": "**",
"address": "**"
},
"greeting": "谢谢惠顾,欢迎下次光临!"
}

```

case3:

  • OCR,耗时:1s,识别结果:

送货单 *****农牧开发有限公司 第2/3页 番禺配送中心 日期:2024-03-18 车牌号:502 单据编号:p4-030042-XS-******* 收货单位 ****(**) 编号 商品全名 规格 单位 数量 单价 金额 备注 家乡龙口粉丝 包 2 4.5 9 菠菜面 包 2 6 12 南瓜面 包 2 6 12 鲜牛肉 7 斤 3.23 50 150 160 鲈鱼骨 斤 5 2. 10 美味源胡椒粉 包 1 6.5 6.5 雀巢美极鸡鲜粉 包 40.5 40.5 刀板香 斤 1.21 26 2 31.2 湖南辣椒 斤 6 6.5 39 独蒜 斤 2 18 36 页小计 每页合计:元 Address:******** Tel:152171***** 制单员:** 收货单位签章:1月1 七 13

图中“鲜牛肉”和“刀板香”的数量和金额都有人为的手写修改,OCR把修改前后都输出了,而大模型在输出时结合图片内容正确输出了最终的数量与金额,体现了大模型在图像内容分析、上下文理解上的优势。

VLOCR+VL
```json
{
"公司名称": "*****农牧开发有限公司",
"配送中心": "***配送中心",
"日期": "2024-03-18",
"车牌号": "502",
"单据编号": "p4-030042-XS-2*******",
"收货单位": "***(南沙店)",
"商品信息": [
{
"编号": "1",
"商品全名": "家乡龙口粉丝",
"规格": "包",
"单位": "包",
"数量": "2",
"单价": "4.5",
"金额": "9"
},
{
"编号": "2",
"商品全名": "菠菜面",
"规格": "包",
"单位": "包",
"数量": "2",
"单价": "6",
"金额": "12"
},
{
"编号": "3",
"商品全名": "南瓜面",
"规格": "包",
"单位": "包",
"数量": "2",
"单价": "6",
"金额": "12"
},
{
"编号": "4",
"商品全名": "鲜牛肉",
"规格": "斤",
"单位": "斤",
"数量": "3.2",
"单价": "50",
"金额": "160"
},
{
"编号": "5",
"商品全名": "鲈鱼骨",
"规格": "斤",
"单位": "斤",
"数量": "5",
"单价": "2",
"金额": "10"
},
{
"编号": "6",
"商品全名": "美味源胡椒粉",
"规格": "包",
"单位": "包",
"数量": "1",
"单价": "6.5",
"金额": "6.5"
},
{
"编号": "7",
"商品全名": "雀巢美极鸡鲜粉",
"规格": "包",
"单位": "包",
"数量": "1",
"单价": "40.5",
"金额": "40.5"
},
{
"编号": "8",
"商品全名": "刀板香",
"规格": "斤",
"单位": "斤",
"数量": "1.2",
"单价": "26",
"金额": "31.2"
},
{
"编号": "9",
"商品全名": "湖南辣椒",
"规格": "斤",
"单位": "斤",
"数量": "6",
"单价": "6.5",
"金额": "39"
},
{
"编号": "10",
"商品全名": "独蒜",
"规格": "斤",
"单位": "斤",
"数量": "2",
"单价": "18",
"金额": "36"
}
],
"页小计": "343.7",
"地址": "*******",
"制单员": "***",
"联系电话": "15217******",
"收货单位签章": "****"
}
```
```json
{
"送货单": {
"公司名称": "****农牧开发有限公司",
"配送中心": "***配送中心",
"日期": "2024-03-18",
"车牌号": "502",
"单据编号": "p4-030042-XS-2*****",
"收货单位": "****(南沙店)",
"商品列表": [
{
"编号": "",
"商品全名": "家乡龙口粉丝",
"规格": "",
"单位": "包",
"数量": 2,
"单价": 4.5,
"金额": 9,
"备注": ""
},
{
"编号": "",
"商品全名": "菠菜面",
"规格": "",
"单位": "包",
"数量": 2,
"单价": 6,
"金额": 12,
"备注": ""
},
{
"编号": "",
"商品全名": "南瓜面",
"规格": "",
"单位": "包",
"数量": 2,
"单价": 6,
"金额": 12,
"备注": ""
},
{
"编号": "",
"商品全名": "鲜牛肉",
"规格": "7",
"单位": "斤",
"数量": 3.23,
"单价": 50,
"金额": 160,
"备注": ""
},
{
"编号": "",
"商品全名": "鲈鱼骨",
"规格": "",
"单位": "斤",
"数量": 5,
"单价": 2,
"金额": 10,
"备注": ""
},
{
"编号": "",
"商品全名": "美味源胡椒粉",
"规格": "",
"单位": "包",
"数量": 1,
"单价": 6.5,
"金额": 6.5,
"备注": ""
},
{
"编号": "",
"商品全名": "雀巢美极鸡鲜粉",
"规格": "",
"单位": "包",
"数量": 1,
"单价": 40.5,
"金额": 40.5,
"备注": ""
},
{
"编号": "",
"商品全名": "刀板香",
"规格": "",
"单位": "斤",
"数量": 1.21,
"单价": 26,
"金额": 31.2,
"备注": ""
},
{
"编号": "",
"商品全名": "湖南辣椒",
"规格": "",
"单位": "斤",
"数量": 6,
"单价": 6.5,
"金额": 39,
"备注": ""
},
{
"编号": "",
"商品全名": "独蒜",
"规格": "",
"单位": "斤",
"数量": 2,
"单价": 18,
"金额": 36,
"备注": ""
}
],
"页小计": {
"每页合计": "312.2",
"单位": "元"
},
"地址": "*******",
"联系电话": "152171******",
"制单员": "**",
"收货单位签章": "1月1 七 13"
}
}

```

总结:融合传统方法的必要

OCR技术在识别静态文本方面表现出色,但缺乏对图像内容的识别和上下文理解能力。而大模型具有强大的特征提取和抽象能力,可以有效捕捉数据中的潜在关联和复杂性。将这两种技术相融合,能够有效减少误识别的几率,实现更高精度的识别结果。两种技术的优劣势相互补充,形成一种更具适应性、灵活性和高效性的解决方案。

大模型并非“万能”的,支持服务的客户越多,就越能体会到“能不让大模型做的事情就不让它做”的实践经验对提升效果的重要性。许多传统方法仍然在特定领域下表现出色,可以为大模型提供前置输入处理。另外,从计算资源和响应时延的角度来看,传统技术相对于大模型也具有不少优势。结合传统技术可以满足实时性和高效性的需求,从而增强用户体验。

将大模型与传统技术融合,不仅能弥补各自的不足,还能在多个层面提升信息处理的能力和效率。这种融合不仅是技术发展的必然趋势,也是推动各行业智能化转型的重要驱动力。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅