mser场景文字检测及筛选

时间:2022-04-14 15:18:37

   发现很多人都用mser,swt等进行场景文字的检测,最近也去实现了一下,虽然swt较新的算法,但实现过程中传统的mser算法反而更稳定,速度也会更快,可能是我还没有完全领会swt的精髓。ps:暂时只做水平及水平倾斜的文字  demo    http://download.csdn.net/detail/u013293750/9699124  场景文字检测,tesseractocr识别

        

         先看下处理完的大概结果

mser场景文字检测及筛选mser场景文字检测及筛选mser场景文字检测及筛选mser场景文字检测及筛选mser场景文字检测及筛选mser场景文字检测及筛选


实现过程大概分为下面几步:

<1>mser文字获选区域块的提取,包括反白字体

<2>mser文字获选区域进行连通域分析,求取最小包含矩形框,对矩形框进行合并。主要还是传统的大小距离,角度等的关系

<3>对合并的矩形框进行再次合并,得到一个个文字块

<4>将文字块处理成正的矩形块,进行块的反白判断及二值化

<5>对二值化后的图像进行投影及文字宽高大小分析,判断是否为文字块。得到最终结果

 

 

首先进行mser文字块的检测

mser场景文字检测及筛选


求取连通域的最小包围矩形框,过滤掉较明显的非文字

mser场景文字检测及筛选


进行矩形框的合并 两个for循环判断矩形框两两关系,当连通过宽度为高度的几倍时,还加入角度的判断(因为当宽度够长时,这边默认求得的最小矩形框文字方向不会错误的太离谱).


mser场景文字检测及筛选

进行合并矩形框的再次合并,得到文字块,对文字块进行矫正二值。投影,字大小,比率等分析,判断是否为文字块,得到最终结果。


mser场景文字检测及筛选          mser场景文字检测及筛选


mser场景文字检测及筛选


其中还是有很多问题需要解决,比如非文字块的排除(这里主要通过二值化及投影判断是否为文字块,肯定存在很多问题),字符块角度求取错误..

mser场景文字检测及筛选mser场景文字检测及筛选



场景文字检测是个比较深的研究方向,看到微软研究院好像最新的效果很好,可惜在网上没有找到类似的demo文章。有时间再去好好研究