一种视频字幕文本提取和识别的方法 技术领域 本发明属于模式识别与计算机视觉领域, 特别是涉及视频图像中的文本检测与识 别的处理方法。
背景技术 视频作为一种最为流行的媒体形式, 通过网络和电视广泛传播。为了使用户更方 便、 快捷地寻找到感兴趣的视频内容, 视频检索与分类逐渐成为模式识别与计算机视觉领 域研究的热点。 在这其中, 视频中的文本信息, 特别是字幕信息对于视频的检索以及分类效 果最为显著。这是因为 : (1) 视频中的文本信息与视频的当前内容密切相关 ; (2) 视频中的 字符有非常明显的视觉特征, 便于提取 ; (3) 字符识别 (OCR) 技术相对目前的语音识别和图 像分类技术更为准确和成熟。因此, 视频中的文本检测与识别引起了广泛的兴趣。
视频中的文本检测与识别过程主要包括以下三个步骤 : (1) 文本检测与定位 ; (2) 文本提取 ; (3) 字符识别。 其中针对步骤 (1) 的研究较多, 涌现出了许多适用的方法和技术,
如中国知识产权局 2005 年 8 月 24 日公开的公开号为 1658227 的专利 (“检测视频文本的 方法和装置” ) 主要根据帧间图像变化检测文本区域。针对步骤 (2)(3) 的技术相对较少, 如 2008 年 1 月 30 日公开的公开号为 101115151 的专利 (“一种视频字幕提取的方法” )根 据颜色判断文字极性并通过局部二值化提取文字, 然后用 OCR 软件进行识别。总的来说, 现 有的视频字幕文字提取和识别的技术还不够完善, 主要体现在 : 对于复杂多变的背景, 特别 是与前景颜色相似甚至相同的背景无法处理 ; 对于多变的字体, 如: 宋体、 黑体、 楷体等的 适应性不强 ; 字符识别采用常规的 OCR 方法, 对字符切分和字符图像噪声、 低分辨率考虑不 足。
针对上述未解决的技术问题, 本发明提出了一种有效的用于视频中字幕区域文本 提取与识别的方法。 发明内容 本发明的目的是为了克服视频中文本的背景颜色复杂、 前景颜色的不确定性、 字 体多变性和字符切分的不确定性, 从而提出了一种对字体、 背景颜色具有鲁棒性、 并且可以 自动判断前景颜色的文本提取和识别方法, 对视频字幕文本能够实现快速、 准确的提取、 切 分与识别。
本发明提出的一种视频字幕文本提取和识别的方法采用的技术方案为 :
步骤 S1 : 输入视频中字幕区域的图像 ;
步骤 S2 : 将输入图像转化为灰度图 ;
步骤 S3 : 判断字幕区域中字符排列的方向 ;
步骤 S4 : 如果字幕区域中字符排列的方向为竖直排列, 则将竖直排列的字幕区域 逆时针旋转 90°得到水平字幕区域 ;
步骤 S5 : 对字幕区域进行分行得到单行字幕图像 ;
步骤 S6 : 对单行字幕图像自动判断前景颜色, 并得到真实的单行字幕二值图像 ;
步骤 S7 : 对单行字幕二值图像进行过切分得到字符片段序列 ;
步骤 S8 : 对过切分后的单行字幕二值图像进行文本行识别。
本发明提出的视频字幕文本提取与识别方法的有益效果为 :
(1) 本发明提出的方法能同时处理水平和竖直的视频字幕文本行 ;
(2) 本发明提出的方法能够对字幕图像区域进行自动分行, 对多文本行的字幕图 像进行处理与识别 ;
(3) 本发明提出的方法通过对单行字幕图像的连通部件进行分析, 自动确定字符 前景颜色并滤除噪声连通部件, 从而得到清晰的字符前景二值化图像 ;
(4) 本发明提出的方法对文本行图像进行字符过切分得到候选切分方式, 并结合 候选字符的识别分数和语言上下文模型对候选切分方式进行评价, 同时得到字符切分和识 别结果, 避免了字符宽度变化和间隔不均匀以及字符间笔画粘连造成的切分错误。
综合说来, 本发明的视频字幕文字提取和识别方法能有效分割字幕文本行, 准确 判断字符前景颜色并滤除噪声, 并得到准确的字符切分与识别结果, 可以适用于视频和图 像内容编辑、 索引与检索等多种用途。 附图说明
图 1 是本发明提出的视频字幕文字提取和识别方法流程图。 图 2 是对字幕图像进行分行的流程图。 图 3 是对单行字幕图像进行自动判断前景并二值化的流程图。 图 4 是对二值单行字幕图像进行过切分的流程图。 图 5 是本发明方法的实现结构图。 图 6 是对单行字图像进行二值化和去噪后的图像示例。 图 7 是对二值单行字幕图像进行过切分的图像示例。 图 8 是对过切分后单行二值图像进行识别中候选切分网格生成的图像示例。 图 9 是一幅水平字幕区域图像的识别结果示例。 图 10 是一幅竖直字幕区域图像的识别结果示例。具体实施方式
为使本发明的目的、 技术方案和优点更加清楚明白, 以下结合具体实施例, 并参照 附图, 对本发明进一步详细说明。
本发明可在个人电脑、 服务器等计算设备上实现。
本发明采用的技术方案为 : 将视频中的字幕区域进行分行, 对每一行自动判断前 景颜色并生成二值图像, 对二值图像中的字符进行切分与识别, 得到最终的文本识别结果。 其中对于视频中字幕的定位不是本发明的内容, 假设已经用别的方法定位得到了字幕区 域。
参照图 1, 本发明提出的视频字幕文字提取和识别方法具体包括以下几个主要步 骤:
步骤 S1 : 输入视频中字幕区域的图像 ;步骤 S2 : 将输入的图像转化为灰度图 ;
将输入图像转化为灰度图的过程是: 设输入图像中的每一个像素点 的 R、 G、 B 值 分 别 为 r、 g、 b, 则 变 换 后 的 灰 度 图 中 该 像 素 点 的 灰 度 值 为 gray = 0.299×r+0.587×g+0.114×b。
步骤 S3 : 判断字幕区域中字符排列的方向 ;
对字幕区域中字符排列方向进行判断的过程是 : 比较输入图像的长和宽, 当输入 图像的长大于等于宽时, 认为字幕是水平排列 ; 当宽大于长时, 认为字幕是竖直排列。
步骤 S4 : 如果字幕区域中字符排列的方向为竖直排列, 则将竖直排列的字幕区域 逆时针旋转 90°得到水平字幕区域 ;
设原图像的宽、 高分别为 W1、 H1, P1(x, y) 为原图像横坐标为 x、 纵坐标 y 的点所对 应的灰度值 ; 则旋转后的图像的宽、 高分别为 W2 = H1、 H2 = W1, 经过逆时针旋转 90°, P2(x, y) = P1(y, x) 为旋转后图像横坐标为 x、 纵坐标 y 的点所对应的灰度值。
步骤 S5 : 对字幕区域进行分行得到单行字幕图像 ;
参照图 2, 对字幕区域进行分行的具体过程包括如下步骤 :
步骤 S51 : 利用 Sobel 算子求取字幕区域中每个像素点的边缘强度, 得到字幕区域 边缘图像 ; 步骤 S52 : 利用大津法 (Otsu) 对字幕区域边缘图像进行二值化得到二值图像, 边 缘图像中边缘强度超过阈值的像素点记为有效边缘点, 置为 1, 否则置为 0 ;
步骤 S53 : 统计二值图像中每一行 ( 指像素行, 以下同 ) 的有效边缘点数 ; 设二值
图像的高为 H, 有效边缘点总数为 T, 设有效边缘点数阈值为从二值图像的起始行开始, 按某一扫描方向逐行进行扫描, 优选地, 将二值图像平均分为上下等高的两个部 分, 分别统计上下两部分的有效边缘点个数, 如果上半部分的有效边缘点数多, 则以最上一 行为起始行, 扫描方向为从上至下 ; 否则, 以最下一行为起始行, 扫描方向为从下至上。 当某 行中的有效边缘点数超过阈值 TH 时, 则以该行为基准, 按扫描方向的反方向倒退三行作为 一个文本行的开始, 然后按扫描方向跳跃 20 行, 继续按扫描方向进行扫描 ; 当某一行中所 含的有效边缘点数低于阈值 TH 时, 则以该行为基础, 按扫描方向前进三行作为一个文本行 的结束 ; 重复以上过程, 直至扫描完最后一行停止 ; 最后就会得到所有的文本行区域。取每 个文本行区域的原始灰度图像, 即单行字幕图像, 进行下面的前景颜色判断和二值化。
步骤 S6 : 对单行字幕图像自动判断前景颜色, 并得到真实的单行字幕二值图像 ;
参照图 3, 对单行的字幕图像自动判断前景颜色, 并得到真实的单行字幕二值图像 的具体过程包括如下步骤 :
步骤 S61 : 对单行字幕图像进行局部二值化, 局部二值化窗口为边长等于三分之 一图像高度的正方形, 在窗口内的阈值用大津法 (Otsu) 计算, 如果窗口中心点的灰度值大 于阈值, 则二值化输出为 1, 低于或等于阈值则二值化输出为 0 ;
步骤 S62 : 计算两个全局的阈值 : 高亮度阈值 ThH 和低亮度阈值 ThL, 如果单行字 幕图像所有像素点的平均灰度值为 m, 方差为 v, 则高亮度阈值为 ThH = m+0.3×v, 低亮度阈 值为 ThL = m-0.3×v ;
步骤 S63 : 对于单行字幕图像中的每一个像素点, 如果其局部二值化的输出为 1,并且本身灰度值高于高亮度阈值 ThH, 则记为前景候选 1 ; 如果其局部二值化的输出为 0, 并 且本身灰度值低于低亮度阈值 ThL, 则记为前景候选 2 ; 其他不符合以上条件的像素点均不 作为前景候选 ;
步骤 S64 : 基于前景候选 1 和前景候选 2 分别生成二值图像, 对每个二值图像分别 进行去噪和是否为真实前景进行打分, 分值为 TM ; 取得分 (TM) 低的前景二值图像为最终的 单行字幕二值图像。
所述步骤 S64 中对两种前景候选的二值图像分别进行去噪, 并对每个像素是否为 真实前景进行打分的具体过程包括如下步骤 :
步骤 S641 : 将所有对应当前前景候选 ( 前景候选 1 或前景候选 2), 且距离单行字 幕图像边缘距离大于 2 的像素点记为 1, 其他像素点记为 0, 生成二值图像 ;
步骤 S642 : 对所得二值图像的前景像素, 即标记为 1 的像素点提取连通部件, 进而 利用每个连通部件与背景, 即标记为 0 的像素点, 的颜色对比度、 几何形状、 位置关系以及 与字符的相似程度等信息, 对步骤 S641 所得的二值图像进行去噪 ;
利用每个连通部件与背景的颜色对比度、 几何形状、 位置关系以及与字符的相似 程度等信息, 对 S641 所得的二值图像进行去噪的具体过程包括如下步骤 :
步骤 S6421 : 从生成的二值图像中提取连通部件, 顺序分析和处理每一个连通部 件;
步骤 S6422 : 设第 i 个连通部件的 topi 为所含像素点纵坐标的最小值, bottomi 为 所含像素点纵坐标的最大值, lefti 为所含像素点横坐标的最小值, righti 为所含像素点横 坐标的最大值, 设单行字幕图像的行高为 h ;
步骤 S6423 : 对第 i 个连通部件的每个边缘点, 计算其与相邻背景点的灰度值差 δ, 如果 δ > v(v 为整行单行字幕灰度图像所有像素点灰度值的方差 ), 则将该边缘点记为 合理边缘点 ;
步骤 S6424 : 设第 i 个连通部件所含边缘点数为 ENi, 合理边缘点数为 RENi, 若满足 条件
则删除该连通部件 ;步骤 S6425 : 设第 i 个连通部件的宽、 高分别为 wi、 hi, 若满足如下条件之一 : (1) max(wi, hi) < 0.2×h ∩ min(wi, hi) < 0.1×h, (2)wi > 2×h ∩ hi < 0.4×h, 则删除该连 通部件 ; 步骤 S6426 : 设第 i 个连通部件的垂直中心位置为 若满足 CHi
< 0.2×h ∪ CHi > 0.8×h, 则删除该连通部件 ;
步骤 S6427 : 设第 i 个连通部件的平均笔画宽度为 SWi, 其计算方法如下 : 设连通部 件所含像素点的个数为 Ni, 边缘点个数为 Ci, 则笔画宽度 设所有连通部件笔画宽度的平均值为 SW, 若第 i 个连通部件满足 SWi > 1.5×SW ∩ wi < h, 则删除该连通部件。
步骤 S643 : 对去噪后得到的二值图像进行形态打分, 得到分值 M ;
对去噪后得到的二值图像进行形态打分, 得到分值 M 的具体过程包括如下步骤 :
步骤 S6431 : 对 M 进行初始化, M=0;步骤 S6432 : 统计步骤 S642 去噪处理后所有剩余连通部件的平均高度 averageh、 平均宽度 averagew、 最大高度 maxh、 最大宽度 maxw、 所有剩余连通部件的总跨度 length, 其 中, length = max(righti)-min(lefti), righti 为第 i 个连通部件中所有像素点横坐标的 最大值, lefti 为第 i 个连通部件中所有像素点横坐标的最小值, 如果满足如下条件之一 : (1) 剩余连通部件的数目为 0, (2)averagew < 0.3×h, (3)averageh < 0.3×h, (4)maxh < 0.5×h, (5)maxw < 0.5×h, 该二值图像的形态打分分值 M 为 1000 ;
步骤 S6433 : 若 M ≠ 1000, 估计二值图像中整行字的上边缘 ET, 下边缘 EB, 有效连 通部件的数目 usefulNum, 有效连通部件所含像素点数目的均值 averageNum, 平均字符宽 度 averageWid, 计算方法如下 : ET 为所有满足 topi < 0.3×h 的连通部件的 topi 的平均值, EB 为所有满足 bottomi > 0.7×h 的连通部件的 bottomi 的平均值, usefulNum 为二值图像 中满足条件 hi > 0.3×h ∩ hi < 0.9×h 的连通部件的数目, averageNum 为二值图像中满 足条件 hi > 0.3×h ∩ hi < 0.9×h 的连通部件所含像素点数目的均值, averageWid 为满 足条件 hi > 0.5×h ∩ hi < h 的连通部件的 hi 的均值 ;
步 骤 S6434 : 如 果 该 二 值 图 像 满 足 如 下 条 件 之 一 : (1) 100 ;
(2)则形态打分分值 M 为步 骤 S6435 : 若 M ≠ 1000 且 M ≠ 100, 形态打分分值 M 的计算方法如下 : 设 blackNumi 为第 i 个满足条件 wi > 0.3×h ∩ wi < 0.9×h ∩ hi > 0.3×h ∩ hi < 0.9×h 其中 blackNumi 为第 i 个的连通部件所含像素点个数, 连通部件中所含像素点的个数。步骤 S644 : 对去噪后得到的二值图像进行笔画宽度一致性打分, 得到分值 T ;
对去噪后得到的二值图像进行笔画宽度一致性打分, 得到 T 的计算方法如下 : 设 步骤 S642 处理后所有剩余连通部件的数目为 N, 第 i 个连通部件的笔画宽度为 SWi, 所有连
通部件笔画宽度的平均值为 SW, 则 步骤 S645 : 最终该二值图像的前景真实度分值为 TM = 0.6×T+0.4×M ;
步骤 S7 : 对单行字幕二值图像进行过切分得到字符片段序列 ;
参照图 4, 对单行字幕二值图像进行过切分的方法具体包括如下步骤 :
步骤 S71 : 计算单行字幕二值图像的行高, 当作平均字符高度和平均字符宽度, 记 为 averageWid, averageWid = EB-ET。
步骤 S72 : 计算单行字幕二值图像在 X 轴上的投影 ( 每一像素列的前景点个数 ) ; 投影为 0 的连续像素列构成一个投影为 0 的区间, 投影不为 0 的连续像素列构成一个投影 不为 0 的区间 ; 将每一个投影为 0 的区间所在 X 轴的位置作为候选切分点 ( 相邻字符可在 候选切分点分隔开 ) ;
步骤 S73 : 对于每个投影不为 0 的区间, 如果其宽度超过平均字符宽度的 0.8 倍, 则对其进行过切分, 在区间中寻找新的候选切分点, 在新的候选切分点处再将该区间分成
多个投影不为 0 的区间 ;
对于投影不为 0 的区间进行过切分的过程具体包括如下步骤 :
步骤 S731 : 计算该区间中每一列 ( 指像素列 ) 的切分置信度, 第 i 列的切分置信 度 Confi 计算方法如下 : 设第 i 列所有前景像素点纵坐标的最小值为 FVi, 最大值为 LVi, 该 列前景像素点数为 ni, 则
其中, ET 为单行字幕图像的上边缘估计, EB 为下边缘估计, 已在步骤 S6432 中描述; 步骤 S732 : 从该区间的左端开始, 沿文本行方向, 每隔 0.5×averageWid 得到一个 假设切分点, 记为 Cj ; 在以 Cj 为中心, 0.15×averageWid 为半径的区域内寻找最终切分置信 度最大的列为切分位置 ; 最终切分置信度计算如下 : 设第 i 列的切分置信度 Confi, 到 Cj 的 水平距离为 di, 则第 i 列的最终切分置信度为 :
步骤 S74 : 将每个最终分出的投影不为 0 的区间的二值图像看作一个字符片段, 将 所有字符片段按从左到右的顺序进行排序。
步骤 S8 : 对过切分后的单行字幕图像进行文本行识别。
对过切分后的单行字幕图像进行文本识别的目的是同时确定字幕中各个字符的 最终切分位置和类别, 即同时得到字符切分和识别结果, 其具体过程包括如下步骤 :
步骤 S81 : 从左至右顺序考虑每一个字符片段, 将字符片段分别与右边相邻的 0 个、 1 个、 2 个、 3 个片段合并, 合并后构成的图像前景像素左、 右、 上、 下边界分别表示为 left, right, top, bottom, 若该图像前景像素满足如下条件, 则构成一个候选字符 : (1) (right-left) < 1.5×averageWid, (2)max(right-lef, bottom-top) > 0.6×averageWid ; 将所有候选字符存储在一个候选切分网格中, 其中每个节点对应一个候选切分位置, 从起 始节点 ( 对应文字行的开始位置 ) 到终止节点 ( 对应文字行的结束位置 ) 的每一条路径 ( 称为候选切分路径 ) 表示文本行的一种切分方式, 路径上每一条边表示一个候选字符 ;
步骤 S82 : 用一个字符分类器对每个候选字符进行识别, 得到几个 ( 比如 10 个 ) 分 数最大的候选类别以及对应的分数 ;
字符分类器从候选字符图像中提取特征, 表示为特征矢量 xi, 用一个统计分类器 ( 比如最近原型分类器 ) 对特征矢量进行分类, 具体地, 计算特征矢量到每一类别集 ci( 类 别集是事先指定的, 包括常用汉字和英文字母、 数字 ) 原型的最近距离 di = d(xi, ci), 选择
距离最近的 10 个类别, 将其距离通过函数转换为概率置信度, 即字符识别分数 ; 其中参数 τ 为字符分类器训练样本集上每类样本到本类别距离 d(x, c) 的均值, α 经验性地设为 2/τ。
步骤 S83 : 对每一条候选切分路径, 组合不同候选字符的多个候选类别, 得到多条 候选切分识别路径, 该路径中同时包括候选字符及每个候选字符对应的类别 ; 对每一条候 选切分识别路径进行评价, 得到该路径的评价分数。所述步骤 S83 中对于候选切分识别路径的评价具体为结合候选类别的分数和统 计语言模型 ( 通常用 Bi-gram) 给出路径的评价分数 : 设候选切分路径 X 上有 n 个候选字 符, 对应的候选类别依次为 C = c1c2… cn, 候选切分识别路径的分数为
其中, ki 为构成候选字符 ( 其对应的特征矢量为 xi) 的字符片段个数, P(ci |ci-1) 为事先得到的统计语言模型 Bi-gram, λ 为经验设定的权值 (0 到 1 之间 )。
步骤 S84 : 用动态规划算法搜索所有的候选切分识别路径, 分数最高的路径给出 的文本行字符切分和识别结果即为最终处理结果。
其中, 字符分类器的特征提取和分类器设计在模式识别领域有很多公开的具体方 法, 因而不是本发明的主要内容, 代表性的方法可参考文献 :
[1]C.-L.Liu ,K.Nakashima ,H.Sako ,H.Fujisawa ,Handwritten digit recognition : Investigation of normalization and feature extraction techniques, Pattern Recognition, 37(2) : 265-279, 2004.
[2]X.-B.Jin , C.-L.Liu , X.Hou , Regularized margin-based conditional log-likelihood loss for prototype learning , Pattern Recognition , 43(7) : 2428-2438, 2010.
参照图 5, 本发明主要包括以下四个模块 : 字幕区域分行模块 105、 字符前景判断 和二值化模块 106、 过切分模块 107 和文本行识别模块 108, 其他模块均为辅助的输入 / 输 出或控制模块, 其中 :
字幕图像输入模块 101, 用于获取字幕区域图像, 字幕区域由其他字幕定位技术对 字幕进行检测和定位得到, 或者假定视频图像中一个固定区域为字幕区域。
灰度图像转换模块 102, 利用公式 gray = 0.299×r+0.587×g+0.114×b, 将彩色 图像转化成灰度图像。
字符排列方向判断模块 103, 通过比较输入图像的长、 宽, 来确定字符的排列方向, 当输入图像的长度大于等于宽度时, 判定字幕为水平方向 ; 反之, 则判定为垂直方向。
字幕旋转模块 104, 用于将字符垂直排列的图像转化成字符水平排列的图像。
字幕区域分行模块 105, 用于将字符水平排列的灰度图像进行细分, 当该图像含有 多行文本时, 将其拆分成多个单行文本图像 ; 当该图像只包含一行文本时, 对该行文本进行 位置修正, 得到垂直方向上字符位置居中、 外围包含 3 个像素单纯背景的文本图像。
字符前景判断和二值化模块 106, 对单行的字幕图像自动判断前景颜色, 并得到真 实的单行字幕二值图像。
过切分模块 107, 对二值化后的单行字幕图像进行过切分得到字符片段序列。
文本行识别模块 108, 对过切分后的单行字幕图像进行文本行识别。
本发明的具体实施效果如图 6 至图 10 所示。
参考图 6, 左边三个水平字幕行图像从上至下依次为 : 彩色字幕区域图像、 局部二 值化之后的图像、 字符前景二值化图像 ; 右边三个垂直字幕行图像从左至右分别为 : 彩色 字幕区域图像、 局部二值化之后的图像、 字符前景二值化图像。
参考图 7, 左边和右边三个字幕分图像从上至下分别为 : 彩色字幕区域图像、 字符
前景二值化图像、 字符过切分效果图 ( 垂直白线表示候选切分位置 )。
图 8 为候选切分网格, 每一条折线表示一种切分路径, 加粗的切分路径表示最终 的字符切分结果。
图 9 是一个水平字幕行图像文字提取和识别的完整过程 : 第一行为输入彩色图 像, 第二行为两种候选前景色生成的二值图像, 第三行为过切分效果图, 第四行为最终的文 本行识别结果。
图 10 是一个垂直字幕行图像文字提取和识别的完整过程 : 第一列为输入彩色图 像, 第二列为行分割结果, 第三列分别为两种候选前景色生成的二值图像, 第四列为过切分 效果图, 第五列为最终的文本行识别结果。
以上所述的具体实施例, 对本发明的目的、 技术方案和有益效果进行了进一步详 细说明, 所应理解的是, 以上所述仅为本发明的具体实施例而已, 并不用于限制本发明, 凡 在本发明的精神和原则之内, 所做的任何修改、 等同替换、 改进等, 均应包含在本发明的保 护范围之内。