本发明涉及光流场的检测技术,特别是涉及一种解决由自相似特征引起的光流场与实际运动场不符的方法。
背景技术:
计算图像光流场是计算机运动视觉的基础研究内容,是进行运动分析与理解的重要工具,在运动检测、运动估计、运动跟踪、运动识别等应用中都有重要作用。由于光流跟踪是以光照不变性和区域一致性假设为前提的,当图像中存在重复纹理的时候,纹理的自相似特征常常会导致光流场的跟踪结果与实际物体的运动场不符,从而影响光流跟踪方法的准确性。
技术实现要素:
针对现有技术存在的不足,本发明的目的在于提供一种解决由于自相似特征产生光流场与运动场不符的方法,以提高自相似特征产生光流场和运动场的一致性,解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种解决由于自相似特征引起的光流场与运动场不符的方法,主要包括如下步骤:
步骤1:获取单通道视频流,单通道的灰度图像。
步骤2:对图像进行图像金字塔处理,做k层的金字塔。
步骤3:把原始图像的金字塔第一层分成number=col×row个检测区域,并且在每个检测区域内检测一个特征点,最多检测到number个特征点。特征点用p表示。
步骤4:在原始图像上应用公式(3)~(6)计算虚位移序列v,并用公式(1)得到虚位移图像序列iv,包含m个虚位移图像。
步骤5:对每一个虚拟位移图像进行图像金字塔处理,得到m个k层虚位移金字塔,每个v(i)对应一个虚位移金字塔。
步骤6:令p=(x,y)为步骤3中检测到的特征点。应用但不限于lk光流跟踪方法,将p点由原始图像金字塔跟踪到虚位移图像金字塔上的p′=(xv,yv)点,光流向量为v′=(δx,δy),其中δx=xv-x,δy=yv-y。
步骤7:将步骤6计算出来的光流向量(δx,δy)与虚位移向量v(i)代入置信度函数计算尺度i对应的置信度值,得到m个置信度值。
步骤8:将m个置信度值相乘得到最终的置信度值。如果为1则证明光流跟踪的结果正确,否则证明光流跟踪的结果错误,应把该特征点删除。
步骤9:根据步骤8的结果更新特征点,完成虚位移滤波。
步骤10:使用虚位移滤波后的特征点进行传统的光流跟踪得到光流场。
进一步的,步骤3中所述特征点的筛选的方法,是基于虚位移的光流跟踪方法。
所述的特征点筛选的方法,其特征是在原始图像上检测出若干个特征点,然后按照一定的算法保留其中一部分特征点而丢弃另外一部分特征点。
本发明所采用的在原始图像上检测出若干个特征点的方法,其特征是把原始图像划分成若干个小的矩形检测区域,每个检测区域大小为n×n个像素,每个检测区域中检测出不超过z个特征点,所述n,z都是整数,且n>1,z≥1。
优选地,所述检测区域大小典型值取n=15,即每个检测区域包含225个像素。
优选地,所述特征点的数量的典型值取z=1。
进一步地,检测区域的总数量由原始图像的大小w×h和检测区域大小n×n共同确定,其中,
x轴方向检测区域的个数记为col,公示表示为:
col=w/n。
y轴方向检测区域的个数记为row,公示表示为:
row=h/n。
原始图像的检测区域的总数量为
number=col×row。
进一步地,特征点的检测顺序是从位于原始图像左上角的第一个检测区域开始,按照从左到右、从上到下的顺序依次遍历全部检测区域。
进一步地,在每个检测区域内检测z个特征点的方法是,从位于检测区域左上角的第一个像素开始,按照从左到右、从上到下的顺序依次遍历检测区域的所有像素,对每个像素运行特征点检测算法,直到有效特征点的数量已达到或超过z,或者单选地,有效特征点的数量小于z但是检测区域内已没有更多的像素可供遍历。
进一步地,所述的在每个检测区域内检测z个特征点的方法的特征是,当有效特征点的数量已达到或超过z,并且检测区域内还有剩余像素没有遍历时,所述的剩余像素将被跳过,开始下一个检测区域的处理。
优选地,在所述的在每个检测区域内检测z个特征点的方法中,一种特征点检测算法如下:
考查像素点附近直径为7个像素的圆形窗口区域,区域边缘共有16个像素,以圆心p为中心像素点。在所述16个像素点中,如果存在至少n个连续像素满足像素值全部高于中心像素p的像素值,或者等效地,存在至少n个连续像素满足像素值全部低于中心像素p的像素值,则所述中心点p就是一个符合要求的特征点。
在本发明所涉及的各个方法中,所述的虚位移就是指一个描述图像平移量的二维向量,用符号v表示,即
进一步地,给定一个虚位移向量v,在计算中常用到一个与v成整数倍关系的向量序列,为描述方便定义所述的向量序列为v,共包含m个元素,与v满足如下关系:
其中,整数i取值的为1,2,3,…,m。
在本发明所涉及的各个方法中,所述的虚位移图像,就是指将原始图像整体平移一个向量后得到的新图像。
进一步地,将原始图像整体分别平移m次,每次的平移向量为v(i),则可得到一个虚位移图像序列iv,与原始图像i满足如下关系:
本发明所述的虚位移光流跟踪方法进行特征点的筛选,其特征是根据特征点对应的虚位移向量和光流位移向量两个参数评估所述特征点的置信度。
优选地,一种评估特征点的置信度的方法如下:
定义常数参数θ和一个二元函数p,使其满足
其中v,v′是两个位移向量,|…|代表向量取模运算。
本发明所述的虚位移光流跟踪方法,其特征是在虚位移图像上使用光流方法对特征点进行跟踪。具体的步骤是:
1.在原始图像中i中选择一个检测区域s以及从属于s的特征点a;
2.确定虚位移向量v,根据所述v得到虚位移图像序列iv;
3.令i=1,..,m,分别将虚位移图像中
4.将v和各个vi′代入置信度函数,计算得到m个置信度值;
5.将m个置信度值相乘,得到总的置信度值p;
6.如果p=1,判定光流跟踪的结果可信,所述特征点a予以保留。相反地,如果p=0,则判定光流跟踪的结果不可信,所述特征点a予以删除。
本发明所述的虚位移光流跟踪方法,其特征是所述的虚位移向量v的计算使用快速傅里叶变换(fft)方法。
具体的步骤是:
1.对原始图像i(x,y)进行fft变换,
其中u=0,1,2,...,w-1,v=0,1,2,...,h-1。
2.根据一组常数阈值参数δ0,δ1得到一个集合σ,即
σ={(u,v)|δ0<f(u,v)<δ1}
其中参数δ0,δ1分别是频率u,v的上、下限。
3.在所述集合σ上计算一个f′值,即
f′=∑(u,v)∈σf(u,v),
4.根据所述的f′值计算得到两个参数λx和λy,即
5.根据参数λx和λy生成虚位移向量,即
6.根据虚位移向量生成虚位移向量序列,即
其中,整数i表示尺度参数,取值为1,2,3,…,m。
本发明所述的虚位移光流跟踪方法,其特征是通过采用动态调整跟踪窗口大小以及虚位移尺度参数的方法实现两者之间的最佳匹配,从而提升光流场和运动场的匹配概率。
优选地,一种光流跟踪窗口大小的选择的方法如下:
1.光流跟踪窗口的大小固定从以下各值中选取:3x3,5x5,7x7,9x9,11x11,13x13,15x15
2.光流跟踪窗口的优选宽度按照如下方法计算
winsize_w=2×vx+1
3.光流跟踪窗口的优选高度按照如下方法计算:
winsize_h=2×vy+1
4.从winsize_w和winsize_h中取数值较大的一个,记为ws
5.从固定集合中选择大于ws的所有尺寸中最小的那一个。
本发明所述的基于虚位移的光流跟踪流程,其特征是使用图像金字塔方法进行光流跟踪。具体方法是:
1.对原始图像构造k层图像金字塔。在图像金字塔的第一层(原始图像层)检测特征点a并记录a在该层图像中的位置坐标(x1,y1)。根据图像金字塔的构造原理,特征点a在金字塔第k层图像中对应的位置为
2.在新一帧原始图像到来时,用所述的快速傅里叶变换方法计算得到虚位移向量v,应用公式
3.对所述iv中的每一个尺度的虚位移图像
4.分别将
5.分别将v和vi′代入置信度函数计算置信度值p(v,v′),共得到m个置信度值;
6.将m个置信度值相乘,乘积p作为特征点a的置信度值。
如果p=1,判定光流跟踪的结果可信,所述特征点a予以保留。相反地,如果p=0,则判定光流跟踪的结果不可信,所述特征点a予以删除。
为更清楚地阐述本发明的结构特征和功效,下面结合附图与具体实施例来对本发明进行详细说明。
附图说明
图1为传统光流的流程图。
图2为本发明的虚位移光流的流程图。
图3为传统检测的流程图。
图4为本发明的特征点圆形窗口。
图5为本发明中虚位移检测的流程图。
图6为本发明中虚位移金字塔图。
图7为传统金字塔图。
图8为传统光流跟踪金字塔。
图9为本发明中图像坐标。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案做进一步的说明。
参见图1-图7,一种解决由于自相似特征引起的光流场与运动场不符的方法,主要包括如下步骤:
步骤1:获取单通道视频流,单通道的灰度图像。
步骤2:对图像进行图像金字塔处理,做k层的金字塔。
步骤3:把原始图像的金字塔第一层分成number=col×row个检测区域,并且在每个检测区域内检测一个特征点,最多检测到number个特征点。特征点用p表示。
步骤4:在原始图像上应用公式(3)~(6)计算虚位移序列v,并用公式(1)得到虚位移图像序列iv,包含m个虚位移图像。
步骤5:对每一个虚拟位移图像进行图像金字塔处理,得到m个k层虚位移金字塔,每个v(i)对应一个虚位移金字塔。
步骤6:令p=(x,y)为步骤3中检测到的特征点。应用但不限于lk光流跟踪方法,将p点由原始图像金字塔跟踪到虚位移图像金字塔上的p′=(xv,yv)点,光流向量为v′=(δx,δy),其中δx=xv-x,δy=yv-y。
步骤7:将步骤6计算出来的光流向量(δx,δy)与虚位移向量v(i)代入置信度函数计算尺度i对应的置信度值,得到m个置信度值。
步骤8:将m个置信度值相乘得到最终的置信度值。如果为1则证明光流跟踪的结果正确,否则证明光流跟踪的结果错误,应把该特征点删除。
步骤9:根据步骤8的结果更新特征点,完成虚位移滤波。
步骤10:使用虚位移滤波后的特征点进行传统的光流跟踪得到光流场。
本发明提供了一种特征点筛选的方法,所述的特征点筛选的方法是基于虚位移的光流跟踪方法。
所述的特征点筛选的方法,其特征是在原始图像上检测出若干个特征点,然后按照一定的算法保留其中一部分特征点而丢弃另外一部分特征点。
本发明所采用的在原始图像上检测出若干个特征点的方法,其特征是把原始图像划分成若干个小的矩形检测区域,每个检测区域大小为n×n个像素,每个检测区域中检测出不超过z个特征点,所述n,z都是整数,且n>1,z≥1。
优选地,所述检测区域大小典型值取n=15,即每个检测区域包含225个像素。
优选地,所述特征点的数量的典型值取z=1。
进一步地,检测区域的总数量由原始图像的大小w×h和检测区域大小n×n共同确定,其中,
x轴方向检测区域的个数记为col,公示表示为:
col=w/n。
y轴方向检测区域的个数记为row,公示表示为:
row=h/n。
原始图像的检测区域的总数量为
number=col×row。
进一步地,特征点的检测顺序是从位于原始图像左上角的第一个检测区域开始,按照从左到右、从上到下的顺序依次遍历全部检测区域。
进一步地,在每个检测区域内检测z个特征点的方法是,从位于检测区域左上角的第一个像素开始,按照从左到右、从上到下的顺序依次遍历检测区域的所有像素,对每个像素运行特征点检测算法,直到有效特征点的数量已达到或超过z,或者单选地,有效特征点的数量小于z但是检测区域内已没有更多的像素可供遍历。
进一步地,所述的在每个检测区域内检测z个特征点的方法的特征是,当有效特征点的数量已达到或超过z,并且检测区域内还有剩余像素没有遍历时,所述的剩余像素将被跳过,开始下一个检测区域的处理。
优选地,在所述的在每个检测区域内检测z个特征点的方法中,一种特征点检测算法如下:
考查像素点附近直径为7个像素的圆形窗口区域,区域边缘共有16个像素,以圆心p为中心像素点。在所述16个像素点中,如果存在至少n个连续像素满足像素值全部高于中心像素p的像素值,或者等效地,存在至少n个连续像素满足像素值全部低于中心像素p的像素值,则所述中心点p就是一个符合要求的特征点。
在本发明所涉及的各个方法中,所述的虚位移就是指一个描述图像平移量的二维向量,用符号v表示,即
进一步地,给定一个虚位移向量v,在计算中常用到一个与v成整数倍关系的向量序列,为描述方便定义所述的向量序列为v,共包含m个元素,与v满足如下关系:
其中,整数i取值的为1,2,3,…,m。
在本发明所涉及的各个方法中,所述的虚位移图像,就是指将原始图像整体平移一个向量后得到的新图像。
进一步地,将原始图像整体分别平移m次,每次的平移向量为v(i),则可得到一个虚位移图像序列iv,与原始图像i满足如下关系:
本发明所述的虚位移光流跟踪方法进行特征点的筛选,其特征是根据特征点对应的虚位移向量和光流位移向量两个参数评估所述特征点的置信度。
优选地,一种评估特征点的置信度的方法如下:
定义常数参数θ和一个二元函数p,使其满足
其中v,v′是两个位移向量,|…|代表向量取模运算。
本发明所述的虚位移光流跟踪方法,其特征是在虚位移图像上使用光流方法对特征点进行跟踪。具体的步骤是:
7.在原始图像中i中选择一个检测区域s以及从属于s的特征点a;
8.确定虚位移向量v,根据所述v得到虚位移图像序列iv;
9.令i=1,..,m,分别将虚位移图像中
10.将v和各个vi′代入置信度函数,计算得到m个置信度值;
11.将m个置信度值相乘,得到总的置信度值p;
12.如果p=1,判定光流跟踪的结果可信,所述特征点a予以保留。相反地,如果p=0,则判定光流跟踪的结果不可信,所述特征点a予以删除。
本发明所述的虚位移光流跟踪方法,其特征是所述的虚位移向量v的计算使用快速傅里叶变换(fft)方法。
具体的步骤是:
7.对原始图像i(x,y)进行fft变换,
其中u=0,1,2,...,w-1,v=0,1,2,...,h-1。
8.根据一组常数阈值参数δ0,δ1得到一个集合σ,即
σ={(u,v)|δ0<f(u,v)<δ1}
其中参数δ0,δ1分别是频率u,v的上、下限。
9.在所述集合σ上计算一个f′值,即
f′=∑(u,v)∈σf(u,v),
10.根据所述的f′值计算得到两个参数λx和λy,即
11.根据参数λx和λy生成虚位移向量,即
12.根据虚位移向量生成虚位移向量序列,即
其中,整数i表示尺度参数,取值为1,2,3,…,m。
本发明所述的虚位移光流跟踪方法,其特征是通过采用动态调整跟踪窗口大小以及虚位移尺度参数的方法实现两者之间的最佳匹配,从而提升光流场和运动场的匹配概率。
优选地,一种光流跟踪窗口大小的选择的方法如下:
6.光流跟踪窗口的大小固定从以下各值中选取:3x3,5x5,7x7,9x9,11x11,13x13,15x15
7.光流跟踪窗口的优选宽度按照如下方法计算
winsize_w=2×vx+1
8.光流跟踪窗口的优选高度按照如下方法计算:
winsize_h=2×vy+1
9.从winsize_w和winsize_h中取数值较大的一个,记为ws
10.从固定集合中选择大于ws的所有尺寸中最小的那一个。
本发明所述的基于虚位移的光流跟踪流程,其特征是使用图像金字塔方法进行光流跟踪。具体方法是:
7.对原始图像构造k层图像金字塔。在图像金字塔的第一层(原始图像层)检测特征点a并记录a在该层图像中的位置坐标(x1,y1)。根据图像金字塔的构造原理,特征点a在金字塔第k层图像中对应的位置为
8.在新一帧原始图像到来时,用所述的快速傅里叶变换方法计算得到虚位移向量v,应用公式
9.对所述iv中的每一个尺度的虚位移图像
10.分别将
11.分别将v和vi′代入置信度函数计算置信度值p(v,v′),共得到m个置信度值;
12.将m个置信度值相乘,乘积p作为特征点a的置信度值。
如果p=1,判定光流跟踪的结果可信,所述特征点a予以保留。相反地,如果p=0,则判定光流跟踪的结果不可信,所述特征点a予以删除。
以上结合具体实施例描述了本发明的技术原理,仅是本发明的优选实施方式。本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。