tesseract-ocr 整体处理流程
·
一、通过边缘检测的方式识别出多个block
二、通过多个block的信息,找出baseline,中文中的baseline 就是中文文本的最下沿。
三、通过baseline 以及block(可以理解为每个字是一个block)的位置信息找到文本的高度的中值,此中值的2/3 就是xheight。ascender(字母的上半出头部分)和decender(字母的下半出头部分)为xheight的1/2 ,只不过decender的值为负的。xheight、ascender和decender都是英文字母中的概念,中文处理中汉字的实际高度的2/3就是xheight。英文处理中也是把字符高度中值的2/3作为xheight。需要注意的是如果一行中文字符中有大量的省略号 或者逗号会拉低中值,导致后面计算全部出错,因此需要去除掉这些符号,比如目录中的一堆点
四、tesseract使用sltm作为识别内核,其输入的数据为原始的图像数据,并不需字符分割信息。但是作为输入数据之前的处理中会再次确保文本信息不被切割掉,从而向四周对外扩展4像素。扩展后的图片会再次被处理,按比例缩放为高度最高为48像素的图像,作为lstm的标准输入数据。
五、lstm输出的结果利用集束(波束)搜索找到最有可能的识别结果。
更多推荐
所有评论(0)