问题简介及解决流程

-
问题如上图,如何从图片中识别出若干文字信息。
-
解决流程:
- 文本检测(将有文字的部分整块截图)

2. 字符分割(将截图分割成单个字符的图)

3. 识别分割出来的图中的字符

以上三个流程可分别安排团队成员(1-5个)进行处理
滑动窗口
行人检测

- 先指定一定的长宽比(如8236或8240等)
- 筛选该长宽比下的正样本(y=1)和负样本(y=0) :

- 在要检测的图片上,按该长宽比下的窗口以一定的步长进行滑动,每滑动一步选取一部分图案进行检测:

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

- 同理,准备正样本和负样本:

- 选取一定长宽比的窗口在图片上滑动检测

如左图,以上白色区域便是检测到文本的区域;可以通过区域扩展(expansion),使文本变成如右下图的整块
字符分割
- 按照截图到的文字区域中单个字符的长宽,选择一定长宽比来选择正样本和负样本:

- 用与上一步的长宽比同等尺寸的窗口在截图到的文字区域中滑动,检测分割线
识别单个字符
-
按正常使用逻辑回归识别即可

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

- 可以给左边的样本加上随机背景变成右边

- 扭曲

- 左边是真实数据,右边是理想数据
-
同理,以上训练集扩展方法也可以应用于声音检测:

如上图,第一个声音是原始声音,第二个是模拟了通信差的情景,第三个是加上了人群声,第四个是加上了机器声
- 注意的是:
- 不要仅仅加上随机/无意义的噪声就作为新样本,这样的样本帮助不大:

- 在扩展训练集之前确定拥有低偏差高方差(通过学习曲线判断)的假设函数(分类器),比如一直增加隐藏层或特征数量直到拥有低偏差分类器
- 思考如果要获得10倍的数据需要花多长时间。(途径包括人工合成、自己收集和标记、自己掏钱从众包中获取(如亚马逊劳务众包平台“Amazon MechanicalTurk”))
- 不要仅仅加上随机/无意义的噪声就作为新样本,这样的样本帮助不大:
上限分析
分析机器学习系统整个流程中,哪个步骤对准确度最有帮助,以免在不重要的步骤中花费过多精力。

可见,上图中,文本检测能够提高17%的准确度,对系统最有帮助。
-
如果得到以上准确度的呢? 依次将每个步骤,用人工的方式去处理(也就是效果达到极致),观察模型准确率的变化,找到变化最大的步骤。
-
其他上限分析的应用例子(人脸识别):


由上图可见,面部检测的步骤是最重要的,应把精力重点放在改进面部检测。
本文介绍了从图片中识别文字信息的流程,包括滑动窗口技术用于行人和文本检测,字符分割,以及单个字符的识别。通过人工合成训练样本解决样本获取问题,并进行了上限分析,揭示文本检测是对系统准确度提升最显著的步骤。
575

被折叠的 条评论
为什么被折叠?



