水平Sobel算法在新闻视频字幕检测中的应用

2022-08-15 04:30亓振军吕华玮
中国传媒科技 2022年8期
关键词:字幕算子边缘

亓振军 吕华玮

(山东省广播电视监测中心 ,山东 济南 250000)

近年来,新闻媒体传播形态发展趋于多样化,新闻媒体融合发展十分迅速,广播电视为代表的传统主流新闻媒体在不断改革创新,在进一步扩大新闻公信力和影响力的同时,面临着网络媒体和自媒体的冲击。广播电视是国家方针政策宣传的重要途径,是党和政府的宣传喉舌,宣传地位十分重要,新闻媒体始终要坚守党性原则,坚守广播电视新闻是党新闻舆论工作的“主阵地”。如何更好更准确地监测新闻播报,正确地引导舆论,使广播电视新闻媒体发挥出自身特长,将国家的方针政策传递到千家万户,确保广播电视宣传特别是新闻宣传走实并走入人心,是广播电视监管监测的工作重点。广播电视画面中的字幕文本往往与电视内容密切相关[1],字幕检测有助于在海量的电视画面中快速提取有效信息,对节目内容的监测管理具有重要意义。

根据使用特征的不同,字幕检测主要分为基于纹理、基于边缘和基于连通域三类算法。[2]然而以上特征并非只属于文本,而广播电视字幕存在文本的结构、像素、几何变形、背景复杂度、图像分辨率等多种问题带来的干扰,导致字幕检测较为困难。为实现高效精准的文本定位检测,本文提出一种基于水平直线检测、文字检测以及字幕聚类的新闻条目标题字幕检测算法,该算法具有非监督、准确率高的特点。

1.新闻视频中字幕的特点

视频中字幕所包含的特征十分丰富,且特征十分复杂细致,对于新闻视频中的标注性字幕,主要从以下几个方面考虑。

1.1 字幕的尺寸

在新闻视频中,每一帧的字幕通常具有各种不同的尺寸大小,字符所占像素一般大于16个。

1.2 边缘特征

通常情况下,字幕与背景画面之间存在清晰的边缘,笔画的边缘处存在明显的灰度变化,且字幕颜色较为单调,和色彩丰富的视频背景画面形成强烈的对比。

1.3 位置特征

字幕主要作用为视频的辅助特征,多出现在视频下方1/4位置。

1.4 字幕持续时间

为使观众看清字幕内容,字幕一般持续在一段字幕流中,同一文本一般会在连续多帧中出现,持续时间常常为1秒钟以上,对于帧率为30帧每秒的视频来说,同一个字幕将至少连续出现30帧。

1.5 新闻标题字幕特征

在新闻视频中,通过观察,不难发现每一条新闻条目中都有且只有一条标题字幕。因此将检测到的每条标题字幕作为分割点,并对新闻条目的标题字幕进行检测与识别,就能有效地将视频中的所有新闻进行拆条分割,从而为新闻监测提供便利。

2.视频字幕检测难点

在上一节中,根据对电视字幕特性的分析,随着视频图像的不断变化,字幕的位置、字体的大小和种类变化也较为灵活,虽然人工文本相对于自然场景中的文本有较小的形变和干扰,更为稳定,但在检测和识别视频文本方面仍然有很多困难:首先字幕的背景是不断变化的图像画面。在复杂的背景中可能有一些区域的纹理、颜色和形状具有类似文本的特征,这会干扰文本字段的检测和提取; 其次视频是由大量的帧图像构成,通常下新闻视频的帧率为25帧/秒,在如此高的帧率下进行逐帧分析和处理将带来庞大的计算量和较高的设备要求,并且字幕随机出现在某些帧率中,检测和提取较为困难。在经过码流压缩等处理后,引入了大量的噪声,尤其在分辨率较低的视频中,文字和背景的差异降低,这些因素都会使得新闻视频字幕的检测和提取变得困难。

3.新闻字幕水平直线文字检测

由于字幕的持续性,无须对视频的每一帧进行检测,首先,对输入的新闻视频等时间间隔地抽取关键帧以节省计算成本,这个时间间隔不能太短也不能太长,如果太短会导致需要后续处理的图像帧增多,增加处理时间;如果太长则有可能遗漏某些出现时间短的字幕,影响结果。如图1所示的是水平直线文字检测算法的流程示意。

图1 新闻标题字幕检测流程图

其次,经过抽取关键帧的处理之后,得到了一组图像帧,要在里面找出所以含有新闻条目标题字幕的图像帧来。通过观察,发现新闻条目标题字幕通常都有一条水平条背景,其中可以观察到若干条水平直线。利用这个先验信息可以用来过滤掉大部分不可能含有标题字幕的图像帧。使用水平条作为字幕边缘并使用边缘检测算法分割字幕,由于水平条和视频背景存在明显的灰度值和亮度值的变化,使用特边缘检测算子,对图像中出现字幕概率较大的区域进行检测[3],就能够搜寻出目标图像的边界线。

4. 传统边缘检测算子

目前主流的边缘检测方式主要分为三类:基于一阶微分运算的梯度边缘检测,基于二阶微分运算的边缘检测和Canny算子。其中,基于一阶微分运算的梯度边缘检测算子主要有Roberts算子、Prewitt算子和Sobel算子,其原理是利用检测算子扫描图像,获取每一像素的一阶微分函数,通过计算其极大值和极小值判定边缘点所在的位置;基于二阶微分算子的边缘检测的原理是通过搜索图像中的二阶微分零交叉点进行边缘检测,如应用最为广泛的Laplace算子;Canny算子虽然具有苛刻的标准且检测精度也较为理想,但由于其模板较为复杂,计算量巨大,导致其对硬件系统要求较高。因此选择精度和运算量较为平衡的一阶微分算子作为本文的检测算法,一阶微分算子主要分为以下三类。

4.1 Sobel算子

Sobel算子原理是利用差分算子计算图像亮度函数的梯度近似值,分为两个不同的模板用于分别检测水平边沿和垂直边沿。

常规Sobel算子的定义是,对图像A = {f(i,j)},包括水平方向的Gx和垂直方向的Gy:

也可以用下列卷积表示:

最后得到边缘图:

或:

4.2 Roberts算子

同Sobel一样,Roberts算子也是局部差分算子。Roberts算子使用2×2的模板并在此计算对角线方向导数:

Roberts算子模板是2×2,表示为:

4.3 Prewitt算子

Prewitt算子同Sobel一样,也使用3×3的模板,算子产生一幅边缘幅度图像,Prewitt数学原理[5]是计算偏微分的方法:

Prewitt算子的模板为:

在上述一阶微分算子中,Roberts算子的定位最为精确,但其对噪声较为敏感且斜边检测能力较差,因此只适用于结构单一,灰度变化较为明显的简单图像;Prewitt算子则通过去掉部分伪边缘以达到平滑噪声的作用,并且在一定程度上可以提高检测斜边的能力,但定位精度不高;相比之下,Sobel算子的计算原理与Prewitt算子相似,但对边缘检测的精确度更高,且具有一定的抗噪声能力。综上所述,为了减少运算且不损失太多精度,提高检测效率,本文使用的是模板较为简单,计算效率较高,精度损失少且对硬件要求合理的3×3的Sobel算子实现图像的边缘检测。

5.改进的Sobel算子

Sobel算子主要根据图像中亮度变化明显的位置一般存在边缘线条的特点,通过计算当前像素某个邻域内的像素值变化并通过设置一定的阈值决定该区域是否位于边缘处,其步骤如下:(1)按照由左至右、从上到下的计算顺序,将水平和垂直2个方向的模板分别沿图像像素的排列移动。(2)将图像的像素值与2个模板的对应位置分别进行卷积。(3)求得卷积结果的最大值,计为px。(4)依据检测图像的特点设定合适的阈值,记为TH,判定该像素点所在区域存在图像边缘的条件为px≥TH。

由于只需要检测水平方向的直线,所以只使用垂直方向的Sobel算子。但是考虑到水平直线在水平方向上的一致性,将Sobel算子改进成下列形式,以期更适应水平直线检测的任务:

该算子既考虑了水平直线所在位置垂直方向上的边缘特征,同时考虑了其水平方向上的一致性。得到边缘图之后,在其上进行水平直线检测。

6.算法实现步骤与验证

6.1 遍历检测区域

设视频分辨率为 hw× ,如图2所示,由于标题字幕只出现在屏幕的下方,所以只需在垂直方向上3h/5到13h/14的区域内进行检测。然后遍历检测区域内所有长度为w/2的水平直线。

6.2 边缘细化

根据改进模板计算出来的值只是图像梯度值,梯度值较大的地方可能对应着图像的边缘,总体来说,使用一阶梯度微分算子提取的梯度图像边缘较粗,寻找合适的阈值以使得直接二值化处理后的边缘达到要求比较困难,因此,需要对梯度图像进行细化处理。即求得:

其中,L(a,b)为起点坐标为(a,b)的水平直线上边缘图的能量和。经此处理可以突出边缘,有利于选择准确的阈值。

6.3 水平直线检测

如果L(a,b)大于某个预定义的阈值,则在该位置存在一条水平直线,实际上,一幅灰度图像的前景与背景占有相对比较大的统计权重,因而在梯度图像的直方图中,它们的梯度值主要集中在梯度值较低区域。然而图像真正的边缘位于梯度值较大的区域,因此需要通过选择合适的阈值来滤掉非边缘点而保留边缘点。选出至少含有一条水平直线的图像帧进行后续处理(如图2)。

图2 水平直线检测区域

6.4 文字检测

对检测出含有水平直线的图像帧,就可以对其进行文字检测。由于标题字幕只出现在屏幕的下方,文字检测仍然是在垂直方向上3h/5到13h/14的区域内进行检测。经过文字检测后,能得到图像帧中找到的文字串的位置、宽度、高度等信息。

6.5 字幕聚类

文字检测之后,得到检测出的大量字幕条,但是其中只有一部分是新闻条目标题字幕,比如检测出3条字幕,其中只有1条是标题字幕。因此需要从检测到的字幕条中找出标题字幕。考虑到标题字幕出现的位置、文字大小、显示风格都非常相似,笔者定义一种评价字幕相似度的方法,定义了字幕之间的相似度之后,就可以使用非监督聚类技术来对字幕进行聚类,将相似的字幕归为一类。聚类算法有很多,例如K-means、DBScan、BIRCH、CURE等。其中最经典的就是K-means算法。[7]K-means算法首先根据启发式方法或随机选择聚类中心集,然后进行多次迭代。在每次迭代中,每个样本点将根据计算出的相似性分配给最近的聚类。迭代后,通过计算每个簇中所有数据的平均值再次确定簇的中心,然后该中心就是所有样本点的中心。

6.6 算法验证

为了验证改进的Sobel算子性能,与文献[8]和文献[9]的方法进行比较,截取100幅电视新闻图像进行测试,为了便于精确对比算法性能,设定图像为统一的350×350的大小,实验结果如表1所示,通常使用的检验指标是查准率和查全率。

表1 字幕行检测准确率

经过文字检测,K-means聚类等步骤,笔者找到了若干标题字幕,测试结果表明,该方法能够在复杂背景下精确检测出字幕区域,为后续文字识别创造条件。通过比较识别出的字幕内容,去掉同一字幕被重复检测的情况。这样,就可以获得新闻视频中出现标题字幕的时间点,每个标题字幕只取其起始时间点,从而实现视频中的每条新闻的自动拆分。

结语

综上所述,充分发挥计算机数据运算优势,运用改进的Sobel算法,利用新闻视频中的字幕特征,将新闻节目视频片段进行更加精准的拆分,从而形成单一独立的视频片段,为广播电视监测人员监看提供便利,从而实现新闻节目的有效监测。

猜你喜欢
字幕算子边缘
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
Domestication or Foreignization:A Cultural Choice
电视剧字幕也应精益求精
QK空间上的叠加算子
一张图看懂边缘计算
简单快捷提取视频文件中的字幕
整合适应选择度下的动画电影字幕翻译——以《冰河世纪》的字幕汉译为例
论纪录片的字幕翻译策略
在边缘寻找自我
走在边缘