其中,k为子图像的像素行(列)号,N表示一行(列)中的像素总数,Nk则是经过处理的边缘图中的高亮像素数,即是代表文本所在位置的那些白色像素数。图3给出了一幅处理后的边缘图像所生成的LRH图。
由图3可见,文本区域在LRH图中形成具有一定宽度的高函数值连续区域。利用阈值法来检测行/列边界,由于阈值T取值过小会造成不能分割出单独的行/列,过大则会遗漏行/列。为了能自动适应不同的图像,将阈值T定义为T=c*Mean(LRH)。c为一个微调系数,可根据不同的视频源的统计特性进行调整。针对文中选取的视频片段,在进行了大量实验对比后,选取了实验效果较好的经验值,对于水平的LRH图,选择c为1.O;对于竖直的LRH图,选择c为0.5。
最后,对标出的矩形框,根据文本的尺寸比例,制定简单的约束条件来去除非文本区。
3 文本二值化提取
为适应OCR软件识别,需将文本子图转换成二值化图像。在进行二值化前,采用双三次插值法将所有水平文本区域高度归一化成60像素,而宽度则根据原区域的比例进行相应的放大或缩小(对于竖直排列的文字块则放缩到60像素宽,高度随比例放缩)。为了增强文本子图中字符与背景的对比度,对插值后的图像进行灰度拉伸,自动搜索直方图上非0最小值a和最大值b,把[a,b]拉伸到[0,255]的整个区间。采用文献中的方法对文字极性进行判断,并将其统一为“白底黑字”的形式。
Otsu算法是一种最大类间方差法,能够自动选取阈值,来分割图像成两部分。对于以上处理得到的图像,二值化过程采用文献中的基于滑动窗口的局部自适应Otsu方法和向内填充的区域生长方法,并对区域生长方法的文本标记做了改进。根据文本字符的笔划特点,对文本点定义水平、竖直、右对角和左对角4个方向连通长度,对文本进行标记保护。将文本像素标记点定义为
MIN_W,MAX_W和MAX_L定义了连通最长数目的范围。经过此步骤,再对背景进行填充,并将连通区域面积过小的噪声点去除。最后送入汉王OCR5.0增强版软件进行识别。图4给出了二值化过程。
4 实验及分析
为了验证文中检测定位算法的性能,人工挑选了150帧背景非常复杂的视频图像进行了测试。其中有中文也有英文,有静止也有线性滚动,有单行也有多行文本,字体多样,尺寸有大有小。在实验之前已经手工统计了这150帧图像中所包含的文本块总数,实验结果,如表l所示。
其中,误检的原因主要是复杂背景下存在与文本相似性很高的区域,而漏检的原因是由于该文本区域与周围背景对比度太低,几乎完全溶入到背景中或单独出现的字符在一系列处理中不满足文本块的尺寸限定而被当作背景噪声滤除掉。采用软件汉王OCR5.0增强版对二值化后的文本字符的最终识别率为88.7%。
5 结束语
提出采用小波多尺度局部模极大值边缘检测方法来对文本图像进行边缘检测。对于检测到的文本边缘图,先用局部阈值处理来滤除背景噪声,采用形态学处理生成候选文本区域。使用由粗到精的递归投影和基于局部区域直方图的定位算法,利用两层金字塔模型以检测出大小不一的文本来降低漏检率,并用相应的准则来消除虚假的文本区域。文本提取方面,采用双三次插值来统一各文本的高度/宽度,用灰度拉伸的方法来增强文本图像的分辨率。然后用改进的Otsu方法和种子填充方法进行二值化,去除连通面积过小的噪声点,最后送入OCR软件进行识别。实验结果证明本文算法对于提取视频图像文本的有效性。