问题简介及解决流程

机器学习11:应用之图片字符识别

  1. 问题如上图,如何从图片中识别出若干文字信息。

  2. 解决流程:

    1. 文本检测(将有文字的部分整块截图)

    机器学习11:应用之图片字符识别
    2. 字符分割(将截图分割成单个字符的图)
    机器学习11:应用之图片字符识别
    3. 识别分割出来的图中的字符
    机器学习11:应用之图片字符识别

以上三个流程可分别安排团队成员(1-5个)进行处理

滑动窗口

行人检测

机器学习11:应用之图片字符识别

  1. 先指定一定的长宽比(如8236或8240等)
  2. 筛选该长宽比下的正样本(y=1)和负样本(y=0) :
    机器学习11:应用之图片字符识别
  3. 在要检测的图片上,按该长宽比下的窗口以一定的步长进行滑动,每滑动一步选取一部分图案进行检测:
    机器学习11:应用之图片字符识别

PS:如果横着滑,滑完第一行后,要滑到下一行时,需要注意的是,也是按步长滑动下降到1+b行(如果b为步长)

文本检测

机器学习11:应用之图片字符识别

  1. 同理,准备正样本和负样本:
    机器学习11:应用之图片字符识别
  2. 选取一定长宽比的窗口在图片上滑动检测
    机器学习11:应用之图片字符识别

如左图,以上白色区域便是检测到文本的区域;可以通过区域扩展(expansion),使文本变成如右下图的整块

字符分割

  1. 按照截图到的文字区域中单个字符的长宽,选择一定长宽比来选择正样本和负样本:
    机器学习11:应用之图片字符识别
  2. 用与上一步的长宽比同等尺寸的窗口在截图到的文字区域中滑动,检测分割线

识别单个字符

  • 按正常使用逻辑回归识别即可
    机器学习11:应用之图片字符识别

  • 但是存在如何获取大量训练样本的问题,可以人工合成关于字符的训练集(不同字体、艺术字、旋转、缩放、扭曲、模糊化、随机背景等)

    1. 左边是真实数据,右边是理想数据
      机器学习11:应用之图片字符识别
    2. 可以给左边的样本加上随机背景变成右边
      机器学习11:应用之图片字符识别
    3. 扭曲
      机器学习11:应用之图片字符识别
  • 同理,以上训练集扩展方法也可以应用于声音检测:

机器学习11:应用之图片字符识别

如上图,第一个声音是原始声音,第二个是模拟了通信差的情景,第三个是加上了人群声,第四个是加上了机器声

  • 注意的是:
    1. 不要仅仅加上随机/无意义的噪声就作为新样本,这样的样本帮助不大:
      机器学习11:应用之图片字符识别
    2. 在扩展训练集之前确定拥有低偏差高方差(通过学习曲线判断)的假设函数(分类器),比如一直增加隐藏层或特征数量直到拥有低偏差分类器
    3. 思考如果要获得10倍的数据需要花多长时间。(途径包括人工合成、自己收集和标记、自己掏钱从众包中获取(如亚马逊劳务众包平台“Amazon MechanicalTurk”))

上限分析

分析机器学习系统整个流程中,哪个步骤对准确度最有帮助,以免在不重要的步骤中花费过多精力。

机器学习11:应用之图片字符识别

可见,上图中,文本检测能够提高17%的准确度,对系统最有帮助。

  • 如果得到以上准确度的呢? 依次将每个步骤,用人工的方式去处理(也就是效果达到极致),观察模型准确率的变化,找到变化最大的步骤。

  • 其他上限分析的应用例子(人脸识别):
    机器学习11:应用之图片字符识别

机器学习11:应用之图片字符识别

由上图可见,面部检测的步骤是最重要的,应把精力重点放在改进面部检测。

相关文章:

  • 2021-04-11
  • 2021-08-10
  • 2022-02-10
  • 2021-12-04
  • 2022-01-11
  • 2021-06-03
猜你喜欢
  • 2022-12-23
  • 2021-12-19
  • 2021-04-19
  • 2022-02-09
  • 2023-03-09
  • 2022-01-17
  • 2021-10-20
相关资源
相似解决方案