Andrew Ng带我漫步机器学习 - 第十一周 OCR

pipeline


pipeline是解决一个机器学习任务的各项步骤及其执行顺序,以photo OCR为例:
Andrew Ng带我漫步机器学习 - 第十一周 OCR
Photo OCR可以分为文本识别,字符分割和字符识别三个过程,依次完成,就如同管道一样,依次向前

OCR识别原理

Andrew Ng带我漫步机器学习 - 第十一周 OCR

  1. 选择一定像素长度和宽度的方框,自顶向下以几个像素单位逐渐扫描整个图片
    Andrew Ng带我漫步机器学习 - 第十一周 OCR
  2. 对识别出来的文本进行判断
    Andrew Ng带我漫步机器学习 - 第十一周 OCR
    图中,y=1表示表示识别为字母,0表示非字母
  3. 组合扫描结果
    Andrew Ng带我漫步机器学习 - 第十一周 OCR
    图中的白色部分就可以被识别为含有字符
  4. 扫描文本区,对识别出来的文本进行分割,确定边界线
    Andrew Ng带我漫步机器学习 - 第十一周 OCR
  5. 识别字符

人工数据


如果我们没有足够的数据供我们进行机器学习怎么办?
自己造10x数据
Andrew Ng带我漫步机器学习 - 第十一周 OCR

  • 我们在获取数据库之前,确保有一个低偏置分类器
  • 人工合成数据
  • 人工打标签
  • 群众外包。。。

Andrew Ng带我漫步机器学习 - 第十一周 OCR

  • 对于文本,更换字体,扭曲字形
  • 对于音频,添加噪音,更改信号源

层级分析


我们解决问题之前必须了解问题,优化模型之前必须清楚哪里需要优化。
层级分析对pipeline中的每一任务的每一步进行逐层的分析
Andrew Ng带我漫步机器学习 - 第十一周 OCR
对OCR pipeline进行分析,不难发现最值得提升的时文本识别,其次时字符识别,而字符分割则不值得花时间和精力,总之,准确率提升越高的越值得学习

Andrew Ng带我漫步机器学习 - 第十一周 OCR
复杂一点的例子


那么这些百分比是如何获得的呢?
答:

  • 提供正确的答案-如文本识别,就人为地提供一组正确地文本,看正确率提升了过少
  • 除去错误的可能性-如去掉图片地背景部分
  • 其它等等