OCR
- pipeline
- OCR识别原理
- 人工数据
- 层级分析
pipeline
pipeline是解决一个机器学习任务的各项步骤及其执行顺序,以photo OCR为例:
Photo OCR可以分为文本识别,字符分割和字符识别三个过程,依次完成,就如同管道一样,依次向前
OCR识别原理
- 选择一定像素长度和宽度的方框,自顶向下,自左向右以几个像素单位逐渐扫描整个图片
- 对扫描得到的图片进行判断,是否为文本
图中,y=1表示扫描得到的某张图片识别为字母,0表示非字母 - 组合扫描结果,将y=1的图片部分高亮显示
图中的白色部分连接起来,就可以被识别为文本区 - 扫描文本区,对识别出来的文本进行再次分割判断,确定边界线
- 使用已经训练好了的算法识别字符
人工数据
如果我们没有足够的数据供我们进行机器学习怎么办?
自己造10x数据
- 我们在获取数据库之前,确保有一个低偏置分类器
- 人工合成数据
- 人工打标签
- 群众外包。。。
- 对于文本,更换字体,扭曲字形
- 对于音频,添加噪音,更改信号源
层级分析
我们解决问题之前必须了解问题,优化模型之前必须清楚哪里需要优化。
层级分析对pipeline中的每一任务的每一步进行逐层的分析
对OCR pipeline进行分析,不难发现最值得提升的是文本识别,其次是字符识别,而字符分割则不值得花时间和精力,总之,准确率提升越高的越值得学习,注意进行层级分析的顺序一定是和pipeline一样向前递推
复杂一点的例子
那么这些百分比是如何获得的呢?
答:
- 提供正确的答案-如文本识别,就人为地提供一组正确文本,看正确率提升了多少
- 除去错误的可能性-如去掉图片的背景部分
- 其它等等