识别多种字体、多种语言的字符,在实际应用中是很常见的问题。
经过测试,及查看tesseract3.01的源码,tesseract 3.01版本是不支持多语言、多种字体OCR识别的。tesseract3.01版本不支持新训练的数据,加入原有字符集,并不支持多个训练库的联合使用方式。
如何利用tesseract进行多语言或多字体识别哪?
一种方法是自己训练字符集,将所有的字体、语言的训练数据放入一个训练数据文件内。这种方法需要庞大的训练样本数据,工作量大,而且舍弃原有的google的训练库,实在是太可惜了。
tesseract多语言识别的原理及算法在文章Adapting the Tesseract Open Source OCR Engine for Multilingual OCR有专门的介绍。这里记录下自己对这篇文章的理解。
OCR字符识别的热点趋势:
拉丁文-> 中文、日文、韩文 -> 阿拉伯文 -> 印度语
这几种语言字符有各自的特征。
汉字、日文:有一些相同文字,但文字有上千种形状结构。
韩文:自己特有的文字结构,而且数量更多。
阿拉伯文:字母都连起来书写,且字母处在不同的位置,其形状也不同。
印度文:将字符连起来形成上千种形状,来表示不同的音节。其包含了阿拉伯文和韩文面临的问题。
汉字、韩文和印度文都有部首和词根的结构。相比韩文,汉字的词根在不同的字里,其形状也是不固定的,且常和其他部首连写。而印度文更复杂些。
拉丁文字符识别在另外一篇文章中有介绍,这里写些思路与未提到的问题。
1. 在连通区域分析后,找出b