发明内容
为解决上述技术问题,本发明提供的相关性提取方法,其步骤包括:
S1:对当前的相关性矩阵做线性处理,求得新的相关性矩阵;
S2:根据新的相关性矩阵,获取初步偏移量;
S3:速度跟踪,求取最终偏移量;
S4:根据当前的偏移量数据,求取下一帧相关性计算的开窗大小;
所述步骤S3包括:
S31:根据初步偏移量和上一帧的偏移量,求取初步速度;
S32:根据初步速度与上一帧速度的差值和上一帧的速度权重,求取当前的速度权重;
S33:由初步速度、初步速度与上一帧速度的差值和当前的速度权重,获取当前的最终跟踪速度;
S34:根据当前的最终跟踪速度和上一帧的偏移量,求取经速度跟踪后当前的最终偏移量;
所述速度为水平方向速度或垂直方向速度;
所述偏移量为水平方向偏移量或垂直方向偏移量;
所述速度权重为水平方向速度权重或垂直方向速度权重。
当当前的相关性矩阵值越小相关性越大时,所述步骤S1中线性处理在横向域的计算公式为:
cor_new(i,j)=cor(i,j)+(cor_old_max×crag)×|i-old_offset_w|
在纵向域的计算公式为:
cor_new(i,j)=cor(i,j)+(cor_old_max×crag)×|j-old_offset_h|
cor_new(i,j)=cor(i,j)+(cor_old_max×crag)×|j-old_
当当前的相关性矩阵值越大相关性越大时,所述步骤S1中线性处理在横向域的计算公式为:
cor_new(i,j)=cor(i,j)-(cor_old_max×crag)×|i-old_offset_w|
在纵向域的计算公式为:
cor_new(i,j)=cor(i,j)-(cor_old_max×crag)×|j-old_offset_h|
其中cor_new为线性处理后新的相关性矩阵,cor为当前的相关性矩阵,cor_old_max为上一帧的相关性矩阵的最大值,i为当前对应的横坐标,j为当前对应的纵坐标,old_offset_w表示上一帧水平方向的偏移量,old_offset_h表示上一帧垂直方向的偏移量,crag为线性变化因子,其值为0到1的任意数。
所述步骤S2中新相关性矩阵的极大值或极小值对应坐标为初步偏移量,当新的相关性矩阵值越小相关性越大时,其极小值对应坐标为初步偏移量;当新的相关性矩阵值越大相关性越大时,其极大值对应坐标为初步偏移量;所述新的相关性矩阵的极大值或极小值和其中心坐标对应的值相等时,以中心坐标值代替相应极大值或极小值的坐标。
所述初步速度为初步偏移量与上一帧的偏移量之差,其计算公式为:
new_velocity=new_offset-old_offset
其中new_velocity表示初步速度,new_offset表示初步偏移量,old_offset表示上一帧的偏移量;
所述初步速度为水平方向初步速度或垂直方向初步速度,所述初步偏移量为水平方向初步偏移量或垂直方向初步偏移量,所述上一帧的偏移量为上一帧水平方向的偏移量或上一帧垂直方向的偏移量;
所述当前的速度权重是在上一帧的速度权重基础上,根据初步速度与上一帧速度的差值反比增长,
其计算公式为:
weight=weight_old-|new_velocity-old_velocity|
其中weight为当前的速度权重,weight_old为上一帧的速度权重,old_velocity为上一帧速度;
所述速度权重的初始值包括水平方向速度权重的初始值或垂直方向速度权重的初始值;
所述水平方向速度权重的初始值为0到图像宽度范围内的数,当水平方向当前的速度权重小于0时,用水平方向速度权重的初始值替换水平方向当前的速度权重;
所述垂直方向速度权重的初始值为0到图像高度范围内的数,当垂直方向当前的速度权重小于0时,用垂直方向速度权重的初始值替换垂直方向当前的速度权重;
所述当前的最终跟踪速度是根据初步速度、初步速度与上一帧速度的差值和当前的速度权重求得的,
其计算公式为:
velocity=new_velocity+(old_velocity-new_velocity)×weight
其中velocity为当前的最终跟踪速度;
所述经速度跟踪后当前的最终偏移量为上一帧的偏移量与当前的最终跟踪速度之和;
所述当前的最终偏移量的范围在上一帧求得的开窗范围内。
所述下一帧相关性计算的开窗大小上下左右分别对应:up、down、left、right,并遵循up、down、left、right组成的区域不能超过相关性矩阵的边界的规定;
up、down满足以下计算公式:
up=offset_h+velocity_h+weight_h
down=offset_h+velocity_h-weight_h
其中velocity_h为垂直方向的最终跟踪速度,offset_h为经速度跟踪后垂直方向的最终偏移量,weight_h为垂直方向的速度权重;
left、right满足以下计算公式:
left=offset_w+velocity_w-weight_w
right=offset_w+velocity_w+weight_w
其中velocity_w为水平方向的最终跟踪速度,offset_w为经速度跟踪后水平方向的最终偏移量,weight_w为水平方向的速度权重。
所述偏移量数据求得时,如果当前帧检测到有效采集对象,并且当前相关性矩阵的最大值大于一个阈值时,执行速度跟踪求取最终偏移量和根据当前的偏移量数据求取下一帧相关性计算的开窗大小,否则所有的偏移量数据清零;若执行速度跟踪求取最终偏移量和根据当前的偏移量数据求取下一帧相关性计算的开窗大小过程中,当物体相对于采集窗口未发生移动时,速度权重始终为0;所述阈值的范围为0到选定的覆盖区域数据的个数乘以图像像素最大值的积的平方内的任意数。
相关性提取装置,包含相关性矩阵处理模块、搜索偏移量模块、速度跟踪模块和下一帧窗口大小定位模块四个部分,其特征在于,
所述相关性矩阵处理模块用于对当前的相关性矩阵做线性处理,求得新的相关性矩阵;
所述搜索偏移量模块用于根据新的相关性矩阵,获取初步偏移量;
所述速度跟踪模块用于速度跟踪,获取最终偏移量,包括:
根据初步偏移量和上一帧的偏移量,求取初步速度;
根据初步速度与上一帧速度的差值和上一帧的速度权重,求取当前的速度权重;
由初步速度、初步速度与上一帧速度的差值和当前的速度权重,获取当前的最终跟踪速度;
根据当前的最终跟踪速度和上一帧的偏移量,求取经速度跟踪后当前的最终偏移量;
所述下一帧窗口大小定位模块用于根据当前的偏移量数据,求取下一帧相关性计算的开窗大小;
所述速度为水平方向速度或垂直方向速度;
所述偏移量为水平方向偏移量或垂直方向偏移量;
所述速度权重为水平方向速度权重或垂直方向速度权重。
当当前的相关性矩阵值越小相关性越大时,所述相关性矩阵处理模块中线性处理在横向域的计算公式为:
cor_new(i,j)=cor(i,j)+(cor_old_max×crag)×|i-old_offset_w|
在纵向域的计算公式为:
cor_new(i,j)=cor(i,j)+(cor_old_max×crag)×|j-old_offset_h|
当当前的相关性矩阵值越大相关性越大时,所述相关性矩阵处理模块中线性处理在横向域的计算公式为:
cor_new(i,j)=cor(i,j)-(cor_old_max×crag)×|i-old_offset_w|
在纵向域的计算公式为:
cor_new(i,j)=cor(i,j)-(cor_old_max×crag)×|j-old_offset_h|
其中cor_new为线性处理后新的相关性矩阵,cor为当前的相关性矩阵,cor_old_max为上一帧的相关性矩阵的最大值,i为当前对应的横坐标,j为当前对应的纵坐标,old_offset_w表示上一帧水平方向的偏移量,old_offset_h表示上一帧垂直方向的偏移量,crag为线性变化因子,其值为0到1的任意数。
所述搜索偏移量模块中新的相关性矩阵的极大值或极小值对应坐标为初步偏移量,当新的相关性矩阵值越小相关性越大时,其极小值对应坐标为初步偏移量;当新的相关性矩阵值越大相关性越大时,其极大值对应坐标为初步偏移量;所述新的相关性矩阵的极大值或极小值和其中心坐标对应的值相等时,以中心坐标值代替相应极大值或极小值的坐标。
所述初步速度为初步偏移量与上一帧的偏移量之差,其计算公式为:
new_velocity=new_offset-old_offset
其中new_velocity表示初步速度,new_offset表示初步偏移量,old_offset表示上一帧的偏移量;
所述初步速度为水平方向初步速度或垂直方向初步速度,所述初步偏移量为水平方向初步偏移量或垂直方向初步偏移量,所述上一帧的偏移量为上一帧水平方向的偏移量或上一帧垂直方向的偏移量;
所述当前的速度权重是在上一帧速度权重基础上,根据初步速度与上一帧速度的差值反比增长,
其计算公式为:
weight=weight_old-|new_velocity-old_velocity|
其中weight为当前的速度权重,weight_old为上一帧的速度权重,old_velocity为上一帧速度;
所述速度权重的初始值包括水平方向速度权重的初始值或垂直方向速度权重的初始值;
所述水平方向速度权重的初始值为0到图像宽度范围内的数,当水平方向当前的速度权重小于0时,用水平方向速度权重的初始值替换水平方向当前的速度权重;
所述垂直方向速度权重的初始值为0到图像高度范围内的数,当垂直方向当前的速度权重小于0时,用垂直方向速度权重的初始值替换垂直方向当前的速度权重;
所述当前的最终跟踪速度是根据初步速度、初步速度与上一帧速度的差值和当前的速度权重求得的,
其计算公式为:
velocity=new_velocity+(old_velocity-new_velocity)×weight
其中velocity为当前的最终跟踪速度;
所述经速度跟踪后当前的最终偏移量为上一帧的偏移量与当前的最终跟踪速度之和;
所述当前的最终偏移量的范围在上一帧求得的开窗范围内。
所述下一帧相关性计算的开窗大小上下左右分别对应:up、down、left、right,并遵循up、down、left、right组成的区域不能超过相关性矩阵的边界的规定;
up、down满足以下计算公式:
up=offset_h+velocity_h+weight_h
down=offset_h+velocity_h-weight_h
其中velocity_h为垂直方向的最终跟踪速度,offset_h为经速度跟踪后垂直方向的最终偏移量,weight_h为垂直方向的速度权重;
left、right满足以下计算公式:
left=offset_w+velocity_w-weight_w
right=offset_w+velocity_w+weight_w
其中velocity_w为水平方向的最终跟踪速度,offset_w为经速度跟踪后水平方向的最终偏移量,weight_w为水平方向的速度权重。
所述偏移量数据求得时,如果当前帧检测到有效采集对象,并且当前相关性矩阵的最大值大于一个阈值时,执行速度跟踪求取最终偏移量和根据当前的偏移量数据求取下一帧相关性计算的开窗大小,否则所有的偏移量数据清零;若执行速度跟踪求取最终偏移量和根据当前的偏移量数据求取下一帧相关性计算的开窗大小过程中,当物体相对于采集窗口未发生移动时,速度权重始终为0;所述阈值的范围为0到选定的覆盖区域数据的个数乘以图像像素最大值的积的平方内的任意数。
本发明提供一种基于ASIC实现的相关性提取方法及装置,在原有的速度跟踪机制上,引入了速度权重和线性处理相关性矩阵及开窗范围大小调整,此方法得到的两帧间的相关性分辨更敏感,普适于更广泛的图像范围,降低图像拼接后产生的形变,纠正有明显的图像错位、图像形变、短图像、图像拖尾等现象,为后续处理打好基础;且因为搜索范围小,大大的提高了拼接速度,在采集的原始图像拼接效果不好的时候,可以根据此速度跟踪,更真实的还原图像。本发明成本低、图像拼接快捷准确,尤其适合指纹类商业产品的推广。本发明中的偏移量数据还可用于图像检测、导航。
具体实施方式
下面参照附图来说明本发明的优选实施例,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1、图2、图3提供了一种相关性提取方法。在原有的速度跟踪机制上,引入了速度权重和线性处理相关性矩阵。此方法得到的两帧间的相关性可靠性高,且因为搜索范围小,大大的提高了拼接速度,在采集的原始图像效果不好的时候,可以根据此速度跟踪,更真实的还原图像。
相关性提取方法,其步骤包括:
S1:对当前的相关性矩阵做线性处理,求得新的相关性矩阵。
新的相关性矩阵是根据当前的相关性矩阵、上一帧的偏移量和上一帧的相关性矩阵的最大值,对当前的相关性矩阵在横向域或纵向域上做线性处理:
当当前的相关性矩阵值越小相关性越大时,其线性处理在横向域的计算公式为:
cor_new(i,j)=cor(i,j)+(cor_old_max×crag)×|i-old_offset_w|
当当前的相关性矩阵值越大相关性越大时,其线性处理在横向域的计算公式为:
cor_new(i,j)=cor(i,j)-(cor_old_max×crag)×|i-old_offset_w|
其中cor_new为线性处理后新的相关性矩阵,cor为当前的相关性矩阵,cor_old_max为上一帧的相关性矩阵的最大值,i为当前对应的横坐标,j为当前对应的纵坐标,old_offset_w表示上一帧水平方向的偏移量,crag为线性变化因子,其值为0到1的任意数,当crag为0时,线性处理后新的相关性矩阵等于当前的相关性矩阵;crag取值越大,线性处理后新的相关性矩阵值以上一帧水平方向的偏移量为中心往水平方向两边向相关性越小的数值域方向变化得越剧烈。
当相关性矩阵值越小相关性越大时,其线性处理在纵向域的计算公式为:
cor_new(i,j)=cor(i,j)+(cor_old_max×crag)×|j-old_offset_h|
当相关性矩阵值越大相关性越大时,其线性处理在纵向域的计算公式为:
cor_new(i,j)=cor(i,j)-(cor_old_max×crag)×|j-old_offset_h|
其中cor_new为线性处理后新的相关性矩阵,cor为当前的相关性矩阵,cor_old_max为上一帧的相关性矩阵的最大值,i为当前对应的横坐标,j为当前对应的纵坐标,old_offset_h表示上一帧垂直方向的偏移量,crag为线性变化因子,其值为0到1的任意数,当crag为0时,线性处理后新的相关性矩阵等于当前的相关性矩阵;crag取值越大,线性处理后新的相关性矩阵值以上一帧垂直方向的偏移量为中心往垂直方向两边向相关性越小的数值域方向变化得越剧烈。
以上一帧的偏移量对应的坐标为中心,根据上一帧的相关性矩阵的最大值设定一个步长,向横向域或纵向域两侧递增。该功能为一个可选性功能,在横向域或纵向域上做了微调跟踪,使拼接效果更佳。
S2:根据新的相关性矩阵,获取初步偏移量。
搜索新的相关性矩阵的极大值或极小值,找出的极大值或极小值对应坐标为初步偏移量,当新的相关性矩阵值越小相关性越大时,其极小值对应坐标为初步偏移量;当新的相关性矩阵值越大相关性越大时,其极大值对应坐标为初步偏移量,本实施例中初步偏移量包括水平方向偏移量和垂直方向偏移量。根据求相关性算法不同,两帧的偏移对应其极大值或其极小值的坐标。
新的相关性矩阵的极大值或极小值和其中心坐标对应的值相等时,以中心坐标值代替相应极大值或极小值的坐标,即中心偏移,此时中心坐标即为初步偏移量,中心偏移优先考虑。
S3:速度跟踪,求取最终偏移量。其具体步骤如下:
S31:根据初步偏移量和上一帧的偏移量,求取初步速度:
初步速度为初步偏移量与上一帧的偏移量之差,其计算公式为:
new_velocity=new_offset-old_offset
其中new_velocity表示初步速度,new_offset表示初步偏移量,old_offset表示上一帧的偏移量;
上述公式中初步速度为水平方向初步速度或垂直方向初步速度,初步偏移量为水平方向初步偏移量或垂直方向初步偏移量,上一帧的偏移量为上一帧水平方向的偏移量或上一帧垂直方向的偏移量。
S32:根据初步速度与上一帧速度的差值和上一帧的速度权重,求取当前的速度权重;
速度权重表示在计算当前两帧偏移量数据的过程中,基于速度的重要程度的定量分配,即在拼接过程中,当前速度在整体速度的重要程度。
当前的速度权重是在上一帧的速度权重基础上,根据初步速度与上一帧速度的差值反比增长,即速度变化剧烈时,速度权重减小。
其计算公式为:
weight=weight_old-|new_velocity-old_velocity|
其中weight为当前的速度权重,weight_old为上一帧的速度权重,old_velocity为上一帧速度;
速度权重分为水平方向的速度权重和垂直方向的速度权重,水平方向速度权重的初始值为0到图像宽度范围内的数,当水平方向当前的速度权重小于0时,用水平方向速度权重的初始值替换水平方向当前的速度权重;垂直方向速度权重的初始值为0到图像高度范围内的数,当垂直方向当前的速度权重小于0时,用垂直方向速度权重的初始值替换垂直方向当前的速度权重。
上述公式如为水平方向的速度权重时,上一帧的速度权重为上一帧水平方向的速度权重,初步速度为水平方向初步速度,上一帧速度为上一帧水平方向的速度;如为垂直方向速度权重时,上一帧的速度权重为上一帧垂直方向的速度权重,初步速度为垂直方向初步速度,上一帧速度为上一帧垂直方向的速度。
引入速度权重后,当速度权重减小到一定阈值后,开窗面积相应的增大。并且在速度跟踪计算中,也引入速度权重,速度权重大小影响到速度和偏移量的定位。
S33:根据当前的速度权重、初步速度以及上一帧的偏移量数据求得当前的最终跟踪速度:由初步速度、初步速度与上一帧速度的差值和当前的速度权重,获取当前的最终跟踪速度,
其计算公式为:
velocity=new_velocity+(old_velocity-new_velocity)×weight
其中velocity为当前的最终跟踪速度;
上述公式中当前的最终跟踪速度为水平方向当前的最终跟踪速度或垂直方向当前的最终跟踪速度,
S34:根据当前的最终跟踪速度和上一帧的偏移量,求取经速度跟踪后当前的最终偏移量。
其计算公式为:
offset=old_offset+velocity
其中offset为经速度跟踪后当前的最终偏移量。
上述公式中,当前的最终偏移量为水平方向当前的最终偏移量或垂直方向当前的最终偏移量,当前的最终偏移量的范围在上一帧求得的开窗范围内。
S4:求取下一帧相关性计算的开窗大小。
下一帧开窗范围下的覆盖区域数据不能大于一帧图像,且不得小于选定的覆盖区域数据。开窗大小和上一帧的偏移量数据、相关性数据相关。开窗的位置较当前覆盖区域的中心坐标往位移跟踪移动方向上偏移。在跟踪速度大于一定阈值时,相应的调大物体相对于采集窗口的主要跟踪移动方向一侧的窗口大小。在此窗口中搜索两帧的最大相关性。
如图2所示,图2a所示为前N帧图像的拼接关系,由图2a中可见采集到的图像顺序方向为右下方(水平方向向左,垂直方向向右,整体方向即为右下方)。图2b所示在没有速度跟踪的情况下,开窗始终为以相关性矩阵的中心为中心上下左右一定范围开窗(A1),在有速度跟踪的情况下,开窗根据物体移动的跟踪速度和方向,开窗位置较A1往右下方移动到A2。
下一帧相关性计算的开窗大小上下左右对应:up、down、left、right,并遵循up、down、left、right组成的区域不能超过相关性矩阵的边界。
up、down满足以下计算公式:
up=offset_h+velocity_h+weight_h
down=offset_h+velocity_h-weight_h
其中velocity_h为垂直方向的最终跟踪速度,offset_h为经速度跟踪后垂直方向的最终偏移量,weight_h为垂直方向的速度权重;
left、right满足以下计算公式:
left=offset_w+velocity_w-weight_w
right=offset_w+velocity_w+weight_w
其中velocity_w为水平方向的最终跟踪速度,offset_w为经速度跟踪后水平方向的最终偏移量,weight_w为水平方向的速度权重。
如图3所示,当前帧C以模板帧T为参照上下左右移动,每一次移动对应一个坐标,其坐标值为两帧图像之间的水平和垂直方向的位移,即两帧图像以此坐标偏移的覆盖情况。所述坐标为直角坐标系,已两帧图像完全覆盖对应的坐标为原点。每一次移动以像素级为最小单位。规定当前帧和模板帧是在帧图像长宽范围内的一定区域有规律的上下左右移动,此规定使坐标在上下左右四个方向有一个极值,其极值一一对应up、down、left、right的极值。
此处计算的开窗用于下一帧相关性数据的选取,实时跟踪调整开窗在覆盖区域的位置能减小数据量的传输,精确搜索范围,以此循环。
偏移量数据求得时,如果当前帧检测到有效采集对象,即采集窗口背景发生改变时,并且当前相关性矩阵的最大值大于一个阈值(阈值的范围为0到选定的覆盖区域数据的个数乘以图像像素最大值的积的平方内的任意数)时,执行速度跟踪求取最终偏移量和根据当前的偏移量数据求取下一帧相关性计算的开窗大小,否则所有的偏移量数据清零。若执行速度跟踪求取最终偏移量和根据当前的偏移量数据求取下一帧相关性计算的开窗大小过程中,当物体相对于采集窗口未发生移动时,速度权重始终为0。
此方法得到的两帧间的相关性可靠性高,且因为跟踪开窗使搜索范围变小,大大的提高了拼接速度,在采集的原始图像效果不好的时候,可以根据此速度跟踪,更真实的还原图像。
参见图4本发明还提供了相关性提取装置,包括:相关性矩阵处理模块31、搜索偏移量模块32、速度跟踪模块33和下一帧窗口大小定位模块34。
相关性矩阵处理模块31:用于对当前的相关性矩阵做线性处理,求得新的相关性矩阵。其具体操作步骤为:
当当前的相关性矩阵值越小相关性越大时,其线性处理在横向域的计算公式为:
cor_new(i,j)=cor(i,j)+(cor_old_max×crag)×|i-old_offset_w|
当当前的相关性矩阵值越大相关性越大时,其线性处理在横向域的计算公式为:
cor_new(i,j)=cor(i,j)-(cor_old_max×crag)×|i-old_offset_w|
其中cor_new为线性处理后新的相关性矩阵,cor为当前的相关性矩阵,cor_old_max为上一帧的相关性矩阵的最大值,i为当前对应的横坐标,j为当前对应的纵坐标,old_offset_w表示上一帧水平方向的偏移量,crag为线性变化因子,其值为0到1的任意数,当crag为0时,线性处理后新的相关性矩阵等于当前的相关性矩阵;crag取值越大,线性处理后新的相关性矩阵值以上一帧水平方向的偏移量为中心往水平方向两边向相关性越小的数值域方向变化得越剧烈。
当当前的相关性矩阵值越小相关性越大时,其线性处理在纵向域的计算公式为:
cor_new(i,j)=cor(i,j)+(cor_old_max×crag)×|j-old_offset_h|
当当前的相关性矩阵值越大相关性越大时,其线性处理在纵向域的计算公式为:
cor_new(i,j)=cor(i,j)-(cor_old_max×crag)×|j-old_offset_h|
其中cor_new为线性处理后新的相关性矩阵,cor为当前的相关性矩阵,cor_old_max为上一帧的相关性矩阵的最大值,i为当前对应的横坐标,j为当前对应的纵坐标,old_offset_h表示上一帧垂直方向的偏移量,crag为线性变化因子,其值为0到1的任意数,当crag为0时,线性处理后新的相关性矩阵等于当前的相关性矩阵;crag取值越大,线性处理后新的相关性矩阵值以上一帧垂直方向的偏移量为中心往垂直方向两边向相关性越小的数值域方向变化得越剧烈。
搜索偏移量模块32:根据新的相关性矩阵,获取初步偏移量。
其具体步骤为:搜索偏移量模块为搜索新的相关性矩阵的极大值或极小值,找出的极大值或极小值对应坐标为初步偏移量,当新的相关性矩阵值越小相关性越大时,其极小值对应坐标为初步偏移量;当新的相关性矩阵值越大相关性越大时,其极大值对应坐标为初步偏移量,本实施例中初步偏移量包括水平方向偏移量和垂直方向偏移量,根据求相关性算法不同,两帧的偏移对应其极大值或其极小值的坐标。
新的相关性矩阵的极大值或极小值和其中心坐标对应的值相等时,以中心坐标值代替相应极大值或极小值的坐标,即中心偏移,此时中心坐标即为初步偏移量,中心偏移优先考虑。
速度跟踪模块33:速度跟踪,求取最终偏移量。其具体步骤如下:
S31:根据初步偏移量和上一帧的偏移量,求取初步速度:
初步速度为初步偏移量与上一帧的偏移量之差,其计算公式为:
new_velocity=new_offset-old_offset
其中new_velocity表示初步速度,new_offset表示初步偏移量,old_offset表示上一帧的偏移量;
上述公式中初步速度为水平方向初步速度或垂直方向初步速度,初步偏移量为水平方向初步偏移量或垂直方向初步偏移量,上一帧的偏移量为上一帧水平方向的偏移量或上一帧垂直方向的偏移量。
S32:根据初步速度与上一帧速度的差值和上一帧的速度权重,求取当前的速度权重;
速度权重表示在计算当前两帧偏移量数据的过程中,基于速度的重要程度的定量分配,即在拼接过程中,当前速度在整体速度的重要程度。
当前的速度权重值是在上一帧的速度权重基础上,根据初步速度与上一帧速度的差值反比增长,即速度变化剧烈时,速度权重减小。
其计算公式为:
weight=weight_old-|new_velocity-old_velocity|
其中weight为当前的速度权重,weight_old为上一帧的速度权重,old_velocity为上一帧速度;
速度权重分为水平方向的速度权重和垂直方向的速度权重,水平方向速度权重的初始值为0到图像宽度范围内的数,当水平方向当前的速度权重小于0时,用水平方向速度权重的初始值替换水平方向当前的速度权重;垂直方向速度权重的初始值为0到图像高度范围内的数,当垂直方向当前的速度权重小于0时,用垂直方向速度权重的初始值替换垂直方向当前的速度权重。
上述公式如为水平方向速度权重时,上一帧的速度权重为上一帧水平方向的速度权重,初步速度为水平方向初步速度,上一帧速度为上一帧水平方向的速度;如为垂直方向速度权重时,上一帧的速度权重为上一帧垂直方向的速度权重,初步速度为垂直方向初步速度,上一帧速度为上一帧垂直方向的速度。
引入速度权重后,当速度权重减小到一定阈值后,开窗面积相应的增大。并且在速度跟踪计算中,也引入速度权重,速度权重大小影响到速度和偏移量的定位。
S33:根据当前的速度权重、初步速度以及上一帧的偏移量数据求得当前的最终跟踪速度:由初步速度、初步速度与上一帧速度的差值和当前的速度权重,获取当前的最终跟踪速度,
其计算公式为:
velocity=new_velocity+(old_velocity-new_velocity)×weight
其中velocity为当前的最终跟踪速度;
上述公式中当前的最终跟踪速度为水平方向当前的最终跟踪速度或垂直方向当前的最终跟踪速度,
S34:根据当前的最终跟踪速度和上一帧的偏移量,求取经速度跟踪后当前的最终偏移量。
其计算公式为:
offset=old_offset+velocity
其中offset为当前的最终偏移量。
上述公式中,当前的最终偏移量为水平方向当前的最终偏移量或垂直方向当前的最终偏移量,当前的最终偏移量的范围在上一帧求得的开窗范围内。
下一帧窗口大小定位模块34:根据当前的偏移量数据,求取下一帧相关性计算的开窗大小。
下一帧开窗范围下的覆盖区域数据不能大于一帧图像,且不得小于选定的覆盖区域数据。开窗大小和上一帧的偏移量数据、相关性数据相关。开窗的位置较当前覆盖区域的中心坐标往位移跟踪移动方向上偏移。在跟踪速度大于一定阈值时,相应的调大物体相对于采集窗口的主要跟踪移动方向一侧的窗口大小。在此窗口中搜索两帧的最大相关性。
如图2所示,图2a所示为前N帧图像的拼接关系,由图2a中可见采集到的图像顺序方向为右下方(水平方向向左,垂直方向向右,整体方向即为右下方)。图2b所示在没有速度跟踪的情况下,开窗始终为以相关性矩阵的中心为中心上下左右一定范围开窗(A1),在有速度跟踪的情况下,开窗根据物体移动的跟踪速度和方向,开窗位置较A1往右下方移动到A2。
下一帧相关性计算的开窗大小上下左右对应:up、down、left、right,并遵循up、down、left、right组成的区域不能超过相关性矩阵的边界。
up、down满足以下计算公式:
up=offset_h+velocity_h+weight_h
down=offset_h+velocity_h-weight_h
其中velocity_h为垂直方向的最终跟踪速度,offset_h为经速度跟踪后垂直方向的最终偏移量,weight_h为垂直方向的速度权重;
left、right满足以下计算公式:
left=offset_w+velocity_w-weight_w
right=offset_w+velocity_w+weight_w
其中velocity_w为水平方向的最终跟踪速度,offset_w为经速度跟踪后水平方向的最终偏移量,weight_w为水平方向的速度权重。
如图3所示,当前帧C以模板帧T为参照上下左右移动,每一次移动对应一个坐标,其坐标值为两帧图像之间的水平和垂直方向的位移,即两帧图像以此坐标偏移的覆盖情况。所述坐标为直角坐标系,已两帧图像完全覆盖对应的坐标为原点。每一次移动以像素级为最小单位。规定当前帧和模板帧是在帧图像长宽范围内的一定区域有规律的上下左右移动,此规定使坐标在上下左右四个方向有一个极值,其极值一一对应up、down、left、right的极值。
此处计算的开窗用于下一帧相关性数据的选取,实时跟踪调整开窗在覆盖区域的位置能减小数据量的传输,精确搜索范围,以此循环。
偏移量数据求得时,如果当前帧检测到有效采集对象,即采集窗口背景发生改变时,并且当前相关性矩阵最大值大于一个阈值(阈值范围为0到选定的覆盖区域数据的个数乘以图像像素最大值的乘积的平方内的任意数)时,执行速度跟踪求取最终偏移量和根据当前的偏移量数据求取下一帧相关性计算的开窗大小,否则所有的偏移量数据清零。若执行速度跟踪求取最终偏移量和根据当前的偏移量数据求取下一帧相关性计算的开窗大小过程中,当物体相对于采集窗口未发生移动时,速度权重始终为0。
此方法得到的两帧间的相关性可靠性高,且因为跟踪开窗使搜索范围变小,大大的提高了拼接速度,在采集的原始图像效果不好的时候,可以根据此速度跟踪,更真实的还原图像。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。