其中,全局运动矢量估计是整个稳像系统的关键,它决定了稳像精度和耗时性。
1.1 运动矢量估计算法
通过对高速路抖动特点的分析,并且对目前在电子稳像中常用的运动估计算法进行各自优缺点的比较,本系统决定采用灰度投影算法进行全局运动矢量估计。
灰度投影算法:投影法是利用图像总体灰度变化规律来确定图像运动矢量的一种方法,它不必对图像上的每一点做相关运算,而是利用图像的灰度投影曲线做一次相关运算,因此它的运算量小,运动估计速度快,容易满足实时性要求,同时抑制噪声的能力较强,并且在精度上也能较好地满足要求。
该算法首先通过投影公式将每一帧二维图像映射成两个一维波形,其行列灰度值累加表示为:
式中:Ik(i)代表第k帧图像第i行的灰度值,Ik(i)代表第k帧图像第j列的灰度值,Gk(i,j)为第k帧图像上(i,j)处的像素灰度值。
为了避免因图像抖动导致图像边缘信息发生变化,而影响互相关计算出的互相关曲线峰值,在进行互相关计算前,对图像进行余弦滤波,去除图像边界信息波形而完整保留中心区域波形,减小边界信息对互相关计算的影响,提高计算精度。投影滤波后,对参考帧和当前帧各分量的两条曲线进行相关计算,找到两条曲线的惟一谷值,即可确定出当前帧相对于参考帧的行列运动偏移量。相关运算的公式为:
式中:colc(n)和colr(n)分别为第i帧和参考帧的在一个方向上的灰度投影值,J为两曲线中进行相关运算的单位长度,m为位移矢量相对于参考帧在一侧的搜索宽度,即允许的最大正负抖动范围,m在1至2m+1间取值。当C(k)为最小值时,此时k=Kmin,则第i帧图像相对于参考帧图像在一个方向上的位移矢量为:
以水平方向为例,vi为正时,表明当前帧相对参考帧向右移了|vi|个像素;为负时,表明向左移了|vi|个像素。同样的方法,可以得到垂直方向的位移矢量。[page]
采用上述方法进行实验,结果如图2所示:
通过以上结果可以看出,直方图均衡化在整体增强图像的同时,也对图像噪声进行了增强,图像边缘清晰度较差,图像偏暗;而采用小波边缘增强法处理的图像,没有很明显的噪声影响,同时图像细节也很好地保留下来而且图像对比度也得到了增强。
2 雨雾天气下车载视频稳像的实验
2.1 实验方法
选取一段手动添加抖动的公路路段视频进行试验,以OpenCV结合VC++6.0作为软件开发平台编写车载稳像算法,对视频进行处理,最后将视频输出到显示器上显示。
[page]
2.2 运动矢量的估计[page]
实验中手动加入的水平和垂直方向的抖动量分别为-9和12;而实验结果显示,对未经预处理的雾天图像,由于对比度很差,采用灰度投影直接对其进行运动矢量检测时,检测到的水平和垂直方向的运动矢量分别为-3和5,误差较大;而图3(b)是经过均衡化处理后,检测到的水平和垂直方向运动矢量为-6和8,精度有所提高;最后图3(c)是采用小波边缘增强法对图像进行对比度提高,检测的水平和垂直方向的运动偏移量分别为-7和10,虽然还不能完全准确地检测出实际偏移的运动矢量,但精度要高于直方图均衡化处理后的检测结果。
2.3 运动补偿
本文采用两两相邻帧进行运动矢量估计,得到的是相对位移矢量,而每一帧的绝对运动参数是前N-1个相对位移矢量之和。得到每一帧的绝对运动参数后,在采用kal-man滤波器进行运动曲线平滑处理,将处理后的参数按相反方向对当前帧进行平移,即可得到稳定后的图像。实验结果如图4所示:
3 实验结果分析
算法在主频Core(TM)2 Duo CPU 2.00 GHz,内存2.00GB的PC机上,使用OpenCV结合VISUAL C++编程。实验结果显示,在实时性方面,稳定320*240的图像序列平均时间为0.025 18 s,大于25帧/s的图像实时性处理要求。稳像精度上,这里使用PSNR(Peak Signal To Noise Ratio)作为稳像效果的一种评价标准。其计算公式如下:
其中均方误差MSE表示两帧图像间每个像素的偏差值。当两幅图像内容变化越小,PSNR值就越大,两幅图像完全一样时,达到最大值。其中相邻5帧图像稳像前后PSNR值比较如下:
由表1中数据可以看出,经过本系统处理后的视频帧间重合度有了明显地改善。
通过对50帧视频图像序列进行的实验表明,经过该方法处理后视频的晃动幅度明显得到了改善,基本达到了稳像的要求。
4 结论
由于恶劣天气造成图像对比度降低,而直方图均衡化处理效果不佳,造成灰度投影在车载视频稳定中对运动矢量估计精度的降低甚至失效。针对这一情况,本文采用小波边缘增强的方法对图像进行预处理,实验表明,该方法有效提高了灰度投影算法的估计精度,并且算法也满足实时性要求。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』