用Glyph做了个发票信息提取工具,准确率超预期
用Glyph做了个发票信息提取工具准确率超预期1. 为什么发票识别一直是个“硬骨头”你有没有试过把一张纸质发票拍下来想快速提取金额、日期、销售方这些关键信息结果要么OCR识别错别字要么表格线一多就乱套要么手写体直接放弃——最后还是得手动敲进系统。这不是你操作的问题而是传统OCR在发票场景里天然有短板发票版式千差万别专票、普票、电子票、手写备注栏模型见一个懵一个文字常和表格线、印章、水印挤在一起纯文本模型“看不见”结构关系关键字段比如“价税合计”后面那个数字需要跨区域理解不是简单按行切分就能搞定。直到我试了Glyph——智谱开源的视觉推理大模型。它不把发票当“文字流”处理而是当成一张带语义结构的图像来读。部署完跑了个小测试32张不同来源的发票含模糊拍照、带红章、斜拍、部分遮挡关键字段提取准确率直接拉到96.3%比之前用的商用OCR高了近12个百分点。更让我意外的是它连“备注本发票为补开”这种嵌在角落的小字、以及“¥ 5,860.00”中逗号和点号的组合都能稳定识别——不是靠规则硬匹配是真“看懂”了。下面我就从零开始带你复现这个轻量级发票提取工具。全程不用写一行训练代码重点讲清楚Glyph怎么把一张图变成结构化数据以及哪些细节决定了它能不能在你的发票上稳稳落地。2. Glyph不是OCR是“会看图的AI助手”2.1 它到底在做什么先破除一个误区Glyph不是升级版OCR。传统OCR的核心是“文字检测→文字识别→后处理”而Glyph走的是另一条路把整张发票渲染成高分辨率图像 → 用视觉语言模型理解图像中的空间关系、语义角色、逻辑结构 → 直接输出结构化JSON官方文档里那句“通过视觉-文本压缩扩展上下文长度”听起来很学术拆解成大白话就是它把长段文字比如发票上的商品明细表画成图而不是切成token喂给语言模型再用VLM视觉语言模型像人一样“扫一眼”整张图定位“这里是一张表格”“左上角是销售方名称”“右下角数字带¥符号大概率是金额”。这带来两个实际好处抗干扰强印章盖在金额上表格线断了Glyph关注的是“这块区域整体像什么”不是单个字符的像素理解逻辑它能意识到“金额”字段和“税率”字段通常成对出现即使发票模板没对齐也能靠位置关系推断。2.2 和普通多模态模型有什么区别你可能用过Qwen-VL、LLaVA这类图文模型它们也能看图问答。但Glyph针对长文本密集型图像做了特殊优化能力维度普通VLM如Qwen-VLGlyph输入处理把图像缩放到固定尺寸如448×448再抽特征将原始高分辨率发票保持比例渲染为图像保留表格线细节上下文建模依赖文本token序列长文本易丢失细节把文字“画成图”用视觉方式建模长距离关系比如第一行商品名和最后一行金额的关联结构感知需要人工提示词强调“找表格”“看右下角”内置对票据类图像的先验知识对“发票抬头”“税号位置”“金额区域”有更强敏感度简单说Qwen-VL是“带图的聊天机器人”Glyph是“专攻票据的视觉专家”。3. 三步搭建发票提取工具实测可用整个过程在一台4090D单卡服务器上完成无需GPU集群。所有操作都在终端执行没有复杂配置。3.1 环境准备5分钟部署镜像Glyph镜像已预装所有依赖只需三步# 1. 启动镜像假设已通过Docker或星图平台拉取 docker run -it --gpus all -p 7860:7860 -v /path/to/invoices:/root/invoices glyph-visual-reasoning:latest # 2. 进入容器后运行启动脚本 cd /root bash 界面推理.sh # 3. 浏览器打开 http://你的服务器IP:7860 # 在算力列表中点击网页推理进入交互界面实测提示如果遇到显存不足可在界面推理.sh中将--max_new_tokens 2048改为1024对发票提取完全够用。3.2 核心提示词设计让Glyph“精准答题”Glyph的强项在于理解但输出格式需要明确指令。我在测试中发现以下提示词结构最稳定你是一个专业的财务票据识别助手。请严格按以下要求处理上传的发票图片 1. 提取所有关键字段包括发票代码、发票号码、开票日期、销售方名称、销售方税号、购买方名称、购买方税号、金额、税率、税额、价税合计、收款人、复核、开票人 2. 输出必须为标准JSON格式键名使用英文小写如invoice_code、amount值为字符串 3. 如果某字段在图中不可见对应值填NULL 4. 不要添加任何解释性文字只返回纯JSON。 现在开始处理这张发票关键细节必须强调“严格按要求”Glyph对指令服从度高模糊表述如“尽量提取”会导致它自由发挥键名统一用英文小写避免中文键名在后续程序解析时报错明确“不可见填NULL”否则它可能编造内容或留空字段。3.3 批量处理脚本从单张到百张发票网页界面适合调试但实际工作中要处理几十张发票。我写了个Python脚本调用Glyph的API基于Gradio默认接口import requests import json import os from pathlib import Path def extract_invoice(image_path): 调用Glyph API提取发票信息 url http://localhost:7860/api/predict/ # 构造请求数据 with open(image_path, rb) as f: files {file: f} data { data: [ 你是一个专业的财务票据识别助手。请严格按以下要求处理上传的发票图片\n1. 提取所有关键字段...此处省略完整提示词同3.2节, None, None ] } response requests.post(url, filesfiles, data{data: json.dumps(data)}) try: result response.json() # 解析Glyph返回的JSON字符串注意它返回的是包含JSON的字符串 json_str result[data][0].strip() return json.loads(json_str) except Exception as e: print(f解析失败 {image_path}: {e}) return {error: JSON解析失败} # 批量处理 invoice_dir Path(/root/invoices) results [] for img_file in invoice_dir.glob(*.jpg): print(f正在处理 {img_file.name}...) result extract_invoice(img_file) result[filename] img_file.name results.append(result) # 保存结果 with open(/root/invoice_results.json, w, encodingutf-8) as f: json.dump(results, f, ensure_asciiFalse, indent2) print(全部处理完成结果已保存至 /root/invoice_results.json)实测效果32张发票平均处理时间2.4秒/张4090D识别结果可直接导入Excel或财务系统。4. 准确率为什么能超预期三个实战细节96.3%的准确率不是玄学而是Glyph在三个关键环节的扎实表现。我把测试中的典型case整理出来告诉你哪些地方最容易翻车以及Glyph怎么化解4.1 模糊倾斜发票靠“全局构图”而非局部像素问题发票手机随手拍的发票有运动模糊且画面倾斜约15度。传统OCR表现文字检测框歪斜金额数字被切到框外识别出“58600”漏掉小数点。Glyph表现先对整图做几何校正内部自动完成还原表格结构定位“价税合计”文字块后向右扫描同一水平线上的数字区域结合¥符号、千分位逗号、小数点位置综合判断输出total_amount: 5,860.00完整保留格式。关键洞察Glyph不依赖单个字符的清晰度而是用空间关系锚定关键字段。只要“价税合计”四个字能认出它就知道该往哪找数字。4.2 印章覆盖关键信息用“语义补全”替代强行识别问题发票红色发票专用章恰好盖在“销售方税号”一栏上遮挡中间4位数字。传统OCR表现识别出“91110000MA000000X”其中“0000”是猜的实际应为“1234”。Glyph表现检测到印章区域与税号字段重叠根据上下文推断“销售方名称”为“北京某某科技有限公司”结合常见税号规则前6位为地区码返回seller_tax_id: 91110000MA001234X (印章遮挡根据公司名称推断)同时在JSON中增加confidence: 0.82字段Glyph内置置信度评分。关键洞察Glyph会主动告诉你“哪里不确定”而不是盲目输出。这对财务场景至关重要——宁可标出风险也不能给错误数据。4.3 多栏商品明细表理解“行列逻辑”而非简单分行问题发票商品明细占满整页共5列序号、名称、规格、单位、金额32行。传统OCR表现按行切分后金额列文字被拆到下一行导致“1200.00”变成“1200”和“.00”两行。Glyph表现先识别出表格线即使虚线也有效构建5×32的逻辑表格对每行执行“字段对齐”确保第4列内容一定是“单位”第5列一定是“金额”输出时按items: [{name: 服务器, unit: 台, amount: 1200.00}, ...]结构化组织。关键洞察Glyph把发票当“视觉文档”处理表格、段落、标题都是它的理解单元。这正是它超越纯OCR的核心能力。5. 它不是万能的当前局限与应对建议Glyph很强但作为新模型仍有需注意的边界。我在测试中总结出三条铁律5.1 别让它“猜”手写字尤其金额现象手写体“¥捌仟陆佰伍拾元整”识别正确率仅63%远低于印刷体98.7%原因Glyph训练数据以印刷体为主对手写变体泛化不足建议对含手写内容的发票先用传统OCR如PaddleOCR单独处理手写区域再用Glyph处理印刷体部分最后合并结果。5.2 超小字号8pt字段慎用现象部分电子发票的备注栏字体为6ptGlyph会将其识别为“乱码”或跳过原因渲染时像素不足视觉特征丢失建议预处理阶段用OpenCV对发票做自适应锐化2倍超分仅针对小字区域再送Glyph。5.3 多页PDF发票需拆解现象直接传PDFGlyph只处理第一页原因当前镜像仅支持单图输入建议用pdf2image库将PDF转为JPG序列逐页调用Glyph再按页码合并JSON。关键字段如发票代码通常首尾页都有可交叉验证。我的实践结论Glyph最适合标准化程度高、以印刷体为主的发票占比超85%。对极端case用“Glyph主识别 规则引擎兜底”的混合方案整体准确率仍可稳定在95%。6. 总结发票自动化的新思路回看这次实践Glyph带来的不只是更高准确率更是一种工作流的重构过去OCR识别 → 正则清洗 → 人工核对 → 导入系统4步耗时/张≈3分钟现在Glyph一键提取 → JSON直连数据库2步耗时/张≈2.4秒。它把“识别”这件事从技术问题变成了产品问题——你不再纠结字符级精度而是聚焦于 如何设计提示词让模型理解业务逻辑 如何用结构化输出对接下游系统 如何建立置信度阈值自动触发人工复核。而这一切不需要你懂模型训练不需要标注数据甚至不需要写复杂代码。就像当年Excel取代算盘一样Glyph正在让票据处理从“手艺活”变成“配置活”。如果你也在被发票、合同、报表这些文档淹没不妨试试Glyph。它未必是终极答案但绝对是目前最接近“开箱即用智能”的那一个。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻

Ollama镜像免配置|translategemma-27b-it支持CSV批量导入与翻译结果导出

Ollama镜像免配置|translategemma-27b-it支持CSV批量导入与翻译结果导出

Ollama镜像免配置|translategemma-27b-it支持CSV批量导入与翻译结果导出 你是不是也遇到过这些情况: 有一大堆产品说明书、用户反馈或客服对话要翻译,但每次只能粘贴一段文字,反复切换页面、复制粘贴,一上午就过去了…

2026/7/5 3:02:45 阅读更多 →
零基础学习Logstash如何安全连接ES集群(含证书配置)

零基础学习Logstash如何安全连接ES集群(含证书配置)

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。我以一名长期深耕 Elastic Stack 安全架构、参与过多个金融/政企级日志平台落地的工程师视角,彻底重写了全文—— 去除所有AI腔调和模板化表达,强化技术纵深、实战细节与工程直觉,同时保持零基础友好性 。 …

2026/7/5 7:48:14 阅读更多 →
数字孪生系统间数据同步机制:全面讲解与优化

数字孪生系统间数据同步机制:全面讲解与优化

以下是对您提供的博文《数字孪生系统间数据同步机制:全面讲解与优化》的 深度润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有“人味”,像一位在产线摸爬滚打十年的架构师在技术分享会上娓娓道来; ✅ 所有模块有机融合,摒…

2026/7/4 12:09:55 阅读更多 →

最新新闻

LangChain Agent 开发第一天:先把最小 Demo 跑起来

LangChain Agent 开发第一天:先把最小 Demo 跑起来

今天先不讲复杂概念,也不急着做完整项目。 第一天的目标很简单:创建一个 LangChain Agent 项目,配置好模型接口,并跑通一个最基础的 Agent 示例。 只要这一步能跑通,后面再加工具、记忆、工作流、前端页面&#xff0…

2026/7/6 3:32:06 阅读更多 →
用《白鲸记》测试生产力应用:处理长文能力是关键?

用《白鲸记》测试生产力应用:处理长文能力是关键?

《白鲸记》:生产力应用的测试利器 待办事项列表应处理多少项内容虽非紧迫问题,但作者常思考生产力应用处理“用户生成”内容的能力。作者选择用《白鲸记》测试应用,因其篇幅长、用词复杂,若应用处理《白鲸记》表现良好&#xff0c…

2026/7/6 3:30:05 阅读更多 →
AI应用落地四板斧:场景闭环、数据可得、人机协同、交付确定

AI应用落地四板斧:场景闭环、数据可得、人机协同、交付确定

1. 项目概述:这不是发布会PPT,而是一份AI应用落地的实操路线图“腾讯智能体全景图亮相,汤道生解密打造AI应用四板斧”——这个标题乍看是科技媒体通稿的典型句式,但如果你在2023—2024年深度参与过至少两个中型以上AI项目落地&…

2026/7/6 3:30:05 阅读更多 →
Linux 源码安装 Redis 6.0.10 超详细教程(含编译报错、SCL源失效解决方案)

Linux 源码安装 Redis 6.0.10 超详细教程(含编译报错、SCL源失效解决方案)

一、前期准备 1.1 环境依赖 Redis 基于 C 语言开发,源码编译安装必须依赖 GCC 编译环境,未安装需提前执行命令安装基础编译依赖: yum install gcc-c1.2 安装包下载 官方下载地址:https://redis.io/download 选择 Stable 稳定…

2026/7/6 3:28:05 阅读更多 →
如何在Windows上安装APK文件:APK安装器终极指南

如何在Windows上安装APK文件:APK安装器终极指南

如何在Windows上安装APK文件:APK安装器终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上直接运行安卓应用,…

2026/7/6 3:28:05 阅读更多 →
B站视频下载工具:轻松获取大会员4K和充电专属内容

B站视频下载工具:轻松获取大会员4K和充电专属内容

B站视频下载工具:轻松获取大会员4K和充电专属内容 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是否遇到过这样的情况…

2026/7/6 3:26:05 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻