写点什么

为什么才云能打进 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:59701

评论

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

细胞分裂问题的原创解法

王玉川

原创 算法 递归 LeetCode 动态规划

C++ const与指针

王玉川

c++ 指针 常量 const

设计模式之装饰者模式

程序员大彬

Java 设计模式

性能优化 - 访问局部性

王玉川

c++ 性能 cpu 访问局部性

架构训练营第10期模块5作业

Geek_4db2d5

Databend 内幕大揭秘第二弹 - Data Source

Databend

软件测试/测试开发 | 如何使用代理配置快速定位接口测试脚本问题?

测试人

软件测试 自动化测试 接口测试 测试开发

软件测试/测试开发 | 接口自动化测试如何进行认证?

测试人

软件测试 自动化测试 接口测试 测试开发

聚焦低碳发电,践行“双碳”之路

脑极体

华为 智能光伏

Studio One6永久免费版本下载安装包

茶色酒

Studio One6

在Spring异步线程池中自动传递上下文,这样写轻松又方便

程序员拾山

Spring Boot #java

树与二叉树深度剖析(二)

C++后台开发

数据结构 算法 二叉树 红黑树 Linux服务器开发

华为云发布冷启动加速解决方案:助力Serverless计算速度提升90%+

华为云开发者联盟

Serverless 华为云 冷启动 Cold Start 进程级快照

从人工分析到智能分析,流量分析如何快速上手?

智维数据

智能运维 应用交付 可视化数据 流量分析系统

C++ Lambda表达式

王玉川

c++ Lambda

C++ 引用:他是坤坤也是鸡哥

子夜的星

c++ 引用 语法 引用参数函数

谈谈enabled_shared_from_this

SkyFire

c++ 智能指针

Golang如何优雅接入多个远程配置中心?

王中阳Go

golang 高效工作 学习方法 后端 viper

MySQL:如何给字符串加一个高效索引?

程序员拾山

MySQL

可观测性之网站性能调优的实际案例-小白都看的懂

Yestodorrow

前端 可观测性 网站性能

通用池化框架commons-pool2功能拓展

FunTester

性能优化 - 伪共享

王玉川

c++ 缓存 性能 cpu

Lattice - 模式级复用的能力定义

原力在线

架构 lattice 高可扩展

安全事件溯源分析场景

智维数据

大数据 数据可视化 智能运维 应用交付 流量分析系统

深度学习快速上手——基于 MegEngine 的 LeNet 快速训练与部署

MegEngineBot

深度学习 开源 MegEngine

中国国际电子商务中心与易观分析联合发布:2022年3季度全国网络零售发展指数同比增长1.5%

易观分析

零售 电商

nCompass为医疗行业信息安全穿上“铠甲”

智维数据

大数据 数据可视化 智能运维 应用交付 流量分析系统

Perfkit - 性能分析与测量工具集

王玉川

Linux 性能优化 Dockerfile ebpf perf

CleanMyMac4.12.3中文版如何汉化免费?

茶色酒

CleanMyMac4.12.3

“零信任”下的防火墙策略管理

智维数据

大数据 防火墙 数据可视化 智能运维 运维安全

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