美文网首页机器学习与计算机视觉@产品
【OCR】AI产品经理CV通识(四)

【OCR】AI产品经理CV通识(四)

作者: JasmineWei | 来源:发表于2018-01-19 09:11 被阅读142次

光学字符识别(OCR)

光学字符识别(Optical Character Recognition, OCR),目标是将图像上的字符进行分析识别,将其准化为文本格式的字符序列。

一、技术流程详解


1、图像采集

1)摄像头选取需要考虑到两个指标:像素分辨率摄像头焦距

像素分辨率:可以通过所检测物体的最小特征决定像素分辨率。公式为:

(检测物体最大长度/物体最小特征值)*2

假设字符最大长度为300mm,最小特征值为1mm,则最小所需分辨率为600。

镜头焦距:焦距(F)的选择由CCD传感器的尺寸(Ss)、工作距离(摄像机镜头到被测物体的距离Wd)和摄像机的视场范围(Os)--3个参数来决定。

若系统要求严格,还需采用预防抖动的数码相机采集图像。

2)图像常见格式有BMP、GIF、JPG等,其中BMP格式最不容易出问题。

2、图像预处理

图像预处理主要包括二值化、图像增强、噪声处理、图像滤波等。

3、特征提取

考虑通过聚类、分割、去噪、池化等步骤获取图像中文字特征。

1)聚类是根据图像特点自适应地进行多值化的过程。推荐“极大值极小值分割”聚类方式:有多少个极大值点,就聚为多少类,并且以极小值作为类别之间的边界。通过聚类可将图片分成不同图层

2)分层识别

每一层图像由若干联通区域组成,在此时需要文字具有一定抗腐蚀能力。联通区域边界线越短,抗腐蚀能力越强;联通区域边界线越长,抗腐蚀能力越差。

联通区域的抗腐蚀能力=该区域被腐蚀后的总面积/该区域被腐蚀前的总面积。文字区域的抗腐蚀能力大概在[0.1,0.9]之间。

相关概念:

腐蚀:图像中高亮区域被腐蚀,高亮区域减少。


图 by(浅墨)

3)池化操作:对特征层进行整合

4)后期处理:a.高低密度区排除:b.孤立区排除

4、文字定位

1)邻近搜索,目的是圈出单行文字。

由于部分汉字是由很简单的其他汉字组成,比如“胆”就是由“月”和“旦”组成,我们需要经过邻近搜索算法,整合可能成字的区域。

2)文本切割,目的是将单行文本切割为单字。利用切割方法(比如均匀切割),将单行文本切割成一个一个的单字。

5、文字检测

文字检测是基于深度学习的方式,同时包括了特征提取和文字定位。

现在应用得比较广泛的是Faster-Rcnn系列的方法,它的特点是:精度高,但是速度较慢

另外还有Yolo系列的方法,它的特点是:精度较低,但是速度较快。

6、光学识别

1)模型选择:选择卷积神经网络模型

2)训练数据:除可直接获取到的数据外,还可利用程序自动生成一批训练数据,需要考虑到以下因素:

a.字库的字体数目;

b.同字不同字体;

c.同字不同颜色;

d.同字不同大小;

e.同字不同清晰程度;

f.中英文数字等等语言种类;

g.噪音影响。

3)输出结果:

a.有形近字的情况,优先考虑高频字:例如”天“和”夭“,“天”出现的频率更高,优先考虑“天”;

b.通过模型精确率评估模型效果;

d.对数据进行随机增加噪音,测试模型的效果;

e.后期处理校正:利用人工或者上下文关系,对识别结果进行校正;

f.若需按照原文排版识别,还需用版面恢复算法将输出结果输出到word或者pdf。

二、场景分析

1、OCR提取身份证信息

1)本技术可用于安防、金融、电信等等领域;

2)身份证信息提取包括了身份证照片提取文字提取,在整个过程中可以先识别出人脸的位置再直接定位各数据位置。不用针对整个识别区域定位;

3)身份证识别可在手机端的APP里集成SDK,通过手机照片即可识别。也可通过云端识别,返回具体的识别结果;

4)身份证图像字符分布规律,可采用水平投影法进行行分割,垂直投影进行字符分割;

5)识别效果可通过误检率评估,影响效果的因素有身份证清晰度、倾斜度、光照、对比度等。

2、OCR小广告过滤

OCR除了常规识别身份证、名片等等用途,还可以用来过滤广告。现在很多直播平台、社交网站等都被广告充斥,而人工筛选这类广告需要耗费大量的精力。而在这个场景发挥OCR也能发挥它的优势。

1)广告过滤的难点除了文字提取识别外,还有背景的识别。广告背景通常会是商家的产品,这提高了OCR识别的难度。

2)广告文字很少有常规的字体,不同角度、颜色、字体的文字非常常见,繁体、火星文也常被用于广告文字。这就对模型的泛化要求更高。

3)在本场景中,除了准确率和召回率外,漏检率是非常重要的指标。

3、OCR应用于教育场景

在试题识别的场景下应用十分广泛,现在的作业帮、学霸君等APP就可以通过拍照上传试题,通过人工解答或搜题给出结果。

1)本场景下对文本定位的要求很高。而很多照片里都会含有不相干的信息,因此产品设计需考虑到文本框选的自由性。

2)中英文、数字、特殊字符种类繁多,且版面分布不均,使得识别更难。产品需要考虑到识别结果的多种反馈,可以给出参考性结果、相似题目等备选项。

三、产品体验

体验腾讯微信小程序“AI体验中心”中的OCR功能:

1、首页-计算机视觉tab

“AI体验中心”里对OCR进行了7中类型的分类,分别是“身份证OCR”“名片OCR”“行驶证OCR”“驾驶证OCR”“营业执照OCR”“银行卡OCR”“通用OCR”,我们选取“身份证OCR”和“名片OCR”进行测试。

2、点击身份证OCR(Optical Character Recognition,光学字符识别)

1)测试网上下载的假身份证:

测试结果:提示OCR失败。

测试评价:能测试出不是正常的身份证,结果可接受。

2)测试真实的,但是部分地方有曝光的身份证(这里只截取了曝光的部分):

测试结果:

测试评价:光线对OCR的识别还是会产生很大干扰。

应用层上可操作的优化方案:

a.上传身份证前说明图片的要求:例如不能模糊、不能缺角、光线不能过曝或过暗。

b.对最后结果的处理,可以再过滤一个全国省市名称的数据,完成部分文字自动校正。

c.用户可自己手动校正结果。

3、测试名片OCR

添加倒置的名片图片:

测试评价:名片倒置不影响OCR的识别,结果可接受。

4、测试总结

1)OCR的识别对图像的预处理要求(光线、模糊程度)仍然很高

2)文字位置不影响OCR识别效果

3)OCR识别平均在1s内即可返回结果,算法模型能在毫秒内识别出内容。

4)对OCR识别结果的校正仍然值得重视,而不同场景下优化这个问题的方式不同。比如刚刚提到的:身份证上面“地区”的校正可以通过比对全国省市的名称数据库完成。当然更多的过滤层意味着更慢的速度。产品的设计需要平衡这两个方面。

以上所有内容,就是本次对OCR的梳理。文章参考了大量文献,也结合了本人的实战项目经验,希望能通过这样体系化的梳理让大家有所收获。

也欢迎大家和我沟通对OCR的见解和看法,可以关注我的公众号“AI产品的自我修养”,记得留言给我哦~

另:非常感谢@黄钊hanniman 对本文作出的指导!黄钊hanniman:图灵机器人-人才战略官,前腾讯产品经理,5年AI实战经验,8年互联网背景,微信公众号/知乎/在行ID“hanniman”。欢迎关注饭团“AI产品经理大本营”,点击这里可关注:http://fantuan.guokr.net/groups/219/ (如果遇到支付问题,请先关注饭团的官方微信服务号“fantuan-app”)

附:参考文章如下

《OCR技术浅探(1)》 萨姆大叔http://t.cn/RTm3YFG

《OCR技术浅探(2)》 萨姆大叔 http://t.cn/RTm3ukC

《OCR技术浅探(3)》 萨姆大叔http://t.cn/RTm3FWK

《实际生产中OCR系统的设计》http://t.cn/RTm1Zk2

《形态学图像处理(一):膨胀与腐蚀》 浅墨_毛星云 http://t.cn/RTm1bo

相关文章

网友评论

    本文标题:【OCR】AI产品经理CV通识(四)

    本文链接:https://www.haomeiwen.com/subject/umtooxtx.html