美文网首页机器学习与计算机视觉@产品
【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