2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

为什么才云能打进 500 强企业的财务部门?

  • 2020-03-02
  • 本文字数:3564 字

    阅读完需:约 12 分钟

为什么才云能打进 500 强企业的财务部门?

发票是会计核算的原始依据。于国家,它是保障税收的基石;于企业,它是公司做账的依据;于个人,它是报销的凭证。


临近年底,为了赶在截止日期前完成封账,各大公司的财务部门开始加急投入人力、时间成本将发票录入系统,工作压力大,运营成本昂贵。


以增值税发票为例,财务人员通常需要肉眼核对长达十几位的发票代码、纳税人识别号等,并手动录入关键数据。这样沉重的负担无疑会导致发票出错风险激增,也拖累公司整体财务管理效率!



增值税电子普通发票格式


为了降低财务工作难度,实现财务数据的信息化和录入的智能化,国内某能源企业在系统中引入了才云科技的 OCR 解决方案,财务人员上传发票图像即可完成对工程建设、电力调度、员工报销等多种发票的信息自动录入。即便存在发票褶皱、倾斜、扭曲,该方案的数字识别准确率也始终保持在 90% 以上!人工复核压力小,海量票据的报销流程大大加快。而现在,随着这套解决方案即将上线 Caicloud Clever,对更多企业来说,自主开发票据 OCR 正变得触手可及。

票据 OCR 为何难以落地?

OCR,全称光学字符识别(Optical Character Recognition),是计算机视觉的一个分支,主要包含文本检测和文本识别两大关键技术:前者用于定位图像中的文字,后者负责将定位到的文字图像转化为可编辑的文本。


发展至今,OCR 的应用已经十分广泛,市场上的 OCR 产品也比比皆是,但它们的在现实场景下的识别效果却良莠不齐。这是因为作为一种基于图像的文字识别技术,OCR 的识别效果不仅取决于算法,输入图像的质量也严重影响着其最终准确率。


对于算法:目前业界针对文本检测和文本识别已经提出了很多优秀的“轮子”。但检测模型只能完成文字定位,识别模型只能完成文字转录,为了形成一套完整的 OCR 流程,企业需要对各类已有“轮子”进行定制化组合。考虑到 AI 模型的开发难度,这就为企业增加了引进 AI 技术专家的成本。


对于图像质量:通用的 OCR 方法在高质量扫描图像上都能取得较好的效果,但在实际应用中,财务部门上传的票据大多存在分辨率低、光照不均匀、背景杂乱、拍摄角度随意、版式复杂多样等问题,这些都可能影响最终的识别结果。


同时,OCR 服务在许多场景下是系统中连接着后续业务逻辑的子模块。为方便后续业务的进行,系统不仅要知道图像上包含哪些文字,更需要结构化文本内容,这也增加了 OCR 的技术难度。以增值税发票的识别为例,OCR 服务的最终返回结果类似如下的形式:



因此,从实际落地的角度看,当下有很多 OCR 产品只是炫技之作,它们忽视了企业的现实情况,无法从平台级别实现一套通用的票据结构化识别流程,方便非 AI 专家构建定制化 OCR 解决方案,提升 AI 产品在企业系统中的长期价值。

才云票据结构化识别通用 Pipeline

针对上一节提出的问题,才云算法团队(Cabernet 团队)经多方调研和尝试,总结出了企业对通用票据 OCR 落地应用的三项主要需求:


  • 构建通用的票据结构化识别流程,方便非 AI 专家灵活、合理利用“轮子”;

  • 拥有多角度检测和识别的能力,在图像质量不理想的情况下仍能保持高准确率;

  • 结构化不同票据的票面信息,为每一种票据做定制化处理。

  • 结合在五百强企业财务部门的应用实践,才云 Cabernet 团队针对当下所有具有明确版式的票据,设计了一套通用的结构化识别流程(Pipeline),整个 Pipeline 包含票据提取、票据标准化、文本检测及结构化和文本识别四大模块。


才云票据结构化识别通用 Pipeline

票据提取

首先,票据提取模块的输入是用户上传的图像。由于报销人可能会同时提交不同类型的多种票据,其中甚至夹杂公司不支持报销的纸质材料,Pipeline 的第一个环节需要完成感兴趣票据的自动分类和裁切(未支持的票据种类视为不感兴趣),如下图所示:



票据提取结果示例图(不同类型的票据用边界框颜色不同)


技术上,该环节是一个目标检测任务,它将每张票据视为一个目标,并预测目标的位置和类别。目前业内常用的目标检测模型有 Faster R-CNN、SSD、YOLO 以及 RetinaNet 等。为帮助非 AI 技术专家进行模型训练,未来,才云 AI 中台 Caicloud Clever 将提供上述模型选项,方便用户灵活选择。

票据标准化

在企业中,票据图像的采集一般由人工通过扫描仪、高拍仪、手机等设备完成,采集角度不固定,导致无法使用标准模板上的先验信息,影响结构化识别的准确率。


该问题虽然可以通过规范用户的采集方式缓解,但出于对提高用户体验、加快信息采集效率的考量,才云 Cabernet 团队最终选择在 Pipeline 中实现票据标准化。


标准化是通过空间映射将输入图像转换成标准模板。方法是在输入图像和标准票据模板上寻找特征点对计算映射矩阵 H,通过 H 将输入票据投影到模板平面。这包含两个问题:


  • 问题一:在标准模板上的特征点选择标准——选取的点应尽量均匀分布在图像四周,可以最大程度地保证投影之后图像信息的完整性;

  • 问题二:在输入图像上找到标准模板上特征点的映射——在模板图像上定义关键区域,训练检测(实例分割)模型预测输入图像的关键区域,以输入图像和模板上的区域中心作为特征点对。

  • *注:关于问题二,此处推荐使用 Mask R-CNN 完成区域检测并以 Mask 中心为特征点,避免常用检测算法的矩形框中心在拍摄角度随意的情况下无法准确描述特征点的位置。

  • 以火车票为例,我们可以定义如下的关键区域:起始站、车次号、到达站、时间/价格信息、座位信息、身份证、二维码。图中绿色的点代表该区域的中心点:


关键区域模板示意图


对任意一张车票图像完成关键区域的检测并得到区域中心后,我们就可以通过特征点对计算映射矩阵,完成输入图像到标准模板的转换。!



标准化前(左)和标准化后(右)

文本检测及结构化

这一环节的主要任务是检测、定位各类信息在票据上的位置,方便后续文字识别。


对于标准化后的票据,票面上的文本已基本被调整至水平方向,因此无论是传统文字检测方法还是深度学习文本检测模型,它们都能在票据上完成文本定位。


*注:由于传统方法易受图像质量的影响,抗噪能力不强,这里还是推荐使用场景适应性更好的深度学习方法。


以火车票为例:



文本检测结果(右)和关键字段模板示意图(左)


得到文本检测结果后,引入针对关键字段的模板,计算文本检测框与模板上关键字段边界框的 IOU (交并比),将“起始站”“车次号”“身份证”等信息分配给检测框以完成结构化。!



结构化检测结果(不同颜色的框代表属于不同字段)

文本识别

至此,整个 Pipeline 中最难的两个部分“标准化”和“结构化检测”都已经完成,相当于用户已经知道当前输入的票据上的感兴趣字段所在的位置,剩下的只需把关键字段位置对应的图像转换成文本内容即可。


文本识别可以将整个关键字段切割成单字逐个识别,也可以直接识别整条文本行,下图是才云 Cabernet 团队基于文本识别模型,对整条关键字段进行识别的效果。



结构化识别结果示意图


当前业内常见的识别模型分为 CTC 和 Attention 两大方向。如前文所述,在 OCR 解决方案正式上线 Caicloud Clever 平台后,用户可在 Caicloud Clever 上自由选取各类模型进行训练,降低开发者学习成本。

未来展望

本文提出的票据结构化通用 Pipeline 是一套针对常规票据从输入到最终结构化输出的最佳实践,包含票据分类、自动裁切、版面标准化、结构化检测与识别等多项 OCR 不可或缺的步骤及实现方法。


为帮助更多企业自主开发票据识别 OCR 系统,才云 AI 中台 Caicloud Clever 即将上线票据结构化识别通用 Pipeline,利用平台级 AI 开发能力及在国内诸多大型企业积累的丰富落地经验,帮助用户灵活、自由地定制各环节模型,轻松实现票据种类的扩展,并快速在生产环境中落地。


为进一步服务用户,才云 Cabernet 团队下一步的工作将围绕两个方向展开:


设计通用 OCR 模型框架:通过规范化 OCR 模型的输入输出,统一训练、推理的流程和接口,实现在 Pipeline 中的即插即用;


开展对自动数据增强(Data Augmentation)的研究:在数据有限的情况下,低成本、更稳健地提升 OCR 的性能。


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/6XcH_jfULfGZQCDdehQzfg


2020-03-02 21:59824

评论

发布
暂无评论
发现更多内容

云原生时代如何用 Prometheus 实现性能压测可观测-Metrics 篇

阿里巴巴云原生

大话后端开发的奇技淫巧大集合

SFLYQ

架构 Web 后端 服务端 经验分享

maven工具的使用

Rubble

4月日更

使用 fluro 转场动画优化页面跳转体验

岛上码农

flutter 移动端开发 安卓开发 4月月更 苹果开发

分布式链路追踪

yuexin_tech

链路追踪

Spring Boot 整合Dubbo + Zookeeper 实现分布式 消费者与服务者的业务调用

Bug终结者

Java dubbo springboot

通达快递系统设计

peter

通达系统架构设计文档

小锅米线

开源IM项目OpenIM发布消息推送api,支持应用与IM互通深度融合

Geek_1ef48b

作业七

Geek_f3e842

架构实战营

兑现 Service Mesh 的新价值:精确控制“爆炸半径”

阿里巴巴云原生

RocketMQ—Producer(二)路由动态更新

IT巅峰技术

Apache RocketMQ

Linux驱动开发-安装驱动参数传递

DS小龙哥

4月月更

Spring容器的核心组件

IT巅峰技术

读《A Philosophy of Software Design》(01-07)

术子米德

架构师成长笔记

开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6

Geek_1ef48b

聊聊最近比较火的一款Web3.0应用(25/100)

hackstoic

区块链 gamefi Web3.0 stepn Play2Earn

Kubernetes官方java客户端之七:patch操作

程序员欣宸

4月月更

Spring容器的灵魂

IT巅峰技术

Spring 框架漏洞

通过npm+Vant Weapp 构建微信小程序

kcnf

关于线程池,面试的时候你时候还打怵,这里我有话要说保证让你对线程池的各个参数一边就懂

派大星

线程池

mysql的FIND_IN_SET group_concat 函数

Rubble

MySQL 4月日更

明道云如何实现银行内部评级管理

明道云

设计电商秒杀系统

唐尤华

架构实战营

Spinner: 往Pinterest新工作流平台的大规模迁移

俞凡

架构 工作流引擎 大厂实践 Pinterest

Rust的对象安全性

Shine

rust

剑指Offer之面试题57: 和为s的数字

宇宙之一粟

算法刷题 4月月更 剑指Offer

Bigdata作业 第五周

Pyel

架构实战营毕业总结(第 5 期)

唐尤华

架构实战营

WEB3的DAO生态服务平台,SeekTiger展现新的契机

小哈区块

MapReduce 学习思考

en

mapreduce

为什么才云能打进 500 强企业的财务部门?_语言 & 开发_才云科技_InfoQ精选文章