贾彦茹,张连堂,周丽宴
(1.信阳学院 数学与信息学院,河南 信阳 464000;2.河南大学 计算机与信息工程学院, 河南 开封 475001;3.郑州大学 信息工程学院,河南 郑州 450001)
视频中的背景复杂、场景多变,并且通常受到不同类型的干扰,对此,在复杂场景中,视频文本的提取具有较高难度[1,2]。
视频中的文本具有高层语义性,传统的基于边缘、颜色和纹理信息等低层特征表达力不足,为视频的理解带来了困难[3]。为了准确提取视频中的文本,诸多国内外学者对此进行了研究,提出了一系列的文本提取方法。如郑云非[4]设计了通过深度学习算子的视频文本区域定位与识别技术。基于深度学习,构建深度置信网络。并利用构建的深度置信网络对4个方向得到的纹理特征计算,完成对文本边界的定位。再根据形态学法,对定位好文本区域进行腐蚀和膨胀操作。最后,将文本区域二值化操作,提取文本信息。该技术可有效定位文本区域并提取文本字符,但是神经网络对文本信息提取能力较弱,对文本区域定位不足,且权重调整易受到初始随机性的干扰,对于复杂视频中的文本提取效果不足。姜晓[5]设计了一种视频广告文本提取算法,首先通过图像边缘与连通区分析进行文本初略定位。其次,根据WT(wavelet decomposition)的频域特征与灰度共生矩阵,利用Co-traning算子训练SVM,从而得到了对文本区域的细定位。通过Co-traning算子能较好解决样本元素误分类的不足。通过设计了一种自动种子技术,在迭代图分割中对文本分割。最后,对卷积网络进行了研究,并引入到文本字符检测中,完成文本提取。该方法在背景简单时,能够较好完成对文本区域的定位,但是,当场景复杂时,难以通过边缘特征对文本定位,易受到各种环境的影响,降低了对文本的提取精度。Guo等[6]提出了一种视频场景的文本提取方法。通过复角点匹配和启发式规则相结合来检测候选文本区域,且通过多帧融合提高了准确度,并根据文本的纹理特性与背景区域区分,提取文本信息,但是该技术对于复杂的背景与各种类的文本,对文本区域定位有一定的误差,提取效果还有待提高,适用性不足。
为提高复杂视频文本的提取精度,本文通过构建过渡映射,设计了一种场景文本检测和提取算法。首先,根据观察到的文本及其相邻背景之间存在瞬态颜色来生成过渡图。然后通过计算过渡像素的密度和过渡像素周围纹理的一致性来粗略地检测文本区域。利用改进的基于颜色的阈值分割方法准确地提取文本字符串,利用投影变换映射准确地检测出文本区域。最后,对所提视频文本提取算法进行验证。
基于观察,视频中的文本与其相邻的背景之间存在着瞬态颜色(参见图1),文本具有高饱和度,一般是通过图形组件插入。
图1 文本显示
一般来说,如果背景是黑暗的,那么文本往往是亮的。相反,如背景是亮的,文本往往是黑暗的。因此,由于色彩混合,文本与其相邻的背景之间存在着瞬态颜色,在文本边界处可观察到强度对数变化。
如图2所示,由于有损视频压缩引起的色彩混合,在亮文本的边界处,连续3个像素的强度下降。还观察到3个连续像素的强度在暗文本的边界上呈指数增长。另外,图2中还示出了过渡区域中强度变化的图示。分别准备3个含有“亮到暗(B-D)”和“暗到亮(D-B)”的视频。从每个视频采样的20个过渡区域被平均化,并在图中示出。由于在低对比度图像中,文本边界的强度变化可能很小,为精确地确定像素是否在过渡区域内,将改进的饱和度作为权值[7]。改进的饱和度定义如下
(1)
(2)
其中,max(S(x,y))定义如下
(3)
DL(x,y)=(1+dSL(x,y))×I(x-1,y)-I(x,y)
(4)
DH(x,y)=(1+dSH(x,y))×I(x,y)-I(x+1,y)
(5)
其中,权重dSL(x,y),dSH(x,y)分别定义如下
(6)
(7)
图2 过渡区域强度变化
由于权重dSL(x,y)与dSH(x,y)可以是零的非彩色文本和背景,因此,将dSL(x,y)与dSH(x,y)额外加1。如果一个像素满足式(8)给定的对数变化的约束,以当前像素为中心的3个连续点作为过渡像素检测,并生成过渡映射,表示如下
(8)
其中,TH为阈值。图3(a)、图3(c)为文本插入图像,图3(b)、图3(d)中示出了两个过渡地图结果。可以看到,即使在复杂的背景下,过渡地图也能很好地生成。
图3 过渡图
过渡图可以作为文本区域的有用指示器,要得到候选文本区域,首先生成一个连接图,如图4(b)所示。如果同一行中两个非零点之间的连续像素间距小于图像宽度的5%,则它们被填充。如果连接的组件小于阈值,则删除它们。通过观察文本区域的最小尺寸,对阈值进行经验选择。然后每个连接的部件被重塑成光滑的边界。假定文本区域通常是矩形的,通过链接4个点生成矩形包围盒,根据图4(b)所示的链路图,这4个点分别为(minx,miny)、(maxx,miny)、(minx,maxy)、(maxx,maxy),图4(c)为候选区域细化结果。
图4 候选区域提取
随后,通过一些有用的线索来确定边界平滑候选区域中真实的文本区域,例如文本的长宽比。由于大多数文本在视频中是水平放置的,因此,可以很容易地消除垂直较长的候选区。过渡像素的密度也是一个很好的标准,然而,需要更精细的算法来减少因复杂背景而导致的错误检测。在这一小节中,由于文本类型与背景的复杂性,像素附近的强度变化很大,因此,引入LBP来描述过渡像素周围的纹理[9]。LBP是一个非常有效和简单的工具来表示纹理的一致性。LBP使用当前像素及其所有循环相邻像素得到二进制模式,并可变为十进制数,表示如下
(9)
现在使用操作符定义文本的概率(POT)如下:首先将LBP算子应用于候选区域中的所有过渡像素。然后,计算不同LBP的数目来考虑过渡像素周围的强度变化。由于使用含8个相邻像素获得的LBP值,因此不同的LBP种类为28=256。虽然不同的LBP的数目通常增加,因为候选区域包括更多的过渡像素,由于过渡像素可以具有相同的LBP式,所以不能保证它。图4(c)中每一个候选区域不同LBP和过渡像素数见表1。
表1 候选区域像素测量
设λi表示每个候选区域中的过渡像素的密度,并且可以根据每个候选区域的大小来划分过渡像素的数目。因此,POT可定义如下
POTi=λi×NOLi,i=1,…,N
(10)
其中,N表示所述候选区域的数目;NOLi为不同LBP的数量,由每个候选区域中不同LBP的最大值归一化得到。如果候选区域的POT大于预定义值,则相应区域最后被确定为文本区域。根据实验结果,将阈值值设置为0.05。可以看到重叠的文本区域与其它候选对象很好地识别。检测结果如图5与表2所示。
图5 文本区域检测
POT结果C10.113文本区域C20.039背景区域C30.081文本区域
接下来,对获得的覆盖文本区域或边界进行细化,以便更好地准确提取文本。为此,本文使用过渡图[10]中的过渡像素的改进投影来执行文本区域细化。首先,进行水平投影以在检测到的覆盖文本区域的每一行中累积所有过渡像素计数以形成过渡像素的直方图。然后,空点表示未转换像素的像素行,然后重新划分区域。投影垂直进行,空点再次被删除。相对于文献[10]中提出的基于边缘的粗投影算法,本文投影方法使得过程更简单。
一旦在当前帧中检测到文本区域,就有必要利用连续帧之间的重叠文本的连续性来进行下一帧的文本区域检测。如果由当前转换图和先前的过渡图异或(XOR)所得到的差值小于预定值,则直接将前一帧的覆盖文本区域作为检测结果,不需要进一步细化。
为了处理这些变化,比较了当前的转换映射和3帧之间的转换映射和这些映射之间的相异度量,定义如下
(11)
其中,Tn,Tn-3为表示第n帧和第n-3帧获得的过渡映射;⊗为XOR操作。换句话说,如果第n帧和第n-3帧过渡映射的值相同,那么Tn(x,y)⊗Tn-3(x,y)的值为零。反之,如果这两个值不相同,那么其结果为1,文本区域更新方法可以有效地减少处理时间。
在应用视频OCR应用程序之前,需要将得到的细化的文本区域转换为二进制图像,属于文本的所有像素都被高亮显示,而其它像素则被抑制。由于文本颜色可能比背景色更亮或更暗,因此需要一个有效的方案来提取处理复杂背景和各种文本外观的覆本。在这一部分,提出了一种快速有效的文本提取技术。
对于文本比周围背景暗与文本比背景更亮两种不同状态,本文通过简单的阈值分割得到的二值图像的文本,表示为1(或“白”)或0(或“黑”)。因此,本文通过检查颜色极性,如果需要的话,反转像素强度,与周围的像素相比,输出的文本区域就可以始终包含明亮的文本。
根据前面部分得到的过渡图,可以简单地实现颜色极性计算。先利用平均强度阈值分割获得的二值化图像。对给定的二值文本区域,搜索属于文本区域的左、右、顶和底线的边界像素,并计算白像素的数目。如果白边界像素的数目小于边界像素数的50%,则文本区域被视为“暗背景下的亮文本”,不需要进行极性变换。在这种场景中,文本总是很亮。如果白像素的个数大于黑色像素,则进行以下运算
(12)
其中,(xF,yF)表示文本区域的每一行第1次遇到的过渡像素的坐标;IB为二进制图像上的强度。第一次遇到过渡像素属于1,而像素间距为两像素的距离则属于0。如果这种情况发生,则区域中的字符像素值被反转以使其比周围背景更亮。注意,反转是通过从最大像素值中减去像素值来完成的。
由于文本在每个区域都是亮的,因此从每个区域提取的字符是有效的。首先,每个文本区域被两个像素扩展,以利用背景的连续性。这个扩展的外部区域被表示为ER。然后,将文本区域内的像素与ER中的像素进行比较,从而可以将连接到扩展区域的像素排除在外。定义文本区域为TR和扩展文本区域为ETR,ETR=TR∪ER。然后,分别在不同窗口大小的水平方向和垂直方向上进行基于滑动窗口的自适应阈值分割。设ETR(x,y)和B(x,y)分别为ETR和生成的二进制图像的灰度像素。所有的B(x,y)初始化为白像素。大小为16*ETR的窗口以步进大小为8水平移动。如果ETR(x,y)的强度小于在每个窗口Otsu 计算的局部阈值,那么B(x,y)为黑色。
假设TR中的背景像素通常以强度的形式连接到ER,他们使用ER填充到TR中的连接像素,以去除背景像素。然而,由于文本像素可能与TR中的背景像素连接,填充任务进行时可能会出现不必要的删除。因此,定义了TR中的“坝点”,避免淹没了文本像素。对堤坝点进行了改进,在过渡像素添加一个简单的约束,以提高提取性能,定义如下
(13)
其中,MinW=1;MaxW=int(ER/8);NT表示水平连接像素之间的过渡像素数量;Hlen与Vlen分别为表示水平和垂直方向的连接长度。
最后,通过向内填充,可以从每个文本区域正确地获得字符。如果一个白像素,在二值化过程中,所有连接的“白色”像素(包括像素本身)填充为“黑”。向内填充后,所有非“黑色”像素被设置为“白色”,文本的背景被很好地去掉了。
本文中选择MSRA-TD500数据库中场景文本进行测试[11]。实验环境:Intel(R)Core(TM)i3-4150,8核CPU,3.40 GHz,8 GB RAM,64位WIN8系统。借助Matlab2010完成测试。为体现本文算法的优越性,将文献[4-6]视为对照组。经过多次实验,得到了本文参数为:P=8,R=2,TH=0.05。
MSRA-TD500数据集中包括300幅训练图像[12],200张测试图像。包括了多方向、多种类,并伴随模糊、噪声等各种环境形成的复杂数据集,在该数据集进行测试具有较大的挑战性,能够很好代表实际情况,图6为MSRA-TD500数据集中示例。
图6 MSRA-TD500数据集示例
为客观评价算法,引入准度(Precision)、召回率(Recall)和F值作为算法性能的衡量标准。
Precision为提取的文本数量与总体提取出数量的比值,其表示了将非文本误检为文本的衡量标准,Precision越高,错误率越小[13]
(14)
Recall为得到文本数量和实际文本数量的比值,Recall越高,漏检概率越小
(15)
F值为Precision和Recall的加权评价值,其表示了Precision和Recall的综合评价,定义如下[14]
(16)
其中,Tp为正确提取文本数量;Fp为误判为文本数量;FN为漏检的文本数量,a为常数,通常取a=0.5。
图7显示了本文算法在MSRA-TD500中文本提取结果。图7(a)为待提取的文本图像序列;图7(b)为文本区域检测结果;图7(c)为文本提取结果。从图7中得知,提出的算法可较好完成各种不同背景,不同字体,不同方向的文本信息提取结果,对文本区域的定位精度高,如图7(b)中方框显示。得到的文本视觉效果清楚,文本边缘光滑度与连续性较强,笔画流畅,说明了本文算法可有效提取不同场景下的文本信息,应用范围较广。
图8和图9分别为简单场景与复杂场景中文本提取结果。图8(a)为待测试简单场景图像序列;图8(b)~图8(e)依次为文献[4-6]与本文算法的实验结果。图9(a)为待测试复杂场景图像序列;图9(b)~图9(e)依次为文献[4-6]与本文算法的实验结果。从图8得知,在简单场景中,4种算法取得了较不错的效果,得到的文本信息均还满意,文本清晰度较好,边缘光滑度良好,但本文算法得到的文本视觉效果最优。从图9中得知,在复杂场景中,本文算法表现出了明显的优势,提取的文本较清晰,可读性良好。图9(b)中的文本不清楚,有些区域的文字已经无法辨认,得到的文本边缘断断续续。图9(c)得到的文本信息比较模糊,亮度与饱和度不足,且文本边缘出现了断裂,不完整,连续性较差。图9(d)中得到的文本基本上正确显示了真实信息,但是有些文本深浅度不一,视觉效果不佳。从实验结果得出,本文算法在复杂场景中对文本提取具有良好性能。主要是因为本文通过强度变化构建了过渡映射,通过计算像素与其领域纹理的变化选择候选文本区域。并利用像素投影来优化文本区域,对文本区域精确定位。利用阈值分割准确区分文本与背景,通过像素扩散,将背景像素消除,对文本区域填充。而文献[4]采用的神经网络对文本信息提取能力较弱,对文本区域定位不足,对于复杂的视频中文本提取效果不足。文献[5]中基于边缘特征,在背景简单时,能够较好完成对文本区域的定位于,但是,当场景复杂时,难以通过边缘特征对文本定位,易受到各种环境的影响,降低了对文本的提取精度。文献[6]中对于复杂的背景与各种类的文本,对文本区域定位有一定的误差,提取效果还有待提高,适用性不足。
图7 本文算法提取结果
图8 简单场景文本提取结果
图9 复杂场景文本提取结果
图10为在MSRA-TD500数据集中通过准确度(Precision)、召回率(Recall)和F进行客观评价得到的结果,其中,图10(a)为Precision-Recall图;图10(b)为F值。从图10中得知,在相同的条件下,本文算法得到的Precision-Recall曲线效果最优,F值最高,性能稳定,鲁棒性强。
图10 MSRA-TD500评估结果
本文设计了一种复杂视频文本检测与提取方案,该方案基于文本与其相邻背景之间存在瞬态颜色的观察。通过强度的变化生成过渡图,通过连接图为每个候选区域创建连接组件,然后每个连接组件被重塑成光滑的文本边界。利用过渡像素的密度和过渡像素周围的纹理的一致性,区分文本区域和其它候选区域。通过LBP算子对过渡像素附近的强度变化进行计算。在转换映射中使用文本像素投影,检测到的文本区域的边界被精确定位。不同帧之间的文本区域更新也被用来减少处理时间。为了验证的检测和提取方法的性能,在MSRA-TD500进行了测试,实验结果表明所提算法具有较高的场景文本提取准确性。