摘 要:笔者采用Easy Realmedia Producer V1.94方法对数字视频进行帧内压缩编码,利用Adobe Premiere Pro 2.0提取视频图像中具有字幕的帧,通过边缘检测算子检测出图像的边缘,将边缘进行过滤或对边缘聚集生成候选文字区域,再对区域内的文字进行灰度化和二值化处理,从视频中成功提取出了字幕文件。
关键词:帧内压缩编码; 边缘区域检测; 灰度化; 二值化
1 引言
电视节目是人们获取信息的重要途径之一,而视频中的标题字幕往往囊括了该视频的主要内容。如果能把字幕提取出来,那么对于将视频分类整理、快速搜索,都有很大的好处。国内外有大量这方面的研究论文,很多学者都已经搭建了视频文字处理系统,虽然处理方法上有所不同,但基本都分为视频片段切割成帧、文字区域检测、文字跟踪和增强、文字区域的灰度化和二值化、文字识别五个部分。其中最重要的部分是文字区域检测。当前字幕检测方法大致有连通区域分析法、纹理分析法、边缘检测法、时空分布特征分析法等等。而当前存在的问题就是如何提高提取出的字幕信息的准确率。
笔者所要研究的内容,首先是利用软件将模拟信号视频用帧内压缩编码的方式转换为数字视频,然后再利用上述原理,编程将视频中的标注字幕提取出来保存为图像文件。最后利用已经成熟的OCR图像转文字技术将其转化为.txt文本文件并同原视频关联。
2 数字视频转换
采用视频采集卡和视频采集软件,把模拟视频转换为数字视频。接着采用了Easy Realmedia Producer V1.94进行帧内压缩编码。最后通过Adobe Premiere Pro 2.0软件提取出视频中的帧。
3 字幕图像提取
3.1 文字区域检测及分割
笔者实现文字区域检测的方法较为简易。
图3.1 原始图像
首先,对图像采用高斯滤波。图像滤波的作用,是在尽量保留图像细节特征的条件下对目标像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接响到后续图像处理和分析的有效性和可靠性。滤波后的图像如图3.2:
图3.2 通过高斯滤波器后的图像
接下来,应用Sobel算子对图像进行边缘检测。
Sobel算子是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。该算子包含两组3*3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,分别代表经横向及纵向边缘检测的图像,其公式如下:
图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。
上式中,角度等于0,代表图像在该处拥有纵向边缘,左方较右方暗。
经过边缘检测,得到的图像如图3.3:
图3.3 边缘检测图像
字幕文字通常出现在视频图像的下部1/4处,为简化运算,笔者在程序中只对图片的下部约100像素高度的部分进行检测(RMVB格式的片源多数均在这个范围左右),这样避免了对全图进行检测,既提高了运算速度,又避免了图像上部有同样颜色的区块对检测结果产生干扰。
为了能较快地检测出字幕,笔者检测所有的白色像素点,保留最左端白色像素点的横坐标,此横坐标即为分割矩形框的左边框,同理得到右边框的横坐标以及上下边框的纵坐标。设定好边框之后,用此窗口去截原本的灰度图像,即得到下面的图像3.4:
图3.4 提取出的文本框
至此,字幕区域就从图像中分割了出来。
3.2 文字图像灰度化、二值化
在MATLAB中,利用语句rgb2gray可将文字图像灰度化,本文中经过高斯滤波器后已加入了生成灰度图像的命令,如下图3.5:
图3.5 灰度图像
利用im2bw语句可将图像进行二值化处理。如下面的图像3.6:
图3.6 文本框二值化
保存图像为“.jpg”图像格式。为便于识别,若原始图像不是该格式文件,与原始图像同名即可。若原始图像也是该图像格式文件,则在原始文件名后加入“sub”以区分。
3.3 文字识别
笔者采用汉王OCR 6.0软件,导入图像后其自动识别出文字。如下面的图像3.7:
图3.7 图片识别结果
保存为文本文件时使用原始文件名,同原视频保存在同一路径。
4 实验结果
为了检测设计出的系统性能,笔者采用了一些素材进行检测(前两种素材为RMVB格式。高清的影片往往外挂字幕,在截取帧的时候并不会同时将字幕截出,故不予采用。第三种素材属于内嵌字幕的高清影片,可以采用)。表4.1为实验数据和结果。
表4.1 实验数据及结果
5 总结
由于视频中的文字往往分辨率较低,而且经常嵌在复杂背景中,因而无法直接使用OCR软件进行识别。如何对图像进行处理,使文字便于识别,是视频文字提取系统中最重要的工作。笔者在参阅了大量文献之后,提出了一种较为简易的方法,实现了视频字幕文字的提取。利用Adobe Premiere Pro 2.0、Easy Realmedia Producer V1.94等软件进行前期的视频转换,提取视频图像帧,采用边缘检测的方法对图像进行处理,便于提取文字所在区域。利用MATLAB软件实现了图像滤波,边缘检测,图像分割,图像灰度化及二值化等步骤。最后使用汉王OCR 6.0软件识别出图像中的字幕文字。
参考文献
[1] 基于纹理的视频镜头边界检测系统研究. 北京邮电大学,2010(3).
[2] 张洋. 电视视频字幕文字的提取方法研究.中国科技大学,2009(7).
[3] 刘元春,凌坚,练益群. 电视新闻节目中标题字幕的提取技术探索. 广播与电视技术,2008,35(11):91-94.
[4] 张首君,陈银杰,安孝宽,张精通,张远. 数字视频信号的压缩编码原理.西北大学学报(自然科学版),2007,37(3):379-383.