一种基于Star算法的多路视频稳像方法研究
2023-01-29王栋梁徐啸康白宏阳郭宏伟
王栋梁,徐啸康,白宏阳,郭宏伟
(1 中国兵器工业试验测试研究院 华阴 714200;2 南京理工大学能源与动力工程学院 南京 210094)
引言
随着科技的进步,现代化战争逐渐向着信息化、智能化方向发展,其中制导武器的发展极为迅速。制导武器因其在战场上能够实现自主、高效费比地精准打击而在战场上扮演的角色越来越重要。在图像导引头中捷联式导引头与框架式导引头相比,有着抗过载、体积小、成本低等优势[1]。但捷联式图像导引头具备这些优势的同时也因导引头与弹体固连的结构导致图像导引头获取的目标视频会随着弹体扰动而产生抖动,严重影响了后续的目标跟踪检测精度。此外,在实际应用中发现单目图像导引头存在视野窄等弊端。借鉴仿生学原理,多路复眼图像导引头通过多路光学设计,可实现大视场并行探测,同时又不需要框架平台,成本低。抗过载能力强,近几年备受国内外研究学者的关注。由于无稳定平台,解决捷联式复眼导引头的多路视频抖动的稳像技术是复眼导引头形成装备需要突破的关键技术之一。
通常视频稳像技术可分为机械式稳像、光学稳像和电子稳像技术三类[2]。机械式稳像技术是最早被应用的稳像技术,通常需要陀螺稳定平台衰减低频震动或采用减震装置来隔离载体的抖动来实现稳像。光学稳像是通过采用光稳元件实现,当仪器受到载体扰动,稳像元件能够借助惯性稳定机构保持稳定不动,满足稳像要求。相比上述两种方法,电子稳像技术则采用纯数字图像处理的方法,具备成本低、精度高、速度快等优点,成为稳像技术的重要研究方向,也更适用于解决捷联式图像导引头存在的视频抖动问题。
1 特征点提取算法
传统电子稳像主要分为3 个步骤:运动估计、运动补偿、图像修补[3]。其中运动估计步骤最为重要,运动参数估计的准确与否很大程度地决定了后续视频稳像的质量。目前主流的运动参数估计方法有块匹配法、灰度投影法以及特征点匹配法[4,5]。块匹配法对选取块的尺寸大小十分敏感,灰度投影法在灰度信息单一的场景中处理效果较差,且这两种方法易受背景影响,多应用于只有平移运动的参数估计,而基于特征点匹配的方法对平转、旋转以及缩放等变化场景皆有较好的估计效果[6]。
常用的特征点检测方法主要有:SIFT(Scale Invariant Feature Transform,尺度不变特征变换)算法、SURF(Speed-Up Robust Feature,加速鲁棒特征提取)算法、FAST(Features from Accelerated Seg⁃ment Test,角点检测)算法等。2004 年,SIFT 算法被D.Lowe[7]提出,该算法利用高斯差分算子结合梯度直方图完成特征的描述,具有尺度、旋转、光照以及平移等多方面的不变性,随即用于电子稳像算法中特征点的提取,但是计算量大。2006年,Bay 等人[8]针对SIFT 算法在初始特征筛选步骤太过耗时的缺陷,提出了SURF算法,其利用积分图像提升了计算效率,比SIFT 算法快近3 倍,不足之处是会增加误匹配率。2006年,E.Rosten和T.Drummond[9]提出了一种简单快速的特征点检测方法,并在2010 年稍作修改发表了FAST。FAST 特征点检测算法通过像素点之间像素值的比较从而确定特征点的位置,也正因此被认为是最快的特征点检测算法,然而它不具备图像尺度不变性。M.Agrawal 等 人[10]提 出 了CenSurE(Center Sur‐round Extremas,中心环绕极值)特征提取方法,采用了双层滤波器来近似高斯拉普拉斯算子,大大减少了计算时间,然而由于其使用的是方型滤波器,在应对旋转45º时性能较差。针对这个缺点,Star 特征提取算法[11],采用星型滤波器,由方形滤波器与旋转45º后的方形滤波器组合而成。主要分为以下三个步骤:
①使用双层滤波器构建尺度空间
CenSurE 构建尺度空间时采用简单的双层滤波器来近似高斯拉普拉斯。图1 所示为方型滤波器,又称CenSurE-DOB。CenSurE-DOB 滤波器的内核尺寸为(2n+1)×(2n+1),外核尺寸为(4n+1)×(4n+1)。设In为内核权重系数,On为外核权重系数。为了使这种滤波器的DC 响应为0,权重系数需满足等式:
图1 方型滤波器Fig.1 CenSurE-DOB
对尺度进行归一化:
星型滤波器,即CenSurE-star,由方型滤波器和一个45°旋转的方型滤波器组合而成,如图2 所示。每个像素点的中心环绕哈尔小波响应值也由原始积分图像和45°旋转积分图像叠加得到。CenSurE-star 生成尺度空间时采用7 个尺度,检测子是在每一个像素上将滤波器与影像进行卷积运算,并利用积分图像加速运算进程,从而获取该像素对应尺度的空间值,循环计算各尺度便可得到近似的LoG空间。
图2 星型滤波器Fig.2 CenSurE-star
②检测局部极值点
采用非极大值抑制的方法检测尺度空间极值点作为候选特征点。将尺度空间每个像素点与本尺度层的8 个邻域点和上下相邻两尺度层的18 个邻域点进行响应值比较,滤除小于设定阈值的极值点。
③滤除边缘上的不稳定点
采用尺度适应的Harris 方法计算主曲率[12],表达式为:
式中:Lx、Ly为响应函数L在x和y方向的偏导,通过计算Ha的迹和行列式即可计算出相应的主曲率,主曲率阈值设为10。滤除大于阈值的候选点,即剔除边缘响应,剩余的候选点即为包含了位置和尺度信息的CenSurE-star特征点。
Star特征提取算法不仅提供了尺度不变性,且稳定性好、计算效率高。本文基于Star算法,设计了Star与光流法结合的特征提取算法,加快了前后帧特征点的提取速度,降低了特征点的误匹配率;同时针对多路抖动视频产生的并行稳像问题,利用了并行开发库的并行处理思路,提出了先对图像进行分块,后对图像块并行提取特征点的解决措施,大幅度减少了稳像耗时。
2 单路稳像算法设计
2.1 运动估计
运动估计模块首先对待处理的抖动视频提取连续两帧图像,灰度化处理完提取帧,改进后的特征点提取算法选取了Star算法提取当前帧的特征点,记做(xi,yi),然后利用金字塔光流法预测下一帧对应的特征点(xi',yi')。金字塔光流法的原理主要是:首先对相邻两帧图像进行分层(方便理解,假设为3层)处理,然后计算当前帧已提取的特征点U0在各个层中的对应的点U1、U2和U3,接着从金字塔最高层开始,以U3作为下一帧中最高层的初始点V3计算当前最高层中的最小误差点V'3以及得到相应的光流,再由计算出来的光流找到下一帧中第二层的V2作为初始点,经过相似计算后得到第二层的最小误差点V'2,以此类推最终得到第0层的最小误差点V'0,即特征点U0在下一帧中对应的特征点。
如图3所示,金字塔光流法利用了当前帧已提取出来的特征点信息去跟踪预测下一帧对应的特征点,加快了特征点的提取速度,提升了特征点匹配的准确率。
图3 金字塔光流法原理图Fig.3 Pyramid optical flow principle diagram
随后,依据前后两帧匹配特征点的位置(xi,yi)和,由计算公式(4)可得出前后两帧图像间的仿射变换矩阵H:
其中,H=,参数a11、a12、a21、a22表示视频帧间的旋转以及缩放部分,参数a13和a23则表示视频帧间的平移运动。上述运动估计步骤具体流程如图4所示。
图4 改进后的运动参数估计步骤流程图Fig.4 Flow chart of improved motion parameter estimation steps
2.2 运动平滑
相机在拍摄过程中,相机的运动矢量通常由主观运动矢量和随机抖动矢量结合而成,运动平滑步骤则需要滤除随机抖动矢量,保留相机的主观运动矢量,使得稳像后的视频流运动轨迹平滑,以提升视频稳像效果。
Kalman滤波器是常用的滤波器之一,它采取预测值加上观测值的方法来计算当前时刻的估计值。本文采取Kalman滤波器对上述求出的运动参数做滤波平滑处理[13,14]。预测模型的具体计算公式为:
上式中,X(t|t-1)为第t帧对应状态预测量,X(t-1|t-1)为第t-1 帧对应状态的最优估计值,P(t|t-1)为第t帧对应的状态协方差矩阵,F为系统转移矩阵,Q为预测噪声的方差阵。
Kalman滤波器的更新模型具体计算公式为:
上式中,M(t)为第t帧的Kalman 增益,Z(t)为观测矩阵,I为单位矩阵,R为测量噪声的协方差,P(t|t)为滤波后的协方差,H为均方误差。
2.3 运动补偿
根据已分离出来的抖动分量对图像进行补偿。首先,计算相邻两帧之间的运动矢量∇Vk,累加得到当前帧图像的绝对运动矢量Sk,得到每一帧图像的绝对运动矢量Sk后,对Sk做平滑滤波,得到平滑后的绝对运动矢量Sk',则Sk'-Sk就是每一帧图像的补偿运动矢量,然后,加上补偿运动矢量后的图像序列,则可得到最终稳像后的视频。
3 多路视频的并行稳像及加速方法设计
由于单目导引头的视场受限,弹体在实际飞行中需要采用多目导引头,亦称复眼导引头,以提供一个更广阔的视野。然而复眼导引头受弹体抖动的影响也随多目的数量被放大,由于多路视频的同时输入,对弹载处理器资源造成了一定的压力,多路抖动视频存在实时数字稳像的困难。
3.1 并行开发库
目前对于图像处理程序的并行化处理主要通过硬件和软件两个方面去实现。硬件方面主要是通过GPU、DSP、Intel多核处理器等多核平台进行加速,软件方面主要是利用并行化库对软件程序进行并行改造。当前常用的并行化库有MPI(Message Passing Interface,消息传递并行编程环境)和OpenMP(Open Multi-Processing,共享存储并行编程)。MPI在并行规模上伸缩性很强,适用于个人电脑以及超级计算机,但缺点是编程麻烦且并行效率低、内存开销大;OpenMP 是一套共享存储方式并行程序接口,采用Fork-Join 模型来实现程序的并行化,无需再进行复杂的线程创建、同步、负载平衡和销毁工作,应用到多核结构上并行效率高、内存开销小,因此可利用OpenMP并行开发库对多路输入视频进行并行化稳像处理。
3.2 并行加速处理
针对稳像算法中耗时较多的步骤:运动估计以及运动滤波,设计改进后的并行稳像算法步骤流程图如图5所示:
图5 并行稳像算法步骤流程图Fig.5 Parallel video stabilization algorithm step
第一步:对输入的多路视频进行帧缓冲、循环提取连续两帧图像以及完成图像灰度化预处理;
第二步:基于并行化库OpenMP对预处理完后的当前帧先分块再并行提取各图像块特征点,完成当前帧特征点的提取后进而并行采用光流法跟踪提取下一帧的特征点;
第三步:对前后帧匹配的特征点,并行计算出各自对应的仿射变换矩阵H1、H2……Hi(i=1,2......n);
第四步:对上述通过仿射变换求出来的运动矢量,采用卡尔曼滤波器并行滤波,滤除各路的随机抖动矢量[15];
第五步:为各路滤波后的运动矢量计算对应的补偿运动矢量,各路图像序列加上补偿运动矢量,完成视频稳像。
具体并行化处理程序示例如下:
#pragma omp parallel sections
#pragma omp section
{第1路当前帧特征点提取}
#pragma omp section
{第2路当前帧特征点提取}
……
#pragma omp section
{第n路当前帧特征点提取}
其中OpenMP 指导语句“#pragma omp parallel sections”用来明确开启多线程的起始点,指导语句“#pragma omp section”用来明确子线程的起始点。
4 实验与分析
4.1 实验设置
本文最终选取了两种平台进行所设计算法性能的测试比较:PC 端与NVIDIA 的嵌入式开发板TX2,其中PC 端硬件配置如下:Intel(R) Core(TM) CPU i7-7700@3.60 GHz,16 G 内存,操作系统为Windows 10。软件平台选取包含Opencv 库(3.4.3 版本)的Visual Studio 2013。TX2 的配置如下:操作系统为Ubuntu 16.04,编译器为GCC 6.1版本。抖动视频选取OTB100 数据集中的BlurCar系列作为输入测试视频。
4.2 评价指标
帧间峰值信噪比PSNR 是广泛用于评价电子稳像效果的指标之一,通过比较连续两帧图像之间像素值的变化,最终客观、定量地评价稳像算法的好坏。计算公式如下:
上式中EMSE为帧间均方差,W、H 分别为图像长宽,I(x,y)为当前帧点(x,y)处的像素值,I'(x,y)为下一帧点(x,y)处的像素值,Imax为当前帧中图像最大像素值。前后两帧图像之间RPSNR值越大,意味着视频前后两帧重合度越高,视频稳像效果越好。
4.3 单路稳像效果比较
仿真测试视频选取OTB 100 数据集中的Blur系列视频以及外场试验拍摄的旋转抖动视频。本文选取近几年的稳像算法进行比较,分别是酒锐波等人[16]的基于FAST-9 角点检测与光流法结合的稳像算法和曾强等人[17]的基于SURF 特征提取算法加 上BRIEF(Binary Robust Independent Elemen‐tary Features,二进制特征描述)运动估计的稳像算法。
图6、图7 为上述方法在复杂车辆抖动场景、旋转抖动场景下的两种抖动视频中提取的特征点以及前后帧特征点匹配的效果图。
图6 场景1算法特征点匹配图对比Fig.6 Scene 1 feature point matching map comparison
图7 场景2算法特征点匹配图对比Fig.7 Scene 2 feature point matching map comparison
观察在上述不同场景下的特征点提取以及匹配效果图,可以发现,对当前帧提取特征点后,FAST-9 算法提取得到的特征点呈现聚簇的现象,而SURF 算法与Star 算法提取到的特征点较均匀。随后用光流法跟踪提取下一帧相应的特征点,使用BRIEF 对三种算法提取到的前后帧特征点进行特征描述进而进行特征点匹配。在特征点匹配图中,近乎水平的直线表明前后帧特征点获得了准确的匹配,再观察可知,FAST-9 算法与SURF 算法在场景1中均存在数量较多的误匹配点,而改进后的Star算法近乎没有误匹配点,针对旋转变化大的场景2,FAST-9 算法与SURF 算法的准确匹配率急剧下降,而改进后的Star算法依旧保持较高的准确匹配率。综上2种典型场景下的特征点匹配效果图,可以看出改进后的Star 算法相比另外两种算法,可以更好地适应各种复杂背景下的特征点提取与匹配。
三种算法针对上述提到的BlurCar 系列视频在PC 端以及TX2 两种平台下的具体稳像参数对比如图8以及表1所示。
图8 各场景下各算法稳像后提升PSNR对比Fig.8 Comparison of improved PSNR after image stabilization in various scenes
由表1 可以看出,本文算法稳像后的视频在PSNR 提升方面略优于另外两种算法,在PC 端以及TX2 平台下稳像速度方面则有着明显优势,能够较好地满足实时稳像的需求。
4.4 并行稳像速度分析
为了定量对比串行与并行的稳像速度,本文选择输入同一抖动视频BlurCar2。鉴于创建多线程的过程也会耗费时间,因此分别选取2 路、4 路和8 路同时输入的情况作为串、并行稳像耗时比较。完成对整个抖动视频的稳像操作后,再由已知的视频帧数求出平均每帧稳像耗时。两种平台下的具体耗时对比如下表2所示:
表2 串、并行稳像速度对比Table 2 Serial and parallel image stabilization speed comparison
由表1 观察可知:在PC 平台下,多路视频输入的情况中,并行稳像的平均每帧耗时比串行稳像耗时依次减少了56.57%、59.64%和54.36%。相应的在TX2 平台下,并行稳像的耗时也同样减少了34.26%、29.76%和27.74%。综上可见,改进后的稳像算法在应对多路抖动视频的稳像问题上,极大程度减少了稳像步骤的耗时,能够较好地满足多路实时稳像的要求。
5 结束语
本文对电子稳像算法中运动估计模块进行了研究,基于Star特征点提取算法,采用光流法跟踪预测下一帧特征点,以BRIEF 二进制特征描述算法描述特征点,实现了图像帧间的运动估计,最终完成了单路视频的稳像。在此基础上,采用OpenMP 并行开发库对稳像算法进行了并行改造,实现了多路输入视频的并行实时稳像。最后,基于OTB100 数据集的BlurCar 系列视频,本算法在PC 平台下对4 路抖动视频并行稳像的结果参数为:PSNR 平均提升4.62 dB,单帧耗时平均为14.51 ms。经实验比较证实,本文的多路视频稳像方法在速度以及稳像效果上提升明显,具有一定的实际应用价值。