OCR(optical character recognizer)
一个简单的ocr系统可大致分为三步:
1.Text detection 2.Character segmentation 3.Character classification
如:
复杂一些的ocr系统带有第四步 即spelling correct system
如当第三步将cleaning 识别为c1eaning时,会更正为cleaning
其中的Character recognition便可以使用我们经典的MNIST字符串检测(可将数据集由手写改为我们所需要的数据集,从10分类变为多分类任务)(DL或SVM,事实证明,使用LeNet效果显著)
接下来分别介绍detection和segmentation步骤
Text Detection:
难点:每一段text的长度都是不固定的,很难用一个固定的模板或窗口去匹配。
(相比来说,行人检测的大部分框都有类似的长宽比,所以我们只要找一个固定长宽比的矩形框便可)
类似行人检测,文本检测也是使用sliding window在图片滑动,如左图,就是分类器最后提取的含有文本的地方(其中白色表示含有文字很高的概率,灰色表示概率不高)。接下来做一些处理,可以舍弃灰色部分,同时舍弃宽高比例不合适的白色部分(因为文本的宽一般比高要大很多),最后在留下的高亮部分画矩形便是提取到的结果。
Character Segmentation:
还是可以继续使用监督学习(正负样本)
可以以此判断图中是否含有要分割的地方。
最后得到如下结果:
其中副样本包含的两种情况分割全是错误的。
此时的sliding windows是一个一维的窗口