图像识别平台建设之路(自建+三方产品)
强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan
前言
之前做过东南亚的相关业务,业务流程中需要进行身份证或人脸识别;在国内相关的基础设施比较完善,但是在东南亚相对设施不健全;针对真人识别,有幸成为公司图像识别系统建设的负责人;接下来为大家分享我们在图像识别系统中的一些建设,以及调研些三方产品的比对;
图像识别平台建设
自有图像识别的建设
设计
概要设计
现有线上系统

自有系统陪跑

陪跑数据与线上数据比对

详细设计

数据比对

问题&解参考资料
核心问题点
- 3D人脸无法校正为正面
- 人脸生成的128维向量不能判断生成规则
- 部分人脸图片不能被识别(原因未知)
- 人脸平面向量受限于图片大小(无法根据比例进行计算)
解决过程中参考资料
- 人脸对比网上已有的资料大部分为通过haar对人脸解析后使用欧氏距离计算和余弦值计算,也有使用lbp计算但计算结果不佳(参考 https://blog.csdn.net/lk3030/article/details/84034963)
- 特征脸计算(参考 https://blog.csdn.net/qq_30815237/article/details/88964267)
- Cnn计算(参考 https://blog.csdn.net/u013093426/article/details/81270955)
- 标定特殊区域对比差值(参考 https://blog.csdn.net/intflojx/article/details/81278330)
- knn计算(参考 https://blog.csdn.net/hajk2017/article/details/82862788)
- pca计算(参考 https://blog.csdn.net/daaizjh/article/details/81065054)
- 人脸校正(参考 https://blog.csdn.net/AaronYKing/article/details/90266006)
目标
第一阶段实现目标及操作步骤
- 实现目标:
A.对现有业务无任何影响
B.保证自有系统精准度以及效率
- 将生产请求过一遍自有图像识别系统记录结果,并分析准确度
A.配合运维在测试环境部署以下系统:
(1)自有图像识别系统-图像模型计算模块(Python)
(2)自有图像识别系统-对比模块(Java)
(3)前置agent系统(java)
(4)比对及自有系统结果差异定时任务(java)
B.将线上数据跑进自有图像识别系统并得出结果表
C.跑对比定时任务分析自有图像结果和Advance差异
D.分析差异
第二阶段实现目标
- 进一步验证自有系统识别准确度:
A.业务系统在发某第三方请求同时向自有系统发送MQ通知;
B.自有系统接收MQ记录结果;
C.跑对比定时任务分析自有图像结果和某第三方差异;
- 进行压力测试
- 日志监控,服务器监控
- 接入大数据(MongoDB)
- 精度满足业务需要,实现可替换某第三方
三方相关产品调研及深度使用
国外证件识别
- 在自有图像识别建设过程中我们也是两眼一抹黑,不知如何下手,于是调研很多三方产品,并进行深度体验;
- 在自有系统研制过程中在核心的图像处理(如3D人脸校正,模糊图片识别)这方面一直没有招到专业的人员去做,所以我们在调研基础上也深度使用一些第三方;以下为大家分享一下我们在调研及使用过程中一些第三方产品针对图像识别的情况,供大家参考
- 我们主要做的是东南亚业务,现在可以识别东南亚身份证的第三方产品并不多;其中在我们使用过程中上海合合信息科技股份有限公司旗下智能文字识别云服务平台TextIn非常不错,以下为识别效果

| 产品 | 识别效果 | 效率 | 效果总结 |
|---|---|---|---|
| TextIn | 证件号码 1234123*****41234 姓名 DEIEE SSSSSSS 出生地/出生时间SUMEDANG.04-11-1983 性别 LAKI LAKI 血型 A 地址 DUSUN PABUARAN街道 001/001 村 SUKAWENING 地区 GANEAS 宗教信仰 ISLAM 婚姻状况 Kawin 工作说明 KARYAWAN HONORER 国籍 WNI 身份证有效期限 SEUMUR HIDUP 省 JAWA BARAT 城市 KABUPATEN SUMEDANG 发证日期 12-10-2017 | 1~2s | 效率高且准确 |
| 鹅厂 | 无 | 无 | 无 |
| 熊厂 | 无 | 无 | 无 |
国内相关业务识别
textin国外证件识别率高且其它三方产品没有提供,那国内相关图像、文字识别如何呢?好奇心带领下,挑选了几个常用的产品功能进行了对比,效果非常明显,textin均完胜其他三方产品,效果如下:
身份证
疫情反复,我们几乎每隔几天就去做一次核酸检测,近期我们最熟悉的使用场景就是核酸检测时扫描身份证识别出身份证上的各项信息了。亲测TextIn和熊厂都可以识别身份证正反面信息,且对比之下TextIn的准确率更胜一筹,可以100%的识别出姓名、性别、出生日期、住址、身份证号等个人信息,身份证识别中,身份证号应该是最重要的信息了,熊厂却漏识别了身份证号信息。

| 产品 | 识别效果 | 效率 | 效果总结 |
|---|---|---|---|
| TextIn | 是否为黑白复印件 False 住址 上海市静安区万荣路1268号 公民身份证号44030519****6062561 出生 1995年6月6日 姓名 刘小合 性别 女 民族 汉 | 1~2s | - 效率高 - 准确率100% |
| 鹅厂 | 好刘小合 任女民族汉 出生1995年6月6日 住址上海市静安区万荣路1268号 公民身份号码44030519****6062561 | 3s | - 准确率低 |
| 熊厂 | 姓名 刘小合 性别 女 民族 汉 出生 19950606 住址 上海市静安区万荣路1268号 公民身份号码 | 1~2s | - 效率高 - 准确率90%、身份证号没有正确识别 |
通用文字识别
通用文字识别是最常用的功能,但是仍然面临着多角度、多语种的问题, 我尝试使用一张不规则的照片进行文字识别,并且把图片旋转180°,对比了TextIn、鹅厂、熊厂的几款产品,排列规则的图片识别时TextIn和熊厂都可以正常识别,鹅厂效率相对较低,偶尔会出现乱码情况;使用排列不规则的图片识别时TextIn依旧可以100%的识别出其中的文字,鹅厂乱码率高且效率差,无法正确识别其中的文字,熊厂无乱码情况,但识别效率也是低至0%。下列是此次测试图片:

| 产品 | 识别结果 | 效率 | 效果总结 |
|---|---|---|---|
| TextIn | ПриветT、Ahoj、Kaixo、Bunǎ、Përshëndetje、Haloo、Прывітанне、Salam等【篇幅限制不全部列出】 | 1~2s | - 52个单词100%正确识别 - 无重复 |
| 鹅厂 | 8Mre品d、1mIq81oaedts、oaedts、1oaudu、ouo1d、4、"OAeJpz、-oojeH、"oAepz、eepueused、"ox[e>、"ooeH、reo、oopuusd、wuees、ro1goaedue、reqeqow、glbig26 | 5~10s | - 效率差 - 0%正确率 - 识别单词个数不足 - 识别出的都是乱码,没有一个正确识别出的单词 |
| 熊厂 | weles、Sy!OAS、引、⊥ead、IIeH、celleH、ejoH、ollOH、seqe7、Leandu、OIV、elo、eJeL、eung、'oojeH、iolleH、Leandu、引、oaeduc、unoluog、OIIOH、unoluoa、coquold、oAeupz、eung、oojeH、oAeupz、wejes、oxey、Leandu | 1~2s | - 0%正确率 - 识别单词个数30个 - 30个单词均识别错误 - 有重复 |
印章检侧
印章识别广泛的应用在合同比对、出入库审核和发票报销的场景,之前只能靠人工进行对比,人工成本较高,有了OCR自动识别后可以为企业有效的节约人力成本。不过OCR印章识别技术相对通用的文字识别仍面临着一些难题,如印章形状多样、容易受印章本身的背景干扰,影响识别精确率、印章字体多样等。我挑选了一张同时存在多款印章的图片,其中有的同时包含文字和数字,TextIn可以100%的识别各个印章中的文字和数字;熊厂文字识别准确,在数字识别上出现漏识别现象。下列是此次测试图片:

| 产品 | 识别效果 | 效率 | 效果总结 |
|---|---|---|---|
| TextIn | stamp1 电子印章透明背景 stamp2 电子印章透明背景 合同专用章 | 1~2s | - 准确识别7个印章,识别率100% - 能识别出印章且同时识别出印章中的文字 |
| 鹅厂 | a 发票韦用章 某某税务局 合同专用章 u 财务专用章 | 3~5s | - 无印章识别功能 - 印章中文字不能100%识别,存在乱码情况 - 识别数量不足 |
| 熊厂 | - 1 宽度: 155高度: 153上边距: 3左边距: 184上环主要文字: 电子印章透明背景 - 5 宽度: 184高度: 125上边距: 189左边距: 72上环主要文字: 一电子印章透明背景其他位置文字1: 发票专用章其他位置文字2: 331234567898 | 3s | - 识别率90% - 印章中存在数字的情况下有漏识别情况 |
增值税发票识别
增值税发票包含的信息较多,在国内同样面临着种类繁多的难点,而且发票中不是单纯的汉字,若在报销过程中财务手动录入发票信息,一方面降低了效率,而且错误率高,财务需要多次确认才能最终录入企业系统。查看了三款服务商,鹅厂没有提供该功能,TextIn和熊厂效果接近,100%的精准度和2s左右的识别效率,结果以TextIn为例,它可以支持多种票据类型的字段结构化【如价税合计、发票代码、发票号码、合计税额、合计金额、检验码、开票日期等】。

| 字段名 | 信息内容 |
|---|---|
| 发票专用章存在性判断 | True |
| 盖章存在性判断 | True |
| 子类型 | 非通用电子发票 |
| 密码区 | 03<>392957+714<9**20</520>06>4<->9*<8<>865433648-128<52984543<22-5314/+><8/*++458-90->+010-/190700/6+3++ |
| 校验码 | 0100710100***32020100 |
火车票识别
火车票也是我们报销时经常使用的一款票据,鹅厂和熊厂均未提供相关的功能,TextIn可以精确的识别检票口、出发地、车次号、乘车时间、乘客信息等信息,识别在2s内,精确率可以达到100%,识别效果如下:

| 字段名 | 信息内容 |
|---|---|
| 火车票红色编码 | G000001 |
| 检票口 | A27 |
| 出发地 | 郑州东站 |
| 车次号 | G0000 |
| 目的地 | 北京站 |
| 乘车时间 | 2019-01-01 00:00 |
| 座位号 | 01车01F号 |
| 价格 | 190.0 |
| 座位类别 | 二等座 |
| 乘客身份证 | 1234567890****0000 |
| 乘客名称 | 王小合 |
| 火车票ID | 30000300***110A000001 |
| 发票代码 | 30000**0500110 |
| 发票号码 | A0**001 |
自建还是第三方建议
建议自建情况
- 图像识别是公司的核心竞争力产品
- 公司有充足的人力物力需要掌握这项关键的技能
建议使用第三方产品
- 图像识别不是公司的核心竞争力产品
- 公司未有专门的人力物力来做
总结
- 在主导建设自有图像识别平台过程中,自己对图像识别有了更加全面深入的了解,并不断发现问题解决问题,不断成长;
- 术业有专攻,大部分情况下第三方成熟的平台比自研靠谱,自研需要投入大量的人力物力来保障识别的准确,稳定,高效;而TextIn在该领域深耕16年,有丰富的经验可以赋能我们业务;
- TextIn平台提供了在线的体验中心【无需注册账号、快速上手】;熊厂部分产品可免费体验,其余部分需要用户购买才可试用,对新手不友好。
- TextIn产品种类繁多、功能丰富;试用了几款识别功能基本都达到了100%的识别精度;熊厂产品精度达到90%以上,但是存在漏识别的情况;鹅厂产品乱码率高。且合合信息科技股份有限公司旗下智能文字识别云服务平台TextIn对开发者友好,每一个功能都有针对多个语言的API文档、示例代码和线上调试功能;鹅厂功能简单,没有提供线上调试功能和示例代码,对新手开发者不友好;
更多推荐


所有评论(0)