视频关键帧提取即在一段成千上万帧的视频中自动提取出需要的某一帧。人工操作会耗费大量的时间和精力,关键帧检测算法的出现可根据视频的帧间特征和自身特性将关键帧快速准确的检测出来。常用的关键帧检测方法包括背景差分法、光流法等。背景差分法通过背景建模,与视频中的各帧进行比较,以此来检测运动目标。该方法检测速度较快,但受背景影响大,在背景变化剧烈的情况下会使背景建模难度增大,从而影响运动目标检测效果。光流法对于运动目标的检测效果显著,将图像中每一个像素点作为一个运动矢量,通过提取光流,检测出每个点的运动过程,从而判断运动状态,进行关键帧的检测,但光流法自身计算复杂度较大,对于上万帧的视频实用性较差。颜色直方图特征统计颜色组成利用某种距离度量策略即可判断相邻两帧的相似度,在视频关键帧检测、镜头分割领域应用比较广泛。曲阳提出了HOG和HSV相结合的方法[3]能得到较高的查全率,但查准率比较低,而且HOG特征计算量大,耗时较多。
目前深度学习在图像处理领域应用广泛,对一些典型问题如图像分类[1- 6]等远超传统人工特征。Wu 等人[7]面向举重视频关键姿态检测提出FCN和CNN相结合的方法,取得不错的效果。但其采用两种深度框架相结合,处理速度很慢,不能实时化。因此将手工特征和深度特征相结合是一个合理的思路。杨非凡等人[8]采用了 SIFT 特征进行关键点检测,得到很多候选局部图像,进一步,在每一张图像上提取少量区域作为候选,并通过 AlexNet 提取候选区域的深度特征,在文中铁路视频中取得较好的效果,但因采用SIFT特征,并且每帧图像均要送入神经网络进行分类,因此速度上无法实现实时性。
受上述方法的启发,本文提出了一种手工特征与深度特征相结合的视频关键帧检测方法。首先基于颜色直方图特征对一场比赛视频进行镜头边界检测,获取镜头最后一帧。进一步基于直方图相似性得到候选关键帧。最后基于深度神经网络对候选关键帧进行分类,得到真正的关键帧。冰壶比赛视频通常是二到三个小时,包含数十万帧图像,通过利用简单有效的颜色直方图来进行视频的镜头分割,从20万左右的视频帧得到700个左右的候选关键帧,利用本文提出的筛选方法过滤掉大量的负样本。进一步基于深度神经网络分类模型能够准确地提取图像特征,保证了关键帧提取正确率。提出算法在FPS为122时关键帧检测准确率达到97.2%。
视频关键帧检测主要包括:基于颜色直方图特征的镜头分割、基于直方图相似度的候选关键帧提取、基于深度特征的关键帧提取。
如图1所示,将视频序列中不同的镜头进行分割,最终提取每个镜头的最后一帧,并将提取的帧进行分类,得到目标关键帧序列。比如在冰壶比赛关键帧检测中,目标关键帧即图1镜头(c)的最后一帧。
图1 视频帧序列
Fig.1 Video frame sequence
颜色直方图特征提取 颜色直方图即R、G、B三个颜色通道上各种颜色出现的概率。每个颜色通道上均是256维的向量,为了减少计算的复杂度,提高检测速度,本文将每个颜色通道上特征维度量化成16维的向量。在[20]中,采用了分块的颜色直方图特征,而本文采用了量化特征。如图2所示,上方左侧蓝色通道为原256维颜色向量,按照每相邻16个颜色统计值相加组合成1维,最终蓝色通道称为16维的向量,如图1中下方左侧表所示。相应的绿色通道和红色通道以此类推。如公式(1)所示,公式中的结果Nq(i)表示量化后第i维特征的值,No(j)表示量化前第j维特征的值。其中0≤i≤15,0≤j≤255。
(1)
距离测量 衡量向量之间距离的方式包括欧氏距离、余弦距离等。欧氏距离对于相邻帧图像的变化较为敏感,但相对于余弦距离计算复杂度较低,在通过调整阈值使镜头分割检测出的帧数相近的情况下,欧氏距离所需时间为余弦距离的75%。因此本文中采用欧氏距离作为帧间距离测量方法。公式(2)中x和y向量分别代表两帧的特征向量。
(2)
渐变帧 在视频中存在大量的渐变帧,如叠化、淡入淡出、扫换镜头,在图3中,几帧图片属于同一个镜头,但下一帧逐渐呈现下一镜头的画面,相邻帧之间在发生叠化渐变的过程中,之间的颜色特征距离也相应增大。由于欧式距离对于帧间变化比较敏感,因此连续的渐变帧也被保留下来,事实上只有这些渐变帧中的第一帧才是所需的。因此本文通过比较每个镜头画面的长度,发现96.2%大于100帧,0.05%小于50帧,3.75%在50到100帧之间。我们最终每找到镜头的最后一帧时,后50帧直接跳过,一方面可以避免渐变帧,另一方面可以提高速度。
图2 上方为原颜色直方图,每个颜色通道为256维;下方为量化后的颜色直方图,每个颜色通道为16维
Fig.2 Above is the original color histogram, 256 dimensions per color channel, Below is the quantized color histogram, 16 dimensions per color channel
图3 叠化镜头
Fig.3 Stacked lens
通过镜头分割保存下的每一个镜头的最后一帧的结果中,包含大量的负样本,对于视频中的广告等镜头,间隔很小就会出现突变帧,导致后续处理任务大大增加。在冰壶比赛中,大部分关键帧的相似度非常接近,为了能筛选出部分的负样本,本文提出一种类似聚类的方法:利用镜头分割步骤中提取的颜色直方图特征,减小距离阈值,在2.1的结果中通过随机选择k张满足该初始阈值的图片;为了不会错误的筛除关键帧,接下来把阈值增大,遍历剩余图片与k张所选图片的特征距离,满足阈值的则保留。筛选出部分负样本。因为利用镜头分割提取的视频帧中只有关键帧是特征较为集中的,其余帧特征均是在整个特征空间内随机分布,因此传统聚类方式很难筛选出关键帧。本文k值设定为4。 该步骤使用了之前提取的特征,不用重复提取,节省了时间。候选关键帧算法如表1所示。
表1 候选关键帧提取算法
Tab.1 Candidate key frame extraction algorithm
候选帧集合E,阈值1:θ1,阈值2:θ2随机选k帧: 任意0≤i,j
利用镜头分割得到的图片数据存在除关键帧以外的大量的不相关图片即负样本,本文利用神经网络进行关键帧的提取。
为了从2.2的结果中筛选出目标关键帧,本文设计了一个包含4个卷积层、4个池化层、3个全连接层的神经网络,网络结构如图4所示。为了防止过拟合的问题,添加了正则化损失,在前两个全连接层后都使用了dropout层。
网络输入 数据集中图片尺寸为1280×720,将其统一调整为100×100作为整个网路的输入,图片长宽分别缩小12.8倍、7.2倍。如果与原图尺寸相差过大,会导致丢失部分细节,导致准确率下降。本文采用100×100的输入,相比于256×256的输入,后者训练所需时间比前者增加了210%,准确率提升了0.6个百分点,如表3所示,并且后者很容易造成内存溢出[12]。因此我们最终使用100×100的图片作为整个网络的输入。
图4 网络结构图:4个卷积层,4个池化层,3个全连接层
Fig.4 Network structure diagram: 4 convolutional layers, 4 pooling layers, 3 fully connected layers
池化层、卷积层 最后一层池化层的输出为6×6×128大小的特征图。前两个卷积层使用的卷积核大小为5×5,可以有效增加感受野,但卷积核过大会增加计算量,使网络训练减慢。经研究表明,可以使用串联的多个较小的卷积核代替一个较大的卷积核,比如两个串联的3×3的卷积层功能类似于一个5×5的卷积层,这样可以使用更少的参数量(3×3×2/5×5=72%);后两个卷积层使用3×3的卷积核,在通道数上增加为128。在此网络中,特征图经过卷积层尺寸并没有发生变化,尺寸缩小的操作均是在池化层上进行的[4,9]。
全连接层 该网络包含3个全连接层,尺寸分别为1024,512,2。最终输出是否是关键帧的两个概率值。全连接层的参数量一共有(6×6×128)×1024×512×2≈4.83×109个,而卷积层全部参数量为4704,可见全连接层参数量远高于卷积层。
训练集 训练集主要是从近几年各项冰壶赛事视频中截取的关键帧,每张图片大小为1280×720,作为正样本;在视频中随机选取若干非关键帧作为训练的负样本,如图5所示。其中训练集正样本为3776张,负样本为3000张。
训练集的数量和丰富性是决定网络模型训练好坏的一个重要标准,但训练集的数量往往无法满足要求。本文中采用数据增强来解决此问题。数据增强可以增加训练数据的数量,提高模型的泛化能力。数据增强可有效减少错误率。在本文中采用的数据增强策略包括:翻转、对比度调整、色相调整、饱和度调整。在表3中,可以看到经过数据增强后的数据集,训练过后效果有一定的提升,同时,数据量的增加也使得训练时间有所增加。
图5 训练集正负样本
Fig.5 Training set positive and negative samples
本文采用的训练集为近5年大型冰壶比赛(世锦赛、亚锦赛等)的10场比赛。训练集的主要作用包括:在镜头分割部分调整寻找合适的阈值参数,在利用神经网络过滤关键帧的部分提供训练集的正样本和负样本。在3.2节测试集的结果显示,同一类型的比赛可以根据训练集调整的参数在测试集上可以取得较好的结果。
在镜头分割中,对于相邻帧之间欧式距离判定基于最大限度的检测出突变帧,而避免检测出同一镜头中发生微小变化的相邻帧。通过多次实验,我们将提取出的直方图特征归一化处理,并将阈值设定为0.2。
对于渐变帧的处理,通过计算每一个镜头的长度,比较跳过不同数量的帧数判断对实验结果的影响,如表2所示。可以发现,在10段视频中,跳过50帧可以检测出关键帧的准确率均为98%以上,并且所需时间最低为原来的46%,最高为74%。分析部分视频认为:视频2中,渐变镜头比较多,当每跳过50帧进行检测时,会过滤大量的渐变帧;视频3中,渐变镜头相对较少,因此效果没有视频2显著。当跳过帧数为100帧时,所需时间更少,但准确率下降较多,说明在该视频中部分镜头持续帧数少于100,造成部分关键帧也被过滤。因此本文之后的实验都是以50帧为基础的。
表2 镜头分割性能比较
Tab.2 Comparison of lens segmentation performance in training set
视频帧数原镜头分割检测总帧数r0镜头分割(跳过50帧)检测总帧数r50t50/T镜头分割(跳过100帧)检测总帧数r100t100/T18562111250.99866940.99110.474390.90100.3921510213650.99917020.99210.404880.90640.402562139510.99937110.99070.745700.90010.6518201312050.98996850.98050.514900.91000.3921021313080.99016990.98110.554980.90950.4119652212860.99116890.98010.504670.91020.3916324513640.99186750.98050.494330.91120.4022156315320.99237010.98990.464990.90990.3823652414450.98627060.98000.513920.89940.4219954112640.99106880.98510.524890.91010.43
注:rx表示查全率,为镜头分割结果中,关键帧个数/全部关键帧个数; tx/T表示检测时间/原镜头分割检测时间。
神经网络的训练过程中,训练轮数为20,batch size设为64,损失函数为交叉熵损失函数,学习率设为0.001,dropout层参数设为0.5,正则化的参数设为0.003[16-17]。
本文实验的测试集为另外选取的近两年的三场冰壶比赛,视频的总帧数分别为:176880,209278,278814帧。
首先针对数据增强做了对比实验,实验结果如表3所示。神经网络在测试集上的分类结果在进行数据增强后提升了1.2个百分点,说明数据增强对于神经网络的性能提升有一定的作用。本文通过随机对原始训练集进行数据增强,造成了训练数据的成倍增加,因此训练时间也增加了75%。
表3 网络性能比较
Tab.3 Network performance comparison
准确率训练时间(增量)无数据增强-10096.4%—数据增强-10097.6%75%无数据增强-25697.0%210%数据增强-25698.2%312%
我们比较了在训练集上不同尺寸的输入图片(100×100与256×256)对于网络分类性能的影响,可发现准确率提升了0.6个百分点,但训练时间增加了210%,说明神经网络的输入图片的尺寸对于网络的计算复杂度有很大的影响,训练时间会成倍增加。但是选择过小的尺寸会造成图片的细节丢失严重,导致准确率下降,因此选择适当的输入尺寸对于网络很重要。
同时,我们比较了在利用颜色直方图特征进行镜头分割的过程中欧式距离与余弦距离两种测量方法性能的比较,如表4所示,分别比较了两种方法的分割检测到的总帧数,其中关键帧个数与全部关键帧个数之比,消耗时间三个方面,可以看出,欧式距离对帧间变化较为敏感,欧氏距离镜头分割得到的总帧数相比余弦距离更多,但分割得到的实际关键帧个数比例两者非常接近,另一方面,由于欧氏距离计算量较少, 所以利用欧氏距离的方法比余弦距离的方法消耗时间更少。综合来看,本文选用了欧式距离作为镜头分割的测量方法。
基于直方图相似度的候选关键帧提取,直接利用镜头分割中提取的颜色直方图特征。比较提取候选帧的时间与结果,如表5,可以看出,三个视频的检测的总帧数分别为之前的60.9%,59.9%,78.3%,但消耗的时间仅为总时间的1.7%,0.87%,0.86%。可见,这一过程仅消耗少量的时间便可以过滤掉大量的负样本,减轻后面的分类任务。在实验中,我们观察到此过程依赖于整个视频中的关键帧的相似度比较接近,而其他帧相似度差距很大,如果选择k值过小,或是初始阈值设的太大,很容易选取错误的k张图片,反而把关键帧滤除。经过大量实验,我们选取的k值为4,初始阈值为0.1。
表4 欧式距离与余弦距离性能比较
Tab.4 Comparison of Euclidean distance and Cosine distance performance
欧氏距离余弦距离检测总帧数13011153n/N0.99930.9994t/T13.64
注:n/N表示检测到的关键帧个数/实际全部关键帧个数;t/T表示两种方法所需时间与利用欧式距离进行镜头分割所需时间的比值。
表5 候选关键帧提取
Tab.5 Candidate key frame extraction
视频帧数n/Nt/T17688060.9%1.7%20927859.9%0.87%27881478.3%0.86%
注:n/N表示提取候选关键帧与视频分割提取的总帧数的比值;t/T表示提取候选关键帧时间与总时间的比值。
如表6所示,经过镜头分割、候选关键帧检测、神经网络分类,在冰壶比赛测试集视频中平均准确率可达到97.2%,平均每秒可检测122帧。
表6 测试集冰壶视频关键帧检测结果
Tab.6 Curling video keyframe detection results in testing set
视频帧数查全率查准率FPS17688098.1%97.4%13020927897.9%97.0%12827881497.6%97.2%108平均值97.8%97.2%122
本文比较了文中方法与传统方法的性能,以及与论文[3]中利用HOG与HSV进行关键帧检测方法的比较,如表7所示,所用视频帧数为209278帧。可以看出在速度上,背景差分法较高于本文方法,在准确率上,本文方法高于背景差分法和光流法,达到了97%,其余两种传统方法均低于90%;而HOG+HSV[3]的方法,查全率与准确率均为90%以上,但其中HOG特征需求图像的梯度值,计算量较大,FPS仅为10,远远低于本文方法的FPS;在分块与全局颜色直方图[20]中,查全率为97%,但是准确率较低,原因是仅仅利用了颜色特征,而本文方法除了利用颜色特征以外,也通过神经网络的方法利用了图像的深层特征,因此准确率较高。
表7 本文方法与传统方法的比较
Tab.7 Comparison between this method and traditional methods
方法查全率准确率FPS背景差分法90.5%80.1%145光流法92.5%89.6%80HOG+HSV[3]94.0%92.5%10分块与全局颜色直方图[20]97.0%89.1%139本文方法97.9%97.0%128
为了证明本文方法的普适性,我们在篮球比赛中进行了实验。由于篮球比赛中场景较为复杂,帧之间相似度较高,采用AlexNet网络,最终准确率仅为89%,因此我们尝试改变主干网络结构,分别采用VGG和ResNet,并通过改变学习率,最终准确率分别为95.4%和97.8%,如表8所示,所以最终在篮球视频上,我们采用的深度网络为ResNet。
表8 篮球比赛神经网络性能比较
Tab.8 Neural network performance comparison in basketball game
主干网络图4网络lr0lr1VGGlr0lr1ResNetlr0lr1准确率88.1%89.0%94.8%95.4%96.5%97.8%
注:lr0表示学习率为0.001;lr1表示前15轮学习率为0.001,后5轮学习率为0.0001。
表9 篮球视频中本文方法与传统方法的比较
Tab.9 Comparison between this method and traditional methods in basketball videos
方法查全率准确率FPS背景差分法88.5%77.9%145光流法89.9%88.5%80HOG+HSV[3]90.5%91.0%10分块与全局颜色直方图[20]95.2%87.9%139本文方法96.2%95.5%128
进一步,基于篮球比赛视频的对比实验如表9所示,可以看出,篮球视频中本文方法的性能依然高于其他传统方法。
本文提出了一种手工特征与深度特征相结合的视频关键帧检测方法。通过基于直方图相似度的镜头分割、候选关键帧提取、基于深度特征的关键帧分类和提取,在冰壶比赛视频测试集上平均查全率为97.9%,平均准确率为97.2%,平均每秒可检测122帧。可通过在镜头分割阶段调整阈值、利用相应数据集对深度网络进行微调,本文提出方法可以适应于不同类型的视频。
[1] Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton. ImageNet Classification with Deep Convolutional Neural Networks[C]∥Neural Information Processing Systems. Lake Tahoe, NV, United States, 2012: 1097-1105.
[2] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. Computer Science, 2014, 47(9): 1409-1556.
[3] 曲阳. 视频检索中的镜头分割及关键帧提取方法研究[D]. 沈阳: 沈阳工业大学, 2016.
Qu Yang. Research on Shot Segmentation and Key Frame Extraction in Video Retrieval[D]. Shenyang: Shenyang University of Technology, 2016.(in Chinese)
[4] 刘万军, 梁雪剑, 曲海成. 基于双重优化的卷积神经网络图像识别算法[J]. 模式识别与人工智能, 2016, 29(9): 856- 864.
Liu Wanjun, Liang Xuejian, Qu Haicheng. Image Recognition Algorithm Based on Double Optimization for Convolutional Neural Networks[J]. Pattern Recognition and Artificial Intelligence, 2016, 29(9): 856- 864. (in Chinese)
[5] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]∥Proceeding of the International Conference on Computer Vision and Pattern Recognition, Boston, USA, 2015: 1-9.
[6] He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Deep residual learning for image recognition[C]∥IEEE conference on computer vision and pattern recognition. Las Vegas, NV, USA: IEEE, 2016: 770-778.
[7] 毋立芳, 王向东. 基于视频的举重训练系统关键技术研究[D]. 北京: 北京工业大学, 2012.
Wu Lifang, Wang Xiangdong. Research on Key Technologies of weightlifting training system based on video[D]. Beijing: Beijing University of Technology, 2012.(in Chinese)
[8] 杨非凡, 廖兰芳. 一种基于深度学习的目标检测提取视频图像关键帧的方法[J]. 电脑知识与技术, 2018, 14(36): 201-203.
Yang Feifan, Liao Lanfang. A method of extracting key frame of video image based on object detection of deep learning[J]. Computer knowledge and Technology, 2018, 14(36): 201-203.(in Chinese)
[9] 卢宏涛, 张秦川. 深度卷积神经网络在计算机视觉中的应用研究综述[J]. 数据采集与处理, 2016, 31(1): 1-17.
Lu Hongtao, Zhang Qinchuan. A Review of the Application of Deep Convolutional Neural Networks in Computer Vision[J]. Data Collection and Processing, 2016, 31(1): 1-17.(in Chinese)
[10] Huang G B, Lee H, Erik G. Learning hierarchical representations for face verification with convolutional deep belief networks[C]∥Proceedings of the 2012 IEEE Conference on Computer Vision and Pattern Recognition. Providence, RI, USA: IEEE, 2012: 2518-2525.
[11] Hinton G E, Osindero S, The Y W. A fast learning algorithm for deep belief net[J]. Neural Computation, 2006, 18(7): 1527-1554.
[12] Hinton G E, Salakhutdinov R R. Reducing the dimensionality of data with neural networks[J]. Science, 2016, 313(9): 504-507.
[13] Dahl G, Yu D, Deng L, et al. Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition[J]. IEEE Transactions on Audio, Speech, and Language Processing, 2012, 20(1): 30- 42.
[14] Russakovsky O, Deng J, Su H, et al. ImageNet large scale visual recognition challenge[J]. Journal of Computer Vision, 2015, 115(3): 1- 42.
[15] Szegedy C, Ioffe S, Vanhoucke V, et al. Inception-v4, inception-resnet and the impact of residual connections on learning[C]∥Proceedings of the Association for the Advancement of Artificial Intelligence, 2017: 4278- 4284.
[16] Zeiler, M. D., Fergus, et al. Visualizing and understanding convolutional networks[C]∥European Conference on Computer Vision, 2014: 818- 833.
[17] Deng J, Dong W, Socher R, et al. Deformable convolutional networks[C]∥In Computer Vision 2017 IEEE International Conference on, 2017, 8: 764-773.
[18] Lin T Y, Dollar P, Girshick R B, et al. Focal loss for dense object detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018.
[19] Wang X, Gupta A. Videos as space-time region graphs[C]∥In The European Conference on Computer Vision, 2018, 9: 413- 431.
[20] 周丽君. 基于内容的视频镜头边界检测与关键帧提取研究[D]. 天津: 河北工业大学, 2014.
Zhou Lijun. Research on Content-based Video Shot Boundary Detection and Key Frame Extraction[D]. Tianjin: Hebei University of Technology, 2014.(in Chinese)
毋立芳 女, 1970年生, 山西人。北京工业大学教授, 博士生导师, 主要研究方向为图像视频内容分析、社会媒体计算、智能3D打印。E-mail: lfwu@bjut.edu.cn
赵 宽 男, 1996年生, 河北石家庄人。北京工业大学硕士研究生, 主要研究方向为视频关键帧检测和图像目标检测。E-mail: s201861077@emails.bjut.edu.cn
简 萌(通信作者) 女, 1987年生, 内蒙古人。北京工业大学讲师, 主要研究方向为图像、视频大数据多媒体内容分析, 社交多媒体用户个性化推荐, 图像分类与检索。E-mail:jianmeng648@163.com
王向东(通信作者) 男, 1973年生, 山西太原人。国家体育总局体育科学研究所研究员, 研究方向为运动生物力学研究。E-mail:908583913@qq.com