进入AI领域做产品 —— 我的自学之路(CV-OCR)

计算机视觉 —— 光学符号检测

        光学符号检测、多目标跟踪也是计算机视觉中的热门方向,基于jasmine分享的内容,此处在人脸识别之后我也继续进行归纳,多获得一个方向的认知也是很不错的。

概念

        将图像上的字符进行分析识别,将其准化为文本格式的字符序列。

实现

图像采集:

  • 摄像头选取需要考虑到两个指标:
    • 像素分辨率:
      • 可以通过所检测物体的最小特征决定像素分辨率;
      • 像素分辨率=(检测物体最大长度/物体最小特征值)*2;
      • 假设字符最大长度为300mm,最小特征值为1mm,则最小所需分辨率为600。
    • 摄像头焦距(F):
      • CCD传感器的尺寸(Ss);
      • 工作距离(摄像机镜头到被测物体的距离Wd);
      • 摄像机的视场范围(Os);
      • F由以上3个参数决定,若系统要求严格,还需采用预防抖动的数码相机采集图像。
  • 图像常见格式有BMP、GIF、JPG等,其中BMP格式最不容易出问题。

图像预处理:

  • 二值化;
  • 图像增强;
  • 噪声处理;
  • 滤波。

特征提取:

  • 灰度聚类:
    • 聚类:
      • 聚类是根据图像特点自适应地进行多值化的过程。
    • 分割:
      • “极大值极小值分割”聚类方式:有多少个极大值点,就聚为多少类,并且以极小值作为类别之间的边界。通过聚类可将图片分成不同图层。
  • 分层识别:
    • 每一层图像由若干联通区域组成,在此时需要文字具有一定抗腐蚀能力:
      • 腐蚀:图像中高亮区域被腐蚀,高亮区域减少;
      • 联通区域边界线越短,抗腐蚀能力越强;
      • 联通区域边界线越长,抗腐蚀能力越差;
      • 联通区域的抗腐蚀能力=该区域被腐蚀后的总面积/该区域被腐蚀前的总面积;
      • 文字区域的抗腐蚀能力大概在[0.1,0.9]之间。
    • 去噪;
    • 池化:
      • 对特征层进行整合。
    • 完善:
      • 高低密度区排除;
      • 孤立区排除。

文字定位:

  • 邻近搜索:
    • 目的是圈出单行文字;
    • 由于部分汉字是由很简单的其他汉字组成,比如“胆”就是由“月”和“旦”组成,我们需要经过邻近搜索算法,整合可能成字的区域。
  • 文本切割:
    • 目的是将单行文本切割为单字;
    • 利用切割方法(比如均匀切割),将单行文本切割成一个一个的单字。

光学识别:

  • 模型选择:
    • 选择卷积神经网络模型。
  • 训练数据:
    • 除可直接获取到的数据外,还可利用程序自动生成一批训练数据,需要考虑到以下因素。
  • 因素:
    • 字库的字体数目;
    • 同字不同字体;
    • 同字不同颜色;
    • 同字不同大小;
    • 同字不同清晰程度;
    • 中英文数字等等语言种类;
    • 噪音影响。
  • 输出结果:
    • 有形近字的情况,优先考虑高频字:例如”天“和”夭“,“天”出现的频率更高,优先考虑“天”;
    • 通过模型精确率评估模型效果;
    • 对数据进行随机增加噪音,测试模型的效果;
    • 后期处理校正:利用人工或者上下文关系,对识别结果进行校正;
    • 若需按照原文排版识别,还需用版面恢复算法将输出结果输出到word或者pdf。
应用场景

证件识别:

  • OCR提取身份证信息:
    • 本技术可用于安防、金融、电信等等领域;
    • 身份证信息提取包括了身份证照片提取及文字提取,在整个过程中可以先识别出人脸的位置再直接定位各数据位置。不用针对整个识别区域定位;
    • 身份证识别可在手机端的app里集成SDK,通过手机照片即可识别。也可通过云端识别,返回具体的识别结果;
    • 身份证图像字符分布规律,可采用水平投影法进行行分割,垂直投影进行字符分割;
    • 识别效果可通过误检率评估,影响效果的因素有身份证清晰度、倾斜度、光照、对比度等。
  • 驾照;
  • 行驶证;
  • 营业执照;
  • 车牌;
  • 票据。

广告过滤:

  • 描述:
    • OCR除了常规识别身份证、名片等等用途,还可以用来过滤广告;
    • 现在很多直播平台、社交网站等都被广告充斥,而人工筛选这类广告需要耗费大量的精力。
  • 注意事项:
    • 广告过滤的难点除了文字提取识别外,还有背景的识别。广告背景通常会是商家的产品,这提高了OCR识别的难度;
    • 广告文字很少有常规的字体,不同角度、颜色、字体的文字非常常见,繁体、火星文也常被用于广告文字。这就对模型的泛化要求更高;
    • 在本场景中,除了准确率和召回率外,漏检率是非常重要的指标。

教育场景:

  • 描述:
    • 在试题识别的场景下应用十分广泛,现在的作业帮、学霸君等app就可以通过拍照上传试题,通过人工解答或搜题给出结果。
  • 注意事项:
    • 本场景下对文本定位的要求很高。而很多照片里都会含有不相干的信息,因此产品设计需考虑到文本框选的自由性;
    • 中英文、数字、特殊字符种类繁多,且版面分布不均,使得识别更难。产品需要考虑到识别结果的多种反馈,可以给出参考性结果、相似题目等备选项。

计算机视觉 —— 多目标跟踪

概念

        找到图像序列中运动的物体,并将不同帧的运动物体一一对应,最后给出不同物体的运动轨迹。

术语解释:

  • 检测:
    • 定位目标在图像中的位置。检测方法很多,例如帧间差分法、背景减除法、光流法等等;另外,检测常与识别结合。
  • 跟踪:
    • 所谓跟踪,就是在视频里面第一帧时锁定感兴趣的物体,让计算机跟着走,不管怎么旋转晃动,甚至躲在树丛后面也要跟踪;
    • 在连续图像序列中完成对目标的检测,并把物理意义下同一目标相关联。
  • 轨迹:
    • 一条轨迹对于这一目标在一段时间内的位置序列;是多目标跟踪系统的输出量。
  • 数据关联:
    • 用于解决目标间的匹配问题;是多目标跟踪的核心问题。
  • 跟踪置信度:
    • 跟踪算法反应每一次跟踪的可靠程度。
实现

图像采集;
图像预处理:

  • 直方图均衡;
  • 滤波。

基于深度学习的多目标检测识别:

  • 目标检测的实质是多目标的定位,即要在图片中定位多个目标物体。
  • 多目标跟踪:
    • 遮挡、目标消失后再出现,会有丢失目标的现象;
    • 相似目标容易被当作同一目标;
    • 由于以上原因,在实际场景里多目标跟踪可能会发生人员重复检测、漏检、同一目标多条轨迹等情况。
  • 相关指标:
    • 查准率;
    • 查全率;
    • 识别精度:目标检测中衡量检测出精度的指标是平均正确率均值mAP(mean average precision);
    • 检测响应:检测过程的输出量;
    • 识别效率:识别的速度。相对应选择效率极大化的迭代算法;
    • 交并比(IoU):可以理解为系统预测出来的框与原来图中标记框的重合程度,最理想的情况是完全重叠,即比值为1。
应用场景
  • 目标识别常用来确定某画面或视频中包含什么物体、各个物体在什么位置、各个物体的轨迹。因此常用于监控,人机交互和虚拟现实的场景。
  • 人员检测:
    • 计算画面中行人的数目,并确定其位置;
    • 可用于计算区域人员密度过高告警;
    • 可用于范围监测告警(越界监测):例如闯红灯、等事件;
    • 异常行为检测:目标突然发生剧烈变化,如打架斗殴等行为。
  • 车辆识别:
    • 计算画面中车辆的数目,并确定其位置;
    • 和车型识别、车颜色识别、车辆逆流检测等结合,实现对车辆特点的全识别;
    • 交通疏散:针对有可能发生拥堵的区域提前进行部署。
    • 追踪黑名单车辆:车辆检测可识别车辆类型、车辆颜色等等,这些信息均可用来定位目标。
    • 防车辆套牌方案:车辆识别和车牌识别结合,防止车辆套牌案件发生。
  • 应用于智能驾驶方案:
    • 目标识别和场景分割、SLAM结合,可识别出道路路况,提供智能驾驶所需要的路边物体信息。

你可能感兴趣的:(AI)