发明内容
有鉴于此,本发明的主要目的在于较为准确地获取视频图像中目标运动速度。
为达到上述目的,按照本发明的第一个方面,提供了一种获取视频图像中目标运动速度的方法,该方法包括:
第一步骤,获取视频图像中目标运动轨迹的点数NUM;
第二步骤,若目标运动轨迹的点数小于第一阈值,则转入第三步骤,否则转入第四步骤;
第三步骤,采用CV法获取目标运动的水平速度和垂直速度;
第四步骤,获取视频图像中当前帧图像内目标的轨迹点与前M帧图像内目标的轨迹点的距离;
第五步骤,若距离大于单位距离,则转入第六步骤,否则转入第七步骤;
第六步骤,采用ECV1法获取目标运动的水平速度和垂直速度;
第七步骤,采用ECV2法获取目标运动的水平速度和垂直速度;
第八步骤,根据目标运动的水平速度和垂直速度,计算目标运动的速度和方向并输出。
所述第一步骤中根据目标跟踪结果中的目标的运动轨迹,获取视频图像中目标运动轨迹的点数NUM。其中,该步骤中输入的目标跟踪结果包括目标的运动轨迹和目标的尺寸。
所述第二步骤为:如果目标运动轨迹的点数NUM<第一阈值T1,则转入第三步骤;如果目标运动轨迹的点数NUM≥第一阈值T1,则转入第四步骤。
所述第三步骤中CV法获取目标运动的水平速度和垂直速度的方法如下:以当前帧图像为第0帧图像,前i帧图像为第i帧图像(i∈[1,NUM],其中NUM为视频图像中目标运动轨迹的点数),计算第j(j=1,2,…,N)帧图像与第j-1帧图像内目标的水平位移d
xj、垂直位移d
yj,计算水平位移d
xj的平均值
垂直位移d
yj的平均值
然后根据帧间时间ΔT,计算目标运动的水平速度
垂直速度
其中,N表示从当前帧图像开始选择到前N帧图像,N∈[4,第一阈值T1)且N为整数。
所述第四步骤为:分别计算视频图像中前M帧图像内目标的轨迹点与当前帧图像内目标的轨迹点的水平位移dx、垂直位移dy,则视频图像中前M帧图像内目标的轨迹点与当前帧图像内目标的轨迹点的距离
其中,M表示相隔的帧数,满足6≤2M≤NUM(NUM为视频图像中目标运动轨迹的点数)且M为整数。
所述第五步骤为:首先计算目标的单位距离unitDist,其计算公式如下:
其中,W、H分别表示目标的宽度、高度,min_match_coef表示最小匹配系数;如果视频图像中前M帧图像内目标的轨迹点与当前帧图像内目标的轨迹点的距离DM大于单位距离unitDist,则转入第六步骤,否则转入第七步骤。
所述第六步骤中ECV1法获取目标运动的水平速度和垂直速度的方法如下:以当前帧图像为第0帧图像,前i帧图像为第i帧图像(i∈[1,NUM],其中NUM为视频图像中目标运动轨迹的点数),计算第M+j-1(j=1,2,…,M,M为相隔的帧数)帧图像到第j-1帧图像内目标的水平位移d
xj、垂直位移d
yj,计算水平位移d
xj的平均值
垂直位移d
yj的平均值
然后根据帧间时间ΔT和相隔的帧数M,计算目标运动的水平速度v
x、垂直速度v
y,其计算公式如下:
所述第七步骤中ECV2法获取视频图像中目标运动的水平速度和垂直速度的方法如下:
(1)搜索跨越点Gap:以当前帧图像为第0帧图像,前i帧图像为第i帧图像(i∈[1,NUM]),从p=1开始搜索跨越点,计算第M+p帧图像内目标的轨迹点与第0帧图像内目标的轨迹点的水平位移dx′、垂直位移dy′,第M+p帧图像内目标的轨迹点与第0帧图像内目标的轨迹点的位移距离为
如果位移距离D
M+p小于单位距离unitDist,则认为找到跨越点,跨越点Gap=p并转入下一步骤;否则p=p+1,继续从第M+p帧图像开始搜索跨越点Gap;
(2)计算目标运动速度:计算第M+Gap+j-1(j=1,2,…,M)帧图像到第j-1帧图像内目标的水平位移d
xj、垂直位移d
yj,计算水平位移d
xj的平均值
垂直位移d
yj的平均值
然后根据帧间时间ΔT和相隔的帧数M+Gap,计算目标运动的水平速度v
x、垂直速度v
y,其计算公式如下:
所述第八步骤108中根据目标运动的水平速度和垂直速度,计算目标运动的速度v和方向θ的公式如下:
按照本发明的另一个方面,提供了一种获取视频图像中目标运动速度的装置,该装置包括:
目标运动轨迹的点数获取模块,用于获取视频图像中目标运动轨迹的点数NUM;
目标运动轨迹点数判断模块,用于若目标运动轨迹的点数小于第一阈值,则转入CV法获取水平和垂直速度模块,否则转入M帧间距目标距离获取模块;
CV法获取水平和垂直速度模块,用于采用CV法获取目标运动的水平速度和垂直速度;
M帧间距目标距离获取模块,用于获取视频图像中当前帧图像内目标的轨迹点与前M帧图像内目标的轨迹点的距离;
单位距离判断模块,用于若距离大于单位距离,则转入ECV1法获取水平和垂直速度模块,否则转入ECV2法获取水平和垂直速度模块;
ECV1法获取水平和垂直速度模块,用于采用ECV1法获取目标运动的水平速度和垂直速度;
ECV2法获取水平和垂直速度模块,用于采用ECV2法获取目标运动的水平速度和垂直速度;
速度和方向计算模块,用于根据目标运动的水平速度和垂直速度,计算目标运动的速度和方向并输出。
与现有技术相比,按照本发明的获取视频图像中目标运动速度的方法和装置有三种不同的速度获取方法,可以根据实际场景选择最为合适的速度获取方法,有效地提高了目标运动速度获取的准确性。
具体实施方式
本发明主要用于实现视频图像中目标运动速度的获取,可以用于诸如目标跟踪、目标分类、目标行为分析等图像分析技术领域。
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
本发明基于分析目标的运动轨迹的基础上,目标的运动轨迹是利用目标跟踪方法通过连续帧视频图像中对每帧图像内目标的位置进行连续跟踪而形成的轨迹。其中,每帧图像内目标的位置对应一个轨迹点。目标跟踪方法不是本发明的发明点,这里不再详述,具体可以参照现有技术,例如可以参考公开号为CN101739686A的中国专利申请。
为了使下文说明清楚,作以下定义:前i帧图像是指当前帧图像往前的与当前帧图像相隔i帧的图像,例如前1帧图像是指当前帧图像的上一帧图像,前2帧图像是指前1帧图像的上一帧图像。
图1表示按照本发明的一种获取视频图像中目标运动速度的方法的流程图。如图1所示,按照本发明的一种获取视频图像中目标运动速度的方法包括:
第一步骤101,获取视频图像中目标运动轨迹的点数;
第二步骤102,若目标运动轨迹的点数小于第一阈值,则转入第三步骤103,否则转入第四步骤104;
第三步骤103,采用CV法获取目标运动的水平速度和垂直速度;
第四步骤104,获取视频图像中当前帧图像内目标的轨迹点与前M帧图像内目标的轨迹点的距离;
第五步骤105,若距离大于单位距离,则转入第六步骤106,否则转入第七步骤107;
第六步骤106,采用ECV1法获取目标运动的水平速度和垂直速度;
第七步骤107,采用ECV2法获取目标运动的水平速度和垂直速度;
第八步骤108,根据目标运动的水平速度和垂直速度,计算目标运动的速度和方向并输出。
其中,所述第一步骤101中根据目标跟踪结果中的目标的运动轨迹,获取视频图像中目标运动轨迹的点数NUM可以通过统计视频图像中目标运动轨迹点存在的图像的帧数而获得。其中,第一步骤101中输入的目标跟踪结果包括目标的运动轨迹和目标的尺寸。
所述第二步骤102为:如果目标运动轨迹的点数NUM<第一阈值T1,则转入第三步骤103;如果目标运动轨迹的点数NUM≥第一阈值T1,则转入第四步骤104。第一阈值T1∈[12,20]。
所述第三步骤103中CV法获取目标运动的水平速度和垂直速度的方法如下:以当前帧图像为第0帧图像,前i帧图像为第i帧图像(i∈[1,NUM],其中NUM为视频图像中目标运动轨迹的点数),计算第j(j=1,2,…,N)帧图像与第j-1帧图像内目标的水平位移d
xj、垂直位移d
yj,计算水平位移d
xj的平均值
垂直位移d
yj的平均值
然后根据帧间时间ΔT,计算目标运动的水平速度
垂直速度
其中,N表示从当前帧图像开始选择到前N帧图像,N∈[4,第一阈值T1)且N为整数,可以根据实际需求设定,N的取值越大速度计算的越准确,但相应地消耗的计算时间也较长。
图2给出了当选择N=4时,按照CV法获取目标运动的水平速度和垂直速度的一例示意图。如图2所示,0、1、...、4分别表示第0帧图像、第1帧图像、...、第4帧图像,分别对应于当前帧图像、前1帧图像、...、前4帧图像;ΔT为相邻两帧图像的时间;dxj(j=1,2,…,4)表示第j帧图像内目标的轨迹点与第j-1帧图像内目标的轨迹点在水平方向的位移,dyj表示第j帧图像内目标的轨迹点与第j-1帧图像内目标的轨迹点在垂直方向的位移,CV法获取目标运动的水平速度vx和垂直速度vy的公式如下:
所述第四步骤104为:分别计算视频图像中前M帧图像内目标的轨迹点与当前帧图像内目标的轨迹点的水平位移dx、垂直位移dy,则视频图像中前M帧图像内目标的轨迹点与当前帧图像内目标的轨迹点的距离
其中,M表示相隔的帧数,满足6≤2M≤NUM(NUM为视频图像中目标运动轨迹的点数)且M为整数,M可以根据实际需求设定,M的取值越大速度计算的越准确,但相应地消耗的计算时间也较长,需要等待充足的轨迹数据生成的时间也长。
所述第五步骤105为:首先计算目标的单位距离unitDist,其计算公式如下:
其中,W、H分别表示目标的宽度、高度,min_match_coef表示最小匹配系数;如果视频图像中前M帧图像内目标的轨迹点与当前帧图像内目标的轨迹点的距离DM大于单位距离unitDist,则转入第六步骤106,否则转入第七步骤107。其中,min_match_coef∈[0.6,0.7]。
所述第六步骤106中ECV1法获取目标运动的水平速度和垂直速度的方法如下:以当前帧图像为第0帧图像,前i帧图像为第i帧图像(i∈[1,NUM],其中NUM为视频图像中目标运动轨迹的点数),计算第M+j-1(j=1,2,…,M,M为相隔的帧数)帧图像到第j-1帧图像内目标的水平位移d
xj、垂直位移d
yj,计算水平位移d
xj的平均值
垂直位移d
yj的平均值
然后根据帧间时间ΔT和相隔的帧数M,计算目标运动的水平速度v
x、垂直速度v
y,其计算公式如下:
图3给出了当选择M=4时,ECV1法获取目标运动的水平速度和垂直速度的一例示意图。如图3所示,0、1、...、7分别表示第0帧图像、第1帧图像、...、第7帧图像,分别对应于当前帧图像、前1帧图像、...、前7帧图像;ΔT为相邻两帧图像的时间;dxj(j=1,2,…,4)表示第j+3帧图像内目标的轨迹点与第j-1帧图像内目标的轨迹点在水平方向的位移,dyj表示第j+3帧图像内目标的轨迹点与第j-1帧图像内目标的轨迹点在垂直方向的位移,ECV1法获取目标运动的水平速度vx和垂直速度vy的公式如下:
所述第七步骤107中ECV2法主要针对速度较慢的目标使用的,为了弥补目标的位移较小而造成的速度计算不准确问题,ECV2法在ECV1法的基础上进行了“跨越点”处理,以保证目标的位移足够大。ECV2法获取视频图像中目标运动的水平速度和垂直速度的方法如下:
(1)搜索跨越点Gap:以当前帧图像为第0帧图像,前i帧图像为第i帧图像(i∈[1,NUM],其中NUM为视频图像中目标运动轨迹的点数),从p=1开始搜索跨越点,计算第M+p帧图像内目标的轨迹点与第0帧图像内目标的轨迹点的水平位移dx′、垂直位移dy′,第M+p帧图像内目标的轨迹点与第0帧图像内目标的轨迹点的位移距离为
如果位移距离D
M+p小于单位距离unitDist,则认为找到跨越点,跨越点Gap=p并转入下一步骤;否则p=p+1,继续从第M+p帧图像开始搜索跨越点Gap。
(2)计算目标运动速度:计算第M+Gap+j-1(j=1,2,…,M)帧图像到第j-1帧图像内目标的水平位移d
xj、垂直位移d
yj,计算水平位移d
xj的平均值
垂直位移d
yj的平均值
然后根据帧间时间ΔT和相隔的帧数M+Gap,计算目标运动的水平速度v
x、垂直速度v
y,其计算公式如下:
图4给出了当选择M=4时,ECV2法获取目标运动的水平速度和垂直速度的一例示意图。如图3所示,0、1、...、11分别表示第0帧图像、第1帧图像、...、第11帧图像,分别对应于当前帧图像、前1帧图像、...、前11帧图像;ΔT为相邻两帧图像的时间,Gap=4为该例中搜索到的跨越点;dxj(j=1,2,…,4)、dyj分别表示第j+7帧图像内目标的轨迹点与第j-1帧图像内目标的轨迹点在水平方向的位移、垂直方向的位移,ECV2法获取目标运动的水平速度vx和垂直速度vy的公式如下:
所述第八步骤108中根据目标运动的水平速度和垂直速度,计算目标运动的速度v和方向θ的公式如下:
图5给出了按照本发明的一种获取视频图像中目标运动速度的装置的结构图。如图5所示,按照本发明的一种获取视频图像中目标运动速度的装置包括:
目标运动轨迹的点数获取模块1,用于获取视频图像中目标运动轨迹的点数;
目标运动轨迹点数判断模块2,用于若目标运动轨迹的点数小于第一阈值,则转入CV法获取水平和垂直速度模块3,否则转入M帧间距目标距离获取模块4;
CV法获取水平和垂直速度模块3,用于采用CV法获取目标运动的水平速度和垂直速度;
M帧间距目标距离获取模块4,用于获取视频图像中当前帧图像内目标的轨迹点与前M帧图像内目标的轨迹点的距离;
单位距离判断模块5,用于若距离大于单位距离,则转入ECV1法获取水平和垂直速度模块6,否则转入ECV2法获取水平和垂直速度模块7;
ECV1法获取水平和垂直速度模块6,用于采用ECV1法获取目标运动的水平速度和垂直速度;
ECV2法获取水平和垂直速度模块7,用于采用ECV2法获取目标运动的水平速度和垂直速度;
速度和方向计算模块8,用于根据目标运动的水平速度和垂直速度,计算目标运动的速度和方向并输出。
与现有技术相比,按照本发明的获取视频图像中目标运动速度的方法和装置有三种不同的速度获取方法,可以根据实际场景选择最为合适的速度获取方法,有效地提高了目标运动速度获取的准确性。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,应当理解,本发明并不限于这里所描述的实现方案,这些实现方案描述的目的在于帮助本领域中的技术人员实践本发明。任何本领域中的技术人员很容易在不脱离本发明精神和范围的情况下进行进一步的改进和完善,因此本发明只受到本发明权利要求的内容和范围的限制,其意图涵盖所有包括在由所附权利要求所限定的本发明精神和范围内的备选方案和等同方案。