齐 红,任洪娥,田少卿,胡 鸿
(1.东北林业大学信息与计算机工程学院,黑龙江 哈尔滨 150040 2.国家林业局调查规划设计院,北京 100714)
稳像技术从早期的机械稳像到光学稳像,再到电子稳像,是一个漫长的发展过程。随着计算机软硬件的飞速发展,电子稳像技术逐渐的取代了机械稳像和光学稳像成为目前运用最广泛的稳像技术[1]。而在电子稳像技术的发展过程中又根据算法的不同分为多种稳像法,主要包括:代表点匹配算法(RPM),投影算法(PRA),位平面匹配算法(BPM),特征量跟踪算法(FTA)[2],代表点比较算法(BERP),块匹配算法(BMA),边沿检测匹配算法(EDA)[3-4],频域估计算法(FDE)和光流算法(OF)等[5-7]。其中,灰度投影算法由于其运算速度快[8-9]、性能稳定而被广泛应用。而灰度投影算法在处理存在运动物体的图像时,会产生不尽如人意的结果——偏移量跳变,这种跳变的表现是偏移量突然大幅度增加或减少。本文提出了一种对灰度投影改进的方法,可以有效的消除灰度投影算法在处理有运动物体存在的图像时所产生的错误运动估计现象。同时设计了一套针对图像序列是否需要稳像,以及稳像后是否达到稳像效果的检验策略,这样可以达到电子稳像系统自动检测并决定何时对图像进行稳像处理的效果。
电子稳像算法是通过电子设备采集图像序列,同时运用数字图像处理的方法直接处理所得图像序列,确定图像偏移量并进行相应补偿来达到图像稳定的一种方法,如图1所示为电子稳像处理过程。
图1 电子稳像处理过程
运用灰度投影算法主要包括4个步骤:
1)先将采集来的图像转化成灰度图。
2)进行灰度投影运算,即将图像的每一行或列的灰度值相加,投影公式如下:
(1)
上式中row(i)是第i行的投影值,column(j)是图像第j列的投影值,pic(i,j)是图像点(i,j)处的灰度值。
3)进行相关运算,得到抖动偏移量,列相关运算公式如下:
1≤w≤2M+1
(2)
其中C(w)是相关运算值,M是检测图像抖动的范围。Wmin是C(w)最小时W的值,可得图像在纵向上的位移量motionc。行相关运算亦如此。
motionc=M+1-Wmin
(3)
4)将发生抖动的图像反向移动motionr,motionc后得到的图像为稳定图像。
由设备获取视频图像时,难免有运动物体出现在图像中,因此可能导致两种情况:
1)图像没有发生抖动,而灰度投影算法可能会误判为图像发生抖动而对图像进行处理。
2)图像正好发生抖动,而物体的运动会对灰度投影算法造成一定的影响,出现错误稳像。
如何使运动物体不影响到算法是解决问题的关键。
在视频捕获过程中,运动物体穿越拍摄区域时其走向是不确定的,物体或是横向运动,或是纵向运动,还有可能是斜向运动。而斜向运动在连续单幅图像中可以被看做是横向运动和纵向运动的组合,因此总的来说可以把物体运动方向分为:横向与纵向。下面以横向为例说明(后面没有特殊说明,均为横向),纵向亦然。
1)情况一:未发生抖动的运动物体检测方法。
在物体开始出现在图像中的几帧图像中,读取连续两帧图像,一帧为参考图像A,另一帧为待检测图像B。将A ,B两图分别做灰度投影,然后将两图像的投影值相减,得到投影差值[10-12]。下列为行的相关算式:
rowsub(i)=|rowA(i)-rowB(i)|
(4)
(5)
其中rowsub(i)是行投影差值,Rsum是行投影差值的平均值。用投影差值减去平均值后取大于零的部分,行这部分的个数多于列的相对应的个数,说明物体是做横向运动的;反之,为纵向运动。因为一般物体进入图像的一刹那,必然有一边的变化是宽的而另一边是窄的。同时根据大于零的灰度变化区域可以估计出物体的大概运动范围。通过对连续图像的运动范围值的记录,取其平均值可以得到比较准确的物体运动范围,如图2可知物体运动范围大概在(110,360)之间。
图2 无抖动时物体运动的区域与投影差值
2)情况二:发生抖动的运动物体检测方法。
情况二与情况一基本一致,只是情况二读取的图像B是稳像后的图像,如图3所示。这里说明一下,在运动物体进入图像的初期,由于其灰度变化面积较小而不影响灰度投影算法,这一说法在随后的实验验证中有详细证明。
图3 抖动时物体运动区域与投影差值