OCR是通过算法识别出图像中的文字内容,算是图像识别的一个分支。那为什么固定资产管理系统中会用到 OCR 呢?

一、从业务说起:为什么需要 OCR?

为什么固定资产管理系统中会用到 OCR 呢?就得从梳理需求时遇到的问题说起。

固定资产的全生命周期管理的第一步是“资产入库”,而入库是一个非常繁琐的过程,需要将大量信息录入系统。通过前期调研发现录入过程费时费力,还经常出现录入错误的问题(比如设备型号、序列码是较长的数字、字母序列,人工录入很容易出错)。

有没有办法解决这个痛点呢?受证件识别的启发,我们想到了 OCR 辅助人工录入,那么接下来就是调研这种方案的可行性了。

二、关于 OCR

OCR,也就是 optical character recognation(光学字符识别),是通过算法识别出图像中的文字内容,算是图像识别的一个分支。OCR 对纯文本的识别已经比较成熟,识别率普遍可以达到 90%以上,百度、阿里、腾讯等各大厂都有相应的服务可以直接调用。

1. OCR 分类

OCR 技术可以按字体类别、识别语言、识别场景进行细分,每个细分的算法有所不同,现在暂时还没有非常通用的算法同时适用于多个分类。

其中:

  • 印刷体识别成熟度要高于手写体(原因也比较好理解,印刷体比较规范,手写体五花八门有时候人都难以辨认)。
  • 中文和西文的识别成熟度高于小语种,中英文混合识别也能比较好的解决。
  • 自然环境中的文字识别难度也要大于文档图片识别,因为自然环境中文字所处环境要更加复杂,文字检测难度要大于文档图片。
  • 对特定格式文档(如身份证、发票、成绩单)的识别要好于自由文档(文字、表格、图片、公式混排)。

调研到这里,我们可以发现:OCR 辅助资产入库的需求,属于上述分类里的【自然环境】下的【中英文混合】【印刷体】识别。目前文字识别印刷体识别已经比较成熟,但自然环境下的拍照可能会给识别带来一些难度,初步判断 OCR 辅助人工进行资产入库信息录入是可行的。

2. OCR 算法理解

既然 OCR 是图像识别的一种,那么处理的流程就和大多数图像识别算法是一致的,即预处理-图像检测-图像识别。以自然环境下的文字识别为例,OCR 算法的工作流程大概是这样的:

预处理:文本经过扫描或拍照后会发生形变等问题,会对识别造成干扰,预处理就是通过灰度化、二值化,倾斜校正等方式消除这种干扰,以提高识别准确率。其中倾斜矫正的常见算法有投影法、hough 法等。

文字检测:目的在于找出文字的区域,是文字识别的基础。简单背景(e.g.扫描、截屏)和复杂背景(e.g.广告牌、说明书)下的文字检测方法差异较大,实现算法可以分为传统 CV 算法和 DL 算法两大类。

  • 形态学方法:通过膨胀腐蚀等操作找到文字区域,只适用于简单背景。
  • MSER:常用的传统文字检测算法,检测速度快,在简单背景和部分复杂背景中适用。但背景特别复杂时,检测效果可能较差。
  • CTPN:是 CNN 和 RNN 相结合的算法,适用于简单和复杂背景的文字检测,但文字倾斜时的检测效果较差。
  • SegLink:可以用于检测倾斜文字(但文字间隔不能太大)。
  • EAST:端到端文本检测方法,也可用于检测倾斜文字,检测的准确性和速度都不错。

文字识别:文字识别又根据文字的长度分为定长(e.g.验证码)和不定长。不定长文字识别现在主要是通过 DL 算法实现,目前两大主流技术是 CRNN OCR 和 attention OCR。由于文字识别的特殊性,虽然其表现形式是图像,但本质是序列化的文本。所以不论是CRNN还是attention,思路其实都是用CNN提取特征,然后用RNN处理序列化,充分运用了文本图像的所有信息。

通过对 OCR 工作流程以及主流算法的了解,我们能对后续技术实现有个大概的认识,和 RD battle 时候也更加有底了。

三、功能设计

1. 核心场景

最近公司采购了一批新的办公电脑,资产管理部门的小方来到仓库打算对这批电脑进行入库登记,他拿出手机打开 app,对着每台电脑上的标签进行拍照,标签上的信息就被识别出来填入相应的输入框,很快小方就完成了入库登记的工作。

2. 业务流程

对用户来说 OCR 识别的过程是无感的,操作上只是用拍照代替了手工填写某些字段的步骤。

3. OCR 实现中的几点考虑

1)输入和输出

在本需求中,OCR 算法的输入就是用户拍摄的照片,然后需要把算法的识别结果填写到资产登记表单中相应的输入框中,所以需要确定 :a)识别哪些字段;b)每个字段识别出的结果。

a)识别哪些字段:综合考虑了常见的资产标签类型,结合最开始我们遇到的问题“字母数字序列输入容易出错且效率低”,确定了【资产名称】【型号】【SN码】三个需要识别的字段,也就是 OCR 处理完的结果只是中间结果,后边还需要做一个类似标注问题的处理(标注问题的处理方法暂不在这里展开)。

b)文字识别的结果反映到页面上就是把识别出来的字段填到相应的文本框中,所以需要算法部分输出的结果是“型号:Lenovo IdeaPad Y580”这样的 k-v 形式。

细化一下可以得到下图:

2)服务端 or 客户端

模型直接放在客户端的好处是可以离线使用,缺点也十分明显:一是识别准确率会受影响;二是安装包会变大;三是算法迭代必须等软件整体更新。所以除非是特殊的离线要求,还是把识别放在服务端好一点。

3)技术选型

实现途径无非两种:自研或者调用第三方服务。

自研的话,也不太可能从轮子造起,一般是在成熟的开源项目(如 chinese-ocr)或者是团队已有的算法基础上优化,最后得到的模型在特定场景的准确度肯定会比通用服务好。

自研算法主要包括两方面的工作:一是数据集获取、标注;二是模型优化,时间和人力成本都较高。但出于团队发展、算法积累以及后续可能需要私有化部署的考虑,我们最后还是选择了自研的形式。

为了给自研提供支撑和帮助,我对第三方服务也做了一些调研,如果有小伙伴恰好有类似的需求也可以参考。百度、阿里、腾讯三个开发平台都没有针对我们这种需求的特定解决方案,所以只能使用通用 OCR 模型。

以同一张标签图片为例(实际中试验了不同分辨率、不同品牌的资产标签),三个平台通用 OCR 识别结果如下:

(百度AI开发平台)

(阿里云)

(腾讯AI开放平台)

可见通用 OCR 模型已经能比较好的识别出资产标签信息,所以调用第三方服务的方案也是可行的。

4)性能需求

  1. 由于用户需要即时获得识别结果,正常网络环境下,处理单张图片请求到返回结果应该在2s以内
  2. 由于后续流程中有人工确认、更正信息的步骤,所以在平衡精度和召回率时,可以适当地提高召回率。

4. 优化思路:批量处理

个人认为批量操作是 2B 业务的一个核心思想。设备特别多的情况下每个设备拍照-录入这种流程也会比较慢,而且一批设备很大概率上是同一品牌型号的,所以批量录入的需求是存在且可以实现的(比如输入相同信息,然后批量识别 SN 码)。

实现批量录入的需求,一方面前端业务流程需要调整,另一方面 OCR 算法为适应批量识别在速度上也需要提升。这也是这个功能点后续优化的方向~

参考资料

大话文本检测经典模型:CTPN

大话文本识别经典模型:CRNN

自然场景OCR检测(YOLOv3+CRNN)

端到端不定长文字识别CRNN算法详解

本文由 @LCC 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议。

开源资产管理系统_OCR在资产管理系统的应用相关推荐

  1. 网络资产管理系统_网络版固定资产管理系统具备哪些优势?

    网络版固定资产管理系统具备哪些优势?许多企业在选购固定资产管理系统时总是会问是否可以将系统部署的本地服务器.由此可以看出,许多企业对于本地版固定资产管理系统与网络版固定资产管理系统的优劣还不太清楚,由 ...

  2. 语言 班费管理系统源代码_固定资产管理系统开源的各种语言翻译

    固定资产管理系统开源指的是将固定资产管理系统源代码进行开发,进而得到可以免费使用的固定资产管理系统,即是开源的固定资产管理系统.固定资产管理系统简单来说就是利用现代信息技术智能化管理企业资产的管理系统 ...

  3. 分布式电商项目五:使用人人开源搭建前后分离的后台管理系统

    分布式电商项目五:使用人人开源搭建前后分离的后台管理系统 现在我们开始搭建一个后台管理系统,使用的是码云上面的开源项目:人人开源 需要使用两个开源项目:fast和fast-vue. 使用git把需要的 ...

  4. 开源了自己开发的后台管理系统

    因为面试的时候一个项目经理问用户中心为什么要重复造轮子呢?我顿时觉得我应该开源我自己的Java后台管理系统项目.我很想问那个项目经理:你发现过国内有开源的.安全的.完全满足需求的用户中心系统吗?你觉得 ...

  5. 团队协助 开源项目_Open Atrium 是一套开源的团队协作和知识管理系统

    Open Atrium 是一套开源的团队协作和知识管理系统.它能提供团队交流.文档管理.日程安排.任务跟踪等功能.支持成员分组,支持权限划分,支持邮件提醒,支持版本控制.界面颜色和Logo可以自由更换 ...

  6. 分享10 个开源免费且优秀的后台管理系统模板

    分享10 个开源免费且优秀的后台管理系统模板. Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者使用,那么有哪些优秀的 ...

  7. 开源全渠道业务中台OMS订单管理系统

    开源全渠道业务中台OMS订单管理系统 原创2023-02-12 22:11·厦门飞骥科技有限公司 一.引言 通用的中台系统雏形实现快速部署,帮助企业后续自主进行开发迭代,来帮助企业实现数字化 ,同时为 ...

  8. 【企业信息化】第3集 免费开源ERP: Odoo 16 POS终端管理系统

    文章目录 前言 一.概览 二.硬件 三.使用功能 前言 世界排名第一的免费开源ERP: Odoo 16 POS终端管理系统.几分钟内完成设置,几秒内完成销售. 一.概览 Odoo POS 基于智能界面 ...

  9. 开源项目-学生成绩查询分析管理系统

    哈喽,大家新年快乐!2023年分享的第一个开源系统-学生成绩查询分析管理系统 系统主要有学生管理,教师管理,课程管理,班级管理,成绩管理等模块 系统登录 系统主页 学生信息 班级信息 教师管理 课程管 ...

最新文章

  1. python表格筛选打印_按行名进行表格筛选:awkpythonR
  2. Javascript实现动态菜单添加
  3. AndoridSQLite数据库开发基础教程(5)
  4. java运行jar命令提示没有主清单属性
  5. keil C 51 strlen库函数使用
  6. SAP Intelligent Robotic Process Automation权限控制
  7. 海底光缆,到底是怎么安装和维护的?
  8. [BZOJ] 3301: [USACO2011 Feb] Cow Line
  9. Android系统信息获取 之一:系统存储信息的获取(RAM,ROM,SDCard)
  10. 安装mujoco报错:distutils.errors.DistutilsExecError: command ‘gcc‘ failed with exit status 1
  11. Linux 分区简介
  12. 国家标准的台式计算机,GBT 9813.1-2016 计算机通用规范 第1部分:台式微型计算机国家标准...
  13. 【机器学习原理】KNN分类算法
  14. Java邮箱验证码注册
  15. 怎样用c语言写高速超速罚款标准,C语言实现:高速公路超速处罚
  16. json和pickle的数据序列化
  17. live两种读音[liv][laiv]含义上的区别
  18. mxnet下载与使用
  19. Vue2.0面试题集合
  20. 南部一名女子欲跳江轻生,已经被成功营救

热门文章

  1. 科技发烧友之3d吉米投影
  2. 2022人才市场洞察及薪酬指南
  3. 想比较全面地学习 SAP XXX,能指导下从哪儿开始学习吗?
  4. 洛谷 P1014 [NOIP1999 普及组] Cantor 表 | OpenJudge NOI 2.1 8760:Cantor表
  5. 多元复合函数的求导法则
  6. 智能车图像处理逆透视教程
  7. arcgis 将地图点转换为屏幕坐标_ArcGIS中自定义坐标系转换
  8. 三行Python代码,实现数据库和excel之间的导入导出!
  9. 前端HTML5+CSS3学习笔记
  10. 找回知之阅读笔记的方法