一种结合特征点匹配与仿射变换的电子稳像算法
2022-05-07柯黎明何嘉奇王少东
何 涛, 柯黎明, 何嘉奇, 王少东
(1 湖北工业大学机械工程学院, 湖北 武汉 430068; 2 现代制造质量工程湖北省重点实验室, 湖北 武汉 430068)
在电子后视镜实际使用中,风激励及路面颠簸会使显示的视频出现抖动[1-2],不仅影响视频质量,而且会导致较差的显示效果。目前,视频防抖[3]按照系统构成及实现原理可以分成机械稳像,光学稳像和电子稳像等3类。机械稳像通过惯性传感器检测待稳平台的运动状态变化,驱动稳像机构,反向补偿载体的运动,达到机械稳像的目的;光学稳像则通过调整镜片的位置,反向补偿光轴的偏移量来实现稳定视轴的目的;电子稳像运用数字图像处理技术,通过帧间运动矢量估计及图像的运动滤波补偿,达到电子稳像的目的。电子稳像技术成本低、轻便且稳像精度高,常被用于解决视频抖动问题。
近年来,国内外研究者均提出了电子稳像的不同方法。Amintoosi等(2021)在SIFT的基础上进行修改,提出了一种快速图像匹配基准的算法,在特征点提取的速度上有较大的提高; Li等(2015)[3]提出一种基于目标跟踪算法和Kalman滤波的电子稳像算法,为运动滤波提供了新的研究方法;Zhang等(2019)[4]基于ORB和RANSAC算法改进的特征点提取算法,降低了误匹配率;同年,Zhou等[5]在RANSAC算法基础上,提出新的优化策略,使特征点匹配效率得到一定的提升;Verma等(2020)[6]提出的数字视频稳像算法通过改进特征提取,采用快速的特征点提取,估计全局运动矢量,然后对运动进行滤波和补偿,在视频稳像后处理有较好的算法鲁棒性。但在车载实时电子稳像上表现出较差的算法鲁棒性及实时性。针对上述问题,本文提出了一种结合特征点匹配与仿射变换的电子稳像算法。在保证计算精度的前提下,通过建立视频提取器,对冗余信息过多的原视频帧序列进行变步长的抽样处理,提取高信息度帧序列。在提取后的高信息度的帧中,采用分区处理进行固定角点数的SURF检测,接着对RANSAC算法做应用上的优化,然后对匹配对进行筛选,确定最终代入单应性仿射变换矩阵的计算项中的匹配对,通过仿射变换模型分别计算出各区域的运动矩阵,再用卡尔曼滤波器对估计的各区域运动矩阵参数进行平滑处理,利用异加权值的运动估计方法,计算出全局运动矩阵参数,最后用全局运动矩阵参数对待处理帧进行图像补偿,得到稳定的视频帧列。
1 原视频帧序列的抽样处理
目前的电子后视镜视频获取设备中,由于高帧率的特性,其视频帧序列中各帧之间会产生很多重复信息(冗余信息),造成计算数据量过大。为提高本文算法在实时电子稳像技术上的应用效率,提出建立一个视频提取器,该视频提取器按照一定比例的步长,提取高信息度帧序列。在设置提取步长时,若设置的步长过小,原视频抽样间距过小,依然存在过多的冗余信息,后续的计算量依旧很大;若设置的步长过大,帧之间的关联性较低或者很低,将影响后续的角点检测匹配对的提取,导致电子稳像算法精度降低。故而在设计视频提取器步长时采用动态步长值,通过车速传感器获取车辆运动速度来动态调整步长值:0 运动估计方法是电子稳像技术中最关键的步骤之一。运动估计主要是计算出帧间的运动(即全局运动)。在计算全局运动的过程中,现有的特征点匹配及光流跟踪算法易受场景中目标运动的干扰,导致在计算全局运动时,产生鲁棒性差的问题。针对上述问题,在运动估计上,提出新的解决思路,结合车载电子视镜显示特点,首先对视频帧进行分块处理,并设置每块相应的角点阈值,采用尺度不变的角点检测算法SURF进行角点检测,得到图像帧的特征点集,对特征点集采用优化后的RANSAC算法进行匹配对处理,去除错误的匹配对,然后对匹配对进行异加权值的仿射变换,求出全局的运动估计。 因受外界场景复杂度和光照等因素的影响,在特征点匹配过程中会出现误匹配对的现象。针对现有的RANSAC算法在剔除误匹配过程中存在的问题,如在局部产生的最优值时,未提前结束该方法,造成计算资源的大量浪费。本文基于实际应用优化RANSAC算法,通过设置有限次的迭代K值,及缩小迭代方向角θ,来降低RANSAC算法的理论复杂度,提高算法的运算时效性。对车载成像特点进行分析,根据《公路工程技术标准》(JTG B01-2003)规定的公路最大坡度不应大于9%。通过坡度的计算公式坡度=(高程差/水平距离)×100%,代入参数,得-5.143°≤θ≤5.143°,故RANSAC算法的迭代主方向为图1所示的角度范围内。 图 1 迭代主方向 数据集内由符合预测模型的模型上点及不符合预测模型的模型外点组成,模型外的点含有误匹配点或者成为噪声的干扰点。通过不断迭代和更新模型的方法,寻找一个最佳的单应性矩阵H,使满足该矩阵的模型上点数据个数最多,矩阵H则满足两帧图像像素点坐标之间的变换关系: (1) RANSAC算法中, (2) 式中,p为置信度,ε为数据集中预测模型外的点所占的比例,m为预测模型中最小的数据集元素个数。 根据车身占电子视镜图像三分之一的成像特点,将图像分成车身区域及非车身区域,分别计算两块区域的运动参数,分区域之后采用具有6参数的仿射变换模型,计算全局运动估计。 根据仿射变换模型,xn为参考帧上的特征点,xn-1为匹配帧上对应的匹配点,则满足 (3) 式中:A体现的是图像间的旋转及缩放变换,B则表示的是图像间的平移运动,T表示图像间的变换关系,则可表示为: (4) 代入3组不共线的匹配对点的坐标 可得到 (5) 解上述方程即可得到运动参数矩阵 (6) 车身区域的运动参数矩阵为M1,对应的运动估计参数权值为k1,非车身区域的运动参数矩阵为M2,其运动估计参数权值为k2。则实际相机运动参数矩阵M满足 (7) 运动滤波采用卡尔曼滤波方法,其基本原理是采用前一时刻的预测值与当前时刻的真实值,通过处理,计算出当前预测模型下的估计值,其状态与测量转移方程,满足: (8) 卡尔曼滤波采用预测模型的估计值来预测下一时刻状态值,预测值和下一时刻的估计值之前关系: (9) (10) x(k|k-1)是预测模型的预测值,P(k|k-1)是预测模型状态协方差矩阵的预测值,x(k|k)是预测模型的校准值,P(k|k)为预测模型前一时刻的状态协方差矩阵预测值,K(k)为卡尔曼增益。由x(k|k)和P(k|k)求解出k+1时刻x(k+1|k+1)和P(k+1|k+1)。上述为完成一次预测值的估计和校准步骤,后续的预测值也重复此过程。 Fcompen=MFsrc (11) 为了对本文提出的电子稳像算法进行有效性验证,实验在同一硬件和软件条件下进行。在车载视频实时电子稳像处理,实验使用的是嵌入式系统环境。硬件运行环境CPU为Cortex-A53 八核CPU,主频最高1.4G Hz。软件运行环境:运行系统为Ubuntu16.04,运行软件Image Stabilization V3.0,视频分辨率为640×480。在车辆怠速情况下,采用Li[3]等提出的一种基于目标跟踪算法的电子稳像算法、Verma[6]等人提出的数字视频稳像算法以及本文提出的电子稳像算法,对车载视频进行实时电子稳像处理,并从稳像效果对比和稳像图像质量及耗时对比两方面对稳像算法进行评价。 实验稳像效果对比实验数据如图2所示,图像中的竖线是为了更直观地比较稳像效果。在原视频帧序列中,随机抽取第4、22、38、52、75帧进行对比分析,发现以第4帧为基准,第22帧出现向左的较大抖动量,第38、52帧出现向左的轻微抖动量,而第75帧则出现向右的较大抖动量。实验结果表明原视频帧序列有较大的抖动量。 图 2 电子稳像效果实验对比 对比分析Li算法,以第4帧为基准,第22、75帧出现向左的轻微抖动量,第38帧有微小的向右抖动量量,第52帧出现向右的轻微抖动量。实验结果表明Li算法有良好的稳像效果。 对比分析Verma算法,以第4帧为基准,第22、52帧出现向左的轻微抖动量,第38帧出现较大的向左抖动量,第75帧出现向右的轻微抖动量。实验结果表明Verma算法有一定的稳像效果,但算法稳像性不高,出现过补偿的视频帧。 对比分析本文所提出的算法,以第4帧为基准,第22帧出现向左的微小抖动量,第38、75帧出现微小的向右抖动量,第52帧出现向左的轻微抖动量。实验结果表明,本文所提出的算法有优良的稳像效果,且算法稳像性高,未出现过补偿的视频帧。 采用峰值信噪比PSNR值、结构相似度指数SSIM、单帧处理时间SFPT以及每秒帧率FPS作为客观质量评价指标来测试算法的有效性。其中,峰值信噪比PSNR值越大、结构相似度指数SSIM值越接近1,表明最终的稳定性越好;单帧处理时间SFPT越小、每秒帧率FPS越大,表明电子稳像算法的实时性越好。稳像图像质量及耗时实验对比数据如表1所示。 表1 车载视频实时处理实验对比结果 通过表1可以看出,在分辨率为640×480的车载视频实时电子稳像处理实验中,3种算法较原视频帧序列均有显著的提升,并表现出算法的各向异性,即3种算法在不同的评价方式上具有不同的算法优越性。 在峰值信噪比PSNR值,原视频帧序列平均值为11.894,Verma算法PSNR值最高,为16.118,较原视频帧序列PSNR值提升35.51%,其次是本文算法,PSNR值为15.720,较原视频帧序列PSNR值提升32.77%,再次是Li算法,PSNR值为15.264,较原视频帧序列PSNR值提升28.33%。 在结构相似度指数SSIM,原视频帧序列平均值为0.460,Verma算法SSIM值最高,为0.737,较原视频帧序列SSIM值提升60.22%,其次是本文算法,SSIM值为0.726,较原视频帧序列SSIM值提升57.83%,再次是Li算法,SSIM值为0.725,较原视频帧序列SSIM值提升57.61%。 在单帧处理时间SFPT,原视频帧序列平均值为16.67 ms,Li算法SFPT值最高,为60.20 ms,较原视频帧序列SFPT增加261.13%,其次是Verma算法,SFPT值为55.03 ms,较原视频帧序列SFPT增加230.11%,再次是本文算法,SFPT值为35.93 ms,较原视频帧序列SFPT增加115.54%。 在每秒帧率FPS,原视频帧序列平均值为60,本文算法FPS值最高,为28,较原视频帧序列FPS减少53.33%,其次是Verma算法,FPS值为18.33 ms,较原视频帧序列FPS减少69.45%,接着是Li算法,FPS值为16.67 ms,较原视频帧序列FPS减少72.22%。 通过客观评价的数据表明,本文所提出的电子稳像算法在单帧处理时间和帧率的实时性评价指标上有优异表现,在峰值信噪比和结构相似度指数的图像质量评价指标上有良好的结果。 本文通过对分区进行一定阈值的SURF角点检测,采用优化后的RANSAC算法,进行匹配对的筛选,对匹配对进行不同的加权值,提高全局运动估计精度,再用卡尔曼滤波器对估计的全局运动参数进行平滑处理,并用平滑后的参数对待处理帧进行图像补偿,得到稳定的视频序列。实验表明:本文提出的算法对原始视频进行稳像具有很好的稳像效果,图像的PSNR值提升32.77%,SSIM值提升57.83%。与Li等人以及Verma等人提出的稳像算法对比,本文算法具有优良的稳像效果,在实时电子稳像上具有更好的实时性,在稳像后的图像质量上有不错的效果。2 运动估计
2.1 优化后的误匹配剔除算法
2.2 加权值的全局运动估计
3 运动平滑与图像补偿
3.1 卡尔曼滤波器
3.2 图像补偿
4 实验结果与分析
4.1 稳像效果对比
4.2 稳像图像质量及耗时对比
5 结论