您好, 访客   登录/注册

基于特征提取的视频预处理方法

来源:用户上传      作者:

  摘 要:针对现有视频识别算法对不同帧中同一对象反复分类、反复识别问题,提出一种基于特征匹配的预处理算法。该算法将前一帧中已识别物体的图像特征与下一帧画面提取出的特征相比较,找出下一帧中已经被分类或识别过的物体,并将其剔除,达到压缩输入视频画面尺寸、提升视频处理效率的目的。为了验证算法的预处理效果,对两组道路图形进行实验,结果表明,该算法平均降低85%的画面尺寸,视频画面处理时间平均降低5%。
  关键词:视频预处理;特征提取;画面切割
  DOI:10. 11907/rjdk. 191578
  中图分类号:TP317.4    文献标识码:A                 文章编号:1672-7800(2020)003-0225-05
  Video Preprocessing Method Based on Feature Extraction
  ZHANG Li-yang,ZHAO Feng-yu,LIU Ya
  (School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology,Shanghai 200093,China)
  Abstract: Aiming at the problem of repeated classification and recognition of the same object in different frames in existing video recognition algorithms, we propose a preprocessing algorithm based on feature matching in this paper. This algorithm compares the image features of the recognized objects in the previous frame with those extracted from the next frame and finds out the objects that have been classified or recognized in the next frame and removes those objects that have been recognized so as to compress the size of the input video picture and improve the efficiency of video processing. In order to verify the preprocessing effect of the algorithm, two groups of road graphics are experimented. The results show that the proposed algorithm can reduce the average size of the picture by 85%, and the average processing time of the video picture by 5%.
  Key Words: video preprocessing; feature extraction; picture cut
  0 引言
  在視频处理中,预处理指在主处理之前预先通过一系列操作对视频进行处理,以提升主处理效果,如画面去噪、画质提升和码率压缩等[1-5]。在画面去噪方面,文献[1]提出基于块和低秩张量恢复视频原始效果并去除噪声的方法。在画质提升方面,文献[2]提出一种全新的插值预处理算法以提升画面效果。在码率压缩方面,文献[3]提出一种基于计算、通信和缓存相结合的框架,以去除视频画面中的冗余部分。该方法可以在一定程度上去除视频中的冗余信息,但这种去除主要是为了压缩视频在信道传输过程中的信息冗余,经过处理之后的视频数据无法被识别算法直接计算,而压缩后的数据在解码后实际上还会还原成原始图像。因此,对于识别算法来说,这种方法并不能提升运算速度。
  在对视频进行识别时,将每帧画面视作单独存在的一整幅图进行输入,并分别进行独立的识别操作依然是大量采用的一种策略[6-12],这种策略的特点是,当识别算法完成对一帧画面识别并输出结果之后,算法并不会保存该次识别结果,也不会尝试重复利用该次识别所获取的信息。当下一帧画面传入时,算法会对整幅画面重新扫描,重新识别。这一特点使每识别一帧画面都无法利用之前已经计算过的结果,在识别视频过程中做了大量的重复工作。
  对于视频信息而言,相邻两帧之间甚至相近的很多帧之间都存在很强的关联性和相似性,如果能够利用这种前后帧之间的关联,则可帮助识别算法在处理视频时少做很多重复性工作,从而节省计算资源、提高处理效率。
  本文提出一种新的算法,通过前后比较相邻两帧画面的特征点信息,找出视频中连续出现的冗余物体,并在随后剔除那些在前一帧画面中已经出现过的物体,达到去除冗余,压缩画面,提升视频识别算法运行效率的目的。由于本算法的核心目的是压缩图像尺寸并提升视频识别算法效率,因此实验采用处理后的画面尺寸和视频识别算法处理时间指标判定预处理效果。将本文算法和不压缩情况下视频的尺寸和处理效果对比,发现本文算法可小幅提升视频识别算法效率。
  1 基于特征提取的视频预处理方法   本文主要通过匹配前后两帧的特征值过滤冗余信息,如图1所示。
  视频预处理算法基本步骤如下:当处理第k帧图像时,需要同时输入第k-1帧和第k帧图像。算法首先对第k-1帧图像进行特征提取,使用FAST[13]特征检测提取第k-1帧画面中的特征点,并使用BRIEF算法[14]进行特征点描述。将旋转FAST算法作为特征提取算法,是因为文献[15]在比较多种特征提取算法之后发现FAST是时间最优的选择。由于第k-1帧画面已经在上一轮循环中被识别过,因此从第k-1帧画面中提取出的特征点认为已经被识别而无需再次识别,这些特征点将视为冗余元素被从画面中剔除。在提取到第k-1帧图像特征之后,算法会用同样的方法提取第k帧图像特征,并在这两帧画面间作图像特征匹配。如果在第k帧画面中出现了此前没有出现过的新物体,或是画面中某个部分出现了较大变化,那么在这些改变的区域会出现大量新增的在第k-1帧画面中无法匹配的特征点。通过分析这些无法匹配的特征点,找出哪些需要重新识别。因此,在预处理时如果第k帧画面中的某个小区域内出现了超过某个数量而无法正常匹配的特征点,就可认为这个区域的画面内容出现了较大变化,需要利用识别算法重新进行识别。此时预处理算法会将这个区域截取下来作为一副单独的图像,并将截取下的画面传入识别算法。而如果两帧画面在某个对应的小区域内特征点都匹配成功,则说明该小区域内前后两帧画面没有显著变化,无需再次识别,可以剪裁掉。
  对于视频来说,变化区域往往远小于画面总面积,因此这种方法可以大大节省识别算法处理时间。
  2 核心计算方法
  2.1 帧间特征匹配
  图1的算法中,帧间特征匹配主要负责对比两帧视频特征,找出画面出现改变的部分。本文使用一个经过改进的ORB算法[16]寻找视频中出现变化的部分。参考最新改进的ORB算法[17-20]和SURF算法的最新改进方式[21],使用FAST角点检测算法提取角点。在计算角点时,本文采用FAST-9进行特征点提取,算法会在假定判定点周围选择16个采样点,并将采样阈值设定为9。当判定点周围超过9个点且与判定点的灰度值差距大于可接受范围时,判定该点为特征点。判断公式如下:
  式(1)和式(2)中, p表示位于采样中心的判定点,x表示在特征点周边选取的一个像素点,I(p),I(x)表述这两个像素点的灰度值。若某一点计算出的N大于9,说明这一点即特征点。
  在提取全部特征点之后,使用BRIEF算法对特征点进行描述。计算时,算法会在需要描述的特征点周围随机选取n个像素对并比较,记录这些像素对大小。一个特征点I的BRIEF特征值计算公式f(I)为:
  [T(xi,yi)]表示这两个像素值大小比较的结果,公式(4)给出[T(xi,yi)]的计算方法:
  在计算每一个特征点的BRIEF值时,会在特征点周围按照高斯分布随机选取128对像素点作为采样点。
  本文采用公式(5)计算第k-1帧特征点Si和第k帧特征点Tj模糊相似度[μ(Si,Tj)]:
  公式(5)中,[B(Si)][f(Si)]和[B(Tj)][f(Tj)]分别表示第k-1帧特征点和第k帧特征点的BRIEF特征值, [⊙]表示同或运算,Sum(n)表示将数字n转化为二进制并按位求和所得的值。由公式(3)可以看出,由于每个特征点的BRIEF值只有128位,因此每一对特征点对的模糊相似度[μ(Si,Tj)]取值范围将在0~1之间。[μ(Si,Tj)]=1表示两个点的特征完全匹配,是对应点的概率很高。[μ(Si,Tj)]=0表示两个特征点的特征完全不同,是对应点的概率很低。至此,对于属于原始图像特征点集S的点S1,S2,S3……Sn,和属于目标图像的特征点集T的点T1,T2,T3……Tn,可以定义一个特征点相似度集合:
  接下来计算两帧图像的特征点最佳匹配方案。
  假定第k-1帧图像中提取到M个特征点,第k帧中提取到N个特征点,为不失一般性,可以假定M≥N。需要在第k帧中找到一组不重复的特征点x1,x2,x3…xn,组成点集X,并在第k-1帧中找到另一组数量相同的不重复特征点y1,y2,y3…yn,组成点集Y,使得两个集合中的点满足如下条件:①集合X和集合Y大小相同;②集合X、集合Y中的特征点都是不重复且唯一的;③两个集合中,序号相同的两个点之间的模糊匹配度应当大于0.5。
  把满足上面条件的集合X和集合Y称为第k-1帧及第k帧的一个匹配方案,接下来计算这两个点集的总匹配度Smatch:
  式(7)中,n表示集合的长度。可以看出,第k帧和第k-1帧中的点可以有很多种匹配方案,这些匹配方案中,总匹配度Smatch是最大的一个组合,视作第k帧和第k-1帧的最佳特征点匹配方案并输出。
  2.2 切割画面
  2.2.1 画面分区
  切割画面时,首先将目标画面网格化,将画面分割成一张棋盘装网络,除了最右侧一列和最底部一行外,网络剩余位置的每一个网格都是边长为D的正方形。
  边长D计算公式:
  式(8)中,w表示图像的整体宽度,h表示图像的整体高度,D表示将图像切割成棋盘状网格之后每个矩形网格的边长。
  2.2.2 计算不匹配特征点占比
  通过画面分区得到多个D*D的网格图像,进一步计算哪些网格的内容发生了较大变化。依次统计每个网格中没有正确匹配的特征点所占比例,当这个比例大于一定阈值时即可认为这个网格在第k帧中发生了较大变化,应当重新识别。这个阈值的值可以由使用者結合需求自行拟定,因为不同的识别算法对这个阈值的要求会有所不同。根据经验,用第k-1帧中不可匹配特征点的平均密度作这个阈值较好。
  不匹配特征点占比计算公式如下:
  式(9)中,P表示不匹配特征点占比, m表示正在计算的D*D网格中特征点总数,[Ci]表示网格中第i个点的匹配情况,Ci计算方法如下:   若第i个点已经有匹配对象,则取0;若没有匹配对象,则取1。若计算后,P值超过指定阈值,则认为其是大变动区域。
  2.2.3 网格合并
  找出所有需要重新识别的大变动区域后,再将所有相邻的大变动区域编为一组,计算这组网格的宽度和高度,然后用一个矩形从这个区间里将这个大变动区域切割下来,传入识别算法。
  3 实验结果与分析
  为验证本文算法在视频处理时的效果,构建两个实验:①采用一段空旷街道道路视频,检验算法在画面主体变动不大,只有画面平移时的预处理效果;②采用卫星图像数据,检验遇到大尺寸图像时算法的预处理效果。
  仿真实验环境为Windows7操作系统,C++语言,使用OpenCV作基本图像处理。硬件平台i5-3470CPU,6GB内存,受客观条件限制,本实验没在真机上实施。实验采用VMware 9虚拟机,识别算法的卷积过程没有使用显卡。
  3.1 空旷街道车辆识别实验
  以一个第三方车辆识别算法为主算法,这是一个被训练专门用作车辆识别的YOLO算法。数据集采用leftImg8bit道路交通数据集,该数据集包括2 899帧的道路交通视频数据。试验中,依次传入各帧数据并记录预处理和不预处理的情况下图像识别算法性能。图2是实验节选的部分画面,其中图2(a)是本组测试的第一帧画面,图2(b)是本组测试的第二帧画面,图2(c)是对第二帧画面进行画面分区之后的效果,图2(d)是对前两帧画面进行特征匹配之后的结果,这里使用线段连接匹配成功的两个点, 图2(e)是对第二帧画面进行画面切割之后的结果。
  比较图2 (c)、图2 (d)后发现,第二帧画面与第一幅图重复的部分在经过预处理之后,被预处理算法成功删除,画面尺寸有了一定的缩小。同时,虽然第二帧画面整个左侧的狭窄部分都是新增画面,但由于下半部分的街道并没有可提取的特征点,因此认为无需再次识别而裁掉。
  从表1可以看出,本文的算法显著压缩了画面尺寸,主算法运行时间有了一定的减少。由于实验条件限制,本实验在虚拟机中使用CPU处理视频画面,因此处理单幅图像所用时间远远高于直接使用GPU的时间消耗。
  3.2 卫星识别实验
  以一个第三方人造卫星的视频识别算法为主算法,采用NASA Apollo7 3-M数据集,包括Apollo 7向地球拍摄46帧画面,每帧画面宽4 400像素,高4 600像素。实验方法是向主算法传入第一帧卫星画面之后,获取第一帧识别结果,然后继续将第一帧画面、第二帧画面和刚刚得到的识别结果作为输入,传入预处理算法,如图3所示。
  图3展示了人造卫星视频画面的预处理结果。实验中人造卫星始终处于画面中间位置,变化的部分主要是背景中的云层。从图中可以看出,虽然图中间和靠左部分的云层出现变化,但这些变化不是很大,并没有显著改变云层形态,因此实验认为不必传入识别算法。但画面右上角在第二帧忽然多出了一片云,这一画面显著改变了图像右上角的纹理结构,因此算法将这一部分单独裁剪出来。
  通过表2对比可以看出,本文的算法大幅压缩了画面尺寸,主算法运行时间有了一定减少。与此前几个实验不同,该实验在显著压缩画面尺寸的同时还显著缩短了运算时间。导致这一现象的原因是,裁剪之后的画面刚好裁掉了纹理特征最复杂的人造卫星,剩下部分的颜色变得很简单,只有黑白蓝3种颜色,纹理特征复杂度相比之前有了显著下降,因此整體效率大大提升。
  4 结语
  本文研究了一种视频预处理方案,通过切割视频画面中的一些区域达到缩小视频流尺寸的目的。这种预处理方法可以减小后面视频识别算法的运算量,最终达到加快识别速率的目的。
  实验表明,本文方法可以在保证画面计算的同时大幅度压缩画面整体尺寸,节约视频处理时间,提高主算法的执行效率。由于视频处理算法运行时间还受到模型结构的影响,因此针对不同的视频处理算法,本文提出的预处理算法效果会有一定的变动,但平均能够提升5%左右的性能。
  由于视频预处理是整个视频识别算法中的一步,尽管在预处理过程中可以过滤掉80%到90%的多余画面,但后面的识别算法性能并不会随之发生线性提升,特别对于一些复杂度较高的深度神经网络算法,由于运算深度很大,因此减小输入画面尺寸带来的性能提升比较有限。同时,由于预处理算法本身也需要耗费一定的时间,因此相应地有所降低预处理效果。
  参考文献:
  [1]李小利, 杨晓梅, 陈代斌. 基于块和低秩张量恢复的视频去噪方法[J]. 计算机应用研究, 2017(4):86-91.
  [2]罗斌. 断层图象插值的二维形变法[J]. 中国图象图形学报, 2018, 3(8):675-678.
  [3]LIU C,TIAN L,ZHOU Y,et al. Video content redundancy elimination based on the convergence of computing, communication and Cache[C]. Global Communications Conference. IEEE, 2017.
  [4]PHAM T Q,VLIET L J V. Separable bilateral filtering for fast video preprocessing[C]. 2005 IEEE International Conference on Multimedia and Expo, 2005.
  [5]WANG S,ZHANG X,LIU X, et al. Utility-driven adaptive preprocessing for screen content video compression[J]. IEEE Transactions on Multimedia, 2017, 19(3):660-667.   [6]REDMON J,FARHADI A. YOLOv3: an incremental improvement[J]. Computer Vision-ECCV,2018(9):1824-1831.
  [7]王辰,老松杨,胡晓峰. 视频中的文字探测[J]. 小型微型计算机系统,2002,23(4): 478-481.
  [8]YANG J,REN P,ZHANG D,et al. Neural aggregation network for video face recognition[C]. IEEE 2017 IEEE Conference on Computer Vision and Pattern Recognition,2017(2):5216-5225.
  [9]李超凡,陈庆奎. 基于学习算法SSD的实时道路拥堵检测[J]. 软件导刊,2018,17(6):12-16.
  [10]殷鹤楠, 佟国香. 一种基于CNN-AE特征提取的目标跟踪方法[J]. 软件导刊, 2018,17(6):2,26-30,35.
  [11]李辉,石波. 基于卷积神经网络的人脸识别算法[J]. 软件导刊, 2017,16(3):65-71.
  [12]匡青. 基于卷积神经网络的商品图像分类研究[J]. 软件导刊, 2017,16(2):120-125.
  [13]ROSTEN E,DRUMMOND T. Machine learning for high-speed corner detection[C]. Heidelberg:European Conference on Computer Vision,2006.
  [14]CALONDER M,LEPETIT V,STRECHA C,et al. BRIEF binary robust independent elementary features[EB/OL]. https://blog.csdn.net/u010682375/article/details/72824212.
  [15]王鹏,赵汗青. 基于结构光的特征点提取方法研究[J]. 软件导刊,2017,16(12):30-33.
  [16]RUBLEE E,RABAUD V,KONOLIGE K,et al. ORB: an efficient alternative to SIFT or SURF[EB/OL]. https://wenku.baidu.com/view/ab34a69e51e79b896802264c.html.
  [17]MA D,LAI H C. Remote sensing image matching based improved ORB in NSCT domain[J]. Journal of the Indian Society of Remote Sensing, 2019(10):461-468.
  [18]WANG M,NIU S,YANG X. A novel panoramic image stitching algorithm based on ORB[C]. Sapporo:International Conference on Applied System Innovation. IEEE,2017.
  [19]YING Z,FAN Y,YING G,et al. Fast image stitching algorithm based on ORB algorithm and OECF model[J]. Computer Engineering & Applications, 2017(3):1240-1249.
  [20]HE S W,WEI Z G,HONG L Q. Robot vision navigation based on improved ORB algorithm[C]. International Conference on Intelligent and Interactive Systems and Applications, 2017:134-140.
  [21]YANSHAN L,CONGZHU Y,LI Z,et al. A novel surf based on a unified model of appearance and motion-variation[J]. IEEE Access, 2018(6):1-2.
  (責任编辑:杜能钢)
  收稿日期:2019-04-21
  基金项目:国家自然科学基金青年项目(61402288)
  作者简介:张励扬(1991-),男,上海理工大学光电信息与计算机工程学院硕士研究生,研究方向为图像处理;赵逢禹(1963-),男,博士,上海理工大学光电信息与计算机工程学院教授、硕士生导师,研究方向为计算机软件与软件系统安全、软件工程与软件质量控制、软件可靠性;刘亚(1963-),女,博士,上海理工大学光电信息与计算机工程学院讲师,研究方向为软件可靠性。本文通讯作者:赵逢禹。
转载注明来源:https://www.xzbu.com/8/view-15217625.htm