最近使用Tesseract OCR 识别了美元序列号。原本使用自己开发的OCR库识别(下称B库). B库在字符集很小的时候,比如A-Z, 0-9, 识别室外字符性能远优越于Tesseract OCR. 因为室外字符光照,阴影,噪音非常严重,二值化后往往字符有大量较大空洞和光照噪音,使用形态学运算补洞显然行不通,所以Tesseract OCR会有大量错识别和误识别。B库在识别 室外运动员号码项目中,以人为单位的识别正确率>90%, 以字符为单位的识别>97%. 但是美元序列号识别项目中,序列号的分辨率不高,但是字符非常规整,针对字符特征做旋转纠正和特殊较复杂的二值化,可以得到非常好的连通字符。使用Tesseract OCR识别率达到了100%!
原始样图:
旋转和二值化后的图片:可见二值化的效果非常的好。美元的序列号附近区域没有定位特征,而且不同币值的序列号位置,大小,背景等等都不是很确定的,所以不能使用相对百分里来定位序列号。而需要使用比较特殊,快速的字符定位。然后在字符区做针对字符的特殊二值化,才能很好的除去背景。
比较旧的币:
旋转和二值化的结果: