运动估计从技术分类分主要有块匹配算法和点递归算法。块匹配算法的运动估计精度通常比点递归算法略低,但是由于它的较少的硬件复杂度,简单的运算量,位移跟踪能力强,且容易实现,因此对于实际运动来说被认为是最普遍,最通用的方法,数字视频压缩标准H.261和MPEG1,2等都采取了块匹配运动估计方法。块匹配算法是通过像素域搜索程序找到最佳的运动矢量估算,虽然它并不能完全描述物体的之间真实运动,但简单易实现,且对物体的运动情况能做较好的近似。在这里,我们对图像序列作整体位移的假设,所以采用块匹配算法来实现这一部分的功能。
4.1.3 基于点扩散函数的修正
参考帧的修正过程其实就是成像空间的初始点在各个凸集中的投影过程。绝大多数的成像系统并不是理想的光学系统,图像在经过摄像头的时候总会有一定的退化,考虑一个光点源,透过摄像头形成图像,不可能与原先一样就是一个点,而是会产生一些模糊,这个模糊是由点扩散函数(PSF)造成的。低分辨率图像序列由理想高分辨图像通过采样产生,其中某点的像素灰度值是由理想图像的一个小图像块中的点决定的。至于观察的低分辨图像中一个像素点对应于重构图像中多大范围内的点,是由低分辨率传感器单元的PSF决定的,因此在超分辨率图像重构中不仅要考虑光学模糊,而且还要考虑高低分辨率之间转换产生的PSF。根据前面的理论推导可知,POCS算法的图像修正方法是把一个观察图像像素投影到参考帧上,找出参考帧中在它的PSF范围内的像素,由PSF计算出这个像素的灰度估计值,与实际值相比较,如果误差超出允许范围,就对参考帧中的像素灰度值进行修正使得灰度估计值与实际值的误差减小到允许范围内所有观察图像中的每个像素都进行这种处理[12]。因为像素点在参考帧上的PSF影响范围可能部分重叠,在使用后面的点修正图像后,前面处理过的点的误差值可能会再超出阈值,所以进行修正的时候一般不会一次修正到位,而是采取循环修正的方法,在达到一定的循环次数,或者确定误差值已收敛至足够小才结束修正过程。
4.1.4 POCS算法中有关参数值的选取
(1)迭代次数:
我们在前面讨论POCS算法时,曾提到确定估计值的收敛解和真实解的“接近”的度依赖于用户的主观判断;在这里,迭代次数就是用户主观选择的一个参数,可以通过迭代过程中余量的变化情况来确定迭代是否接近收敛,也可以将迭代中估计HR图像的视觉效果作为迭代停止的判决。理论上让循环结束的条件就是,对参考帧的修正结束。参考帧所有点的像素值都在误差允许范围之内。但是实际中,有时候相邻的点会出现反复修正的问题,也就是说前一个点修正到了误差允许范围内以后,由于后面相邻点的修正。使得前面的点又到了误差允许的范围之外,下一次循环的时候,把前面的点修正到误差允许的范围之内,可能后面的点又到了误差允许的范围之外了,如此反复,可能会消耗大量的时间。基于以上原因,本试验采用手动输入循环次数的方式,这样可以节省算法的运行时间[13]。
4.2 凸集投影算法实验结果与分析
实验首先将一幅原始高分辨率测试图像"111.jpg"通过模糊、抽样、加噪等工作,生成4幅低分辨率图像LR1、LR2、LR3、LR4。选取第一帧降质图像LR1,进行双线性插值产生参考帧,读入下一帧低分辨率图像,与参考帧做精确亚像素估计,最后运用POCS算法进行超分辨率图像的重建 。
(1) 读取图像 MATLAB铁路监控视频的超分辨率技术研究(11):http://www.youerw.com/tongxin/lunwen_2326.html