视频帧中字幕信息提取的区域检测算法研究

2011-03-15 01:22
电视技术 2011年11期
关键词:字幕亮度灰度

吴 进

(西安邮电学院 电子信息工程系,陕西 西安 710121)

0 引言

目前,图像和视频数据已经广泛应用于教育、娱乐以及多媒体领域。随着视频技术的发展,越来越多的影视节目被制作成VCD和DVD,从影视字幕中获取相应的文本,可为影视节目的内容检索提供一种重要的手段。在对视频流进行标注和索引的研究领域中,基于内容的视频检索技术是通过提取颜色、纹理、形状和运动等视觉特征来表征视频所蕴含的语义,达到检索目的。目前已有视频场景分割、字幕提取等多个方向,相对于其他方向而言,字幕提取是这一领域中研究较多,发展也比较成熟的一个方向。视频流所包含的字幕表达了丰富语义,可以在原始视频流的分析理解过程中发挥重要的作用。无组织的视频检索所采用的特征基本上是低级视觉的特征,而且往往要人工加入关键词和描述信息,以便于组织信息,这就增加了工作量,同时也引入了人为的主观因素,不利于检索。因此,通过对字幕信息的提取、识别和分析,再结合已有的检索技术,就有可能在一定程度上达到概念级的基于内容的检索。本文所研究的算法是对图像中的字符进行初步提取,为后续的工作如确认、识别等作准备工作。最终为达到实现视频内容检索这一目的服务。

1 其他常用算法

1.1 基于分裂/合并算法

德国Mannheim大学提出了基于分裂/合并算法实验,对视频帧中的文字进行分割[1]。该实验首先将原始视频帧灰度化,然后采用分裂/合并算法对灰度图像进行分割处理。该算法主要是针对西欧语言,若用该方法对复杂背景之上的汉字进行分割实验,分割效果并不理想。

1.2 基于纹理的文字分割算法

美国Massachusetts大学采用纹理分割算法对复杂背景之上的文字分割进行了研究。该方法的主要原理是利用文字与背景的不同纹理表现将文字区域从背景中分离出来。然而,纹理分割的复杂度和计算量都比较大,文字区域划定部分也设计得相当复杂,因此在检测和提取的效率上可能会存在问题[2]。

2 区域检测算法实现

针对上述两种算法存在的问题,提出了区域检测算法对其进行改进,从而避免了汉字笔画丢失的现象,而且算法的复杂度和计算量都不大,因而大大提高了程序的运行速度。该算法的主要依据是基于阈值的二值化算法,然后去除大块非文字背景区域和小块噪声,最后确定出文字块。在对图像进行二值化时,采用灰度最大值自适应,从而适应了不同图像的特性,其流程如图1所示。

2.1 色空间转换

在一般情况下,对文字图像预处理首先是二值化,由于二值化过程会丢失许多视频文字与文字模板的相似性信息,这种判断对低质量的视频图像来说,其阈值不稳定,而对环境和场景的变化却极为敏感。因此,首先将24位彩色视频图像进行色空间的转换,其目的是保留足够的信息,以便进一步预处理和识别。

RGB色彩系统[3]是最常用的颜色系统,另外一些常见的色彩系统还有CMY色彩系统、YIQ色彩系统、YUV色彩系统、YCbCr色彩系统等。YIQ色彩系统属于NTSC系统,这里的Y不是指黄色,而是指色彩的明视度(Luminance),即亮度(Brightness)。其实Y就是图像的亮度值,而I和Q则是指色调(Chrominance),即描述图像色彩及饱和度的属性。RGB与YIQ之间的对应关系如下

本文中对图像进行转换采用的是式(1)表示的方法,采用这种方法提取亮度信息主要是因为RGB色空间中色度和亮度是不可分的,而本文检测字幕的几个算法都是基于亮度信息进行的,所以首先灰度化或进行色空间转换仅提取亮度信息就可以将亮度和色度分离,从而可以仅对亮度分量进行相应的算法研究。笔者所选用的YIQ将色度和亮度进行了分离,Y单指亮度,以后的处理都是针对它进行的。

将图像由RGB空间转换到YIQ空间,利用式(1),有

转换时先定义3个变量(R,G,B),分别代表原图像的RGB值,程序段为:

上述程序段中:RGBQUAD是位图格式中的调色板结构体;rgbRed,rgbGreen,rgbBlue是图像的红色、绿色和蓝色分量;prgb是指向原图像数据的指针。

然后再定义一个指针变量pgray,按照式(3)处理后,结果送入pgray。在计算灰度值时,要取255和式(3)计算所得值的较小值,因为选取参数时进行了近似,可能会有大于最大值255的数据出现。这些都是编程时需注意的细节问题[4]。

2.2 图像二值化

由MV图像的特性可知,背景与字幕一般会有较大的亮度差别,对整幅图进行二值化处理可以滤掉部分背景。

在基于阈值的灰度图像分割算法中,确定阈值T是关键。最常用的模型为:假设图像由具有单峰灰度分布的目标和背景组成,且目标和背景像素在灰度值上有较大差异。对这类图像,其灰度直方图基本可看作是由分别对应目标和背景的两个单峰直方图混合而成,可把双峰间的谷点作为阈值T,对图像作以下二值化处理:

1)对图像的灰度进行统计,找出灰度的最大值GrayMax。

2)将图像二值化。此时已经得到了灰度的最大值,将阈值T定为GrayMax与一个固定数值thre的差值。将thre作为参数值由外部传入函数。thre是针对进行区域检测的图像的特点经过多次试验确定的[5]。

2.3 去除大块非文字区域

大部分图像的背景中可能都包含一些亮度与字幕相差不多的区域,二值化不能将它完全去除,因此需检测大块非文字区域并将其去掉。因为图像中的字幕一般都能确定大小,对大量MTV中的字幕进行分析后得到:每个字的宽度大约是图像整个宽度的1/16。在二值化时假定将字幕置为白色,去掉的背景置为黑色。对此作如下处理:

1)定义一个标志量Flag;

2)开始按行遍历图像的每个像素,如果为白色,标志量加1;

3)一旦颜色变为黑色,立即检测前面白色区域的宽度,如果大于确定的阈值,则认为它不是字符,将其置为黑色,即滤掉;

4)指针再指回原来的位置,继续检测后面的像素;

5)小于阈值则不做任何改动,指针继续后移检测。

按以上步骤处理结束后,图像每行中水平方向上大于一个字符的区域都被去掉,剩余噪声和字符,进行以下的去噪声工作。

2.4 去噪声

上一个算法除去了大块非文字区域,但背景中还有一些小块噪声影响着处理结果。因此有必要再实现一个去噪声算法。由于汉字笔划的不连通性,一些点、划也是非常小块的区域,如“小”、“汉”等。如果按照上面的思想,肯定会丢失一些笔划。字幕一般都集中在行里,所以字幕所处的区域每行都会有一定数量的白色像素。而噪声的分布是随机的,特别是在已经进行了区域划定之后,所剩余噪声的范围更小。本文采用另一种思想:对每一行中白色像素的总数进行统计,如果小于某个确定阈值,就认为这些是噪声影响形成的,将其去除;反之保留[6]。步骤如下:

1)定义一个标志量Flag1;

2)开始按行遍历图像的每个像素,如果为白色,标志量加1;

3)检测完一行之后,检测标志量的值,如果大于给定阈值,则认为是字符存在的行,不做改动,继续检测;

4)如果小于阈值,则认为这一行中的白色像素是噪声,指针递减,将其全部置为黑色;

5)指针复位,继续检测。

上述处理可以将大部分随机小噪声滤除。

最后显示处理结果,通过调用函数SetDIBitsToDevice即可实现。

3 实验结果分析

为了更好地验证区域检测的结果,将中间处理的过程一一显示出来,见图2~图5。

由图3可以看出,二值化后还留有部分非文字的区域,有较大块的,也有小块的。进行区域划定后(见图4),水平方向上较长的部分被划去,但是小于一个字符跨度的被保留下来了。此时这些保留下来的小块连同原来的小块都可被视为噪声,进行去噪声后只有文字被保留下来(见图5)。统计表明,大部分MTV图像字幕亮度比大部分背景要高,用这种方法取得了良好的效果。

图4 区域划定后的图像

图5 最终处理结果

4 小结

区域检测对字幕行外的噪声滤除得非常彻底,字幕保留得也比较完整。但是对字幕造成了轻微划伤,和字幕同行的噪声也无法去除。这是进行区域检测不可避免的问题。进行字符检测的最终目的是将其识别出来,从这个角度上讲,区域检测法是有效的。

[1]何斌,马天予,王运坚,等.Visual C++数字图像处理[M].北京:人民邮电出版社,2009.

[2]张伟男,唐伦,陈前斌.基于3G传输的视频监控系统的后台设计[J].电视技术,2008,32(11):85-88.

[3]万罡,周洞汝,崔永毅,等.数字视频中文字分割算法的研究[J].计算机工程与应用,2010(2):103-105.

[4]周长发.精通Visual C++图像编程[M].北京:电子工业出版社,2008.

[5]况超,杨波,石广建.多媒体图像后处理系统设计[J].电视技术,2009,33(2):72-75.

[6]李芳,吴斌,张红英.基于快速8-连通域标记的视频字幕提取新算法[J].电视技术,2009,33(2):69-71.

猜你喜欢
字幕亮度灰度
采用改进导重法的拓扑结构灰度单元过滤技术
亮度调色多面手
亮度一样吗?
基于最大加权投影求解的彩色图像灰度化对比度保留算法
一种基于单片机16×32点阵动态字幕的设计
基于灰度线性建模的亚像素图像抖动量计算
基于斩波调制的LED亮度控制
人生的亮度
整合适应选择度下的动画电影字幕翻译——以《冰河世纪》的字幕汉译为例
论纪录片的字幕翻译策略