全景视频拼接方法及装置与流程

文档序号:11880681阅读:247来源:国知局
全景视频拼接方法及装置与流程

本发明涉及图像处理技术领域,尤其涉及一种全景视频拼接方法及装置。



背景技术:

随着视频监控技术、农业信息化技术的发展,视频监控技术逐渐在农业信息化方面得到了应用。一般的视频监控技术多采用一个固定的摄像头对单个场景进行监控,对于比较大的区域如羊场等,就需要20个以上的摄像头才能覆盖整个视场范围,而多摄像机监控需要各个摄像机的视场范围具有一定的重叠区域,这就需要一种视频拼接技术,将多个摄像机采集的分辨率有限的视频通过计算机技术进行拼接后形成一个高分辨率大视场视频。而视频是由帧图像构成的,所以视频拼接归根结底还是图像的拼接。视频拼接工作也是通过将视频分解为帧图像,对相应的帧图像进行图像融合,再将拼接后的帧图像压缩为视频完成的。

普通的视频拼接算法只能适应小场景或者运动对象不是太多的情况,无法解决大场景(即比较大的区域)、大量运动对象的全景视频流畅播放的问题。

鉴于此,如何对全景视频进行拼接,以实现大场景、大量运动对象的全景视频的流畅播放成为目前需要解决的技术问题。



技术实现要素:

为解决上述的技术问题,本发明提供一种全景视频拼接方法及装置,可以对全景视频进行拼接,实现大场景、大量运动对象的全景视频的流畅播放。

第一方面,本发明提供一种全景视频拼接方法,包括:

获取目标区域内相邻两个视频传感器采集的两个视频单帧图像;

提取所述两个视频单帧图像的重叠区域;

在所述重叠区域选取预设数量对种子点;

将所述两个视频单帧图像的坐标由屏幕坐标转换为柱面坐标;

基于转换后的柱面坐标,根据选取的种子点,提取所述两个视频单帧图像的特征点;

将所述两个视频单帧图像的所有特征点进行匹配,进而将所述两个视频单帧图像进行匹配;

将所述目标区域内所有相邻两个视频传感器采集的两个视频单帧图像进行匹配,获取所述目标区域的单帧全景图像。

可选地,所述在所述重叠区域选取预设数量对种子点,包括:

将所述重叠区域划分为预设数量个子区域,每一子区域选取一对种子点。

可选地,所述每一子区域选取一对种子点,包括:

通过第一公式计算每一子区域的最大方差来得到每一子区域的一对种子点qi

其中,所述第一公式为:

<mrow> <msub> <mi>q</mi> <mi>i</mi> </msub> <mo>=</mo> <mi>arg</mi> <mi> </mi> <msub> <mi>max</mi> <mi>k</mi> </msub> <mo>&lsqb;</mo> <msubsup> <mi>&sigma;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> <mo>,</mo> <mn>0</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mn>3</mn> </mrow>

其中,为第i块子区域第k块的方差,是通过第二公式计算得到的,k为正整数,所述第二公式为:

<mrow> <msubsup> <mi>&sigma;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mi>g</mi> <msub> <mi>G</mi> <mrow> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> </munderover> <msup> <mi>g</mi> <mn>2</mn> </msup> <mo>&CenterDot;</mo> <msub> <mi>h</mi> <mi>g</mi> </msub> <mo>-</mo> <msubsup> <mi>M</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> </mrow>

其中,为第i块子区域第k块的平均值,g为灰度值,hg表示灰度值g的直方图,GMAX表示最大灰度值。

可选地,所述将所述两个视频单帧图像的坐标由屏幕坐标转换为柱面坐标,包括:

通过第三公式,将所述两个视频单帧图像的坐标由屏幕坐标(x,y)转换为柱面坐标(θ,v);

其中,所述第三公式为:

<mrow> <mi>&theta;</mi> <mo>=</mo> <msup> <mi>tan</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>/</mo> <mi>f</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>v</mi> <mo>=</mo> <mi>y</mi> <mo>/</mo> <msqrt> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>f</mi> <mn>2</mn> </msup> </mrow> </msqrt> </mrow>

其中,f为视频传感器的焦距。

可选地,所述基于转换后的柱面坐标,根据选取的种子点,提取所述两个视频单帧图像的特征点,包括:

基于转换后的柱面坐标,通过第四公式匹配图像块dx,dy的种子点,获得所述两个视频单帧图像的特征点E(dx,dy);

其中,所述第四公式为:

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <msub> <mi>d</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>d</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> <mo>&Element;</mo> <mi>B</mi> </mrow> </munder> <mo>|</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>+</mo> <mi>i</mi> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>+</mo> <mi>i</mi> <mo>+</mo> <msub> <mi>d</mi> <mi>x</mi> </msub> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>j</mi> <mo>+</mo> <msub> <mi>d</mi> <mi>y</mi> </msub> <mo>,</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&CenterDot;</mo> <msub> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow>

其中,dx,dy为图像块的位移;I(x+i,y+j,k)为第k幅图像的坐标为(x+i,y+j)像素的灰度值,I(x+i+dx,y+j+dy,k+1)为第k+1幅图像的坐标为(x+i+dx,y+j+dy)像素的灰度值;wi,j是通过第五公式计算得到的,所述第五公式为:

wi,j=di,j/D

其中,D为所有像素至图像块中心的最大距离;di,j为坐标为(i,j)的像素距离图像块中心的距离,是通过第六公式计算得到的,所述第六公式为:

<mrow> <msub> <mi>d</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msqrt> <mrow> <msup> <mi>i</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>j</mi> <mn>2</mn> </msup> </mrow> </msqrt> <mo>.</mo> </mrow>

可选地,所述将所述两个视频单帧图像的所有特征点进行匹配,包括:

通过第七公式,分别计算所述两个视频单帧图像中第一幅图像的每一个特征点与所述两个视频单帧图像中第二幅图像的各个特征点的预设大小邻域的像素值差的平方和SSD;

选取最小的SSD,所述最小的SSD所对应的所述第二幅图像的特征点与所述最小的SSD所对应的所述第一幅图像的特征点相匹配;

其中,所述第七公式为:

<mrow> <mi>S</mi> <mi>S</mi> <mi>D</mi> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>&Element;</mo> <mi>w</mi> </mrow> </munder> <msup> <mrow> <mo>&lsqb;</mo> <msub> <mi>I</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>I</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow> <mn>2</mn> </msup> </mrow>

其中,w为邻域的预设大小,I1为所述两个视频单帧图像中第一幅图像的特征点的预设大小邻域内像素的灰度值,I2为所述两个视频单帧图像中第二幅图像的特征点的预设大小邻域内像素的灰度值。

第二方面,本发明提供一种全景视频拼接装置,包括:

获取模块,用于获取目标区域内相邻两个视频传感器采集的两个视频单帧图像;

第一提取模块,用于提取所述两个视频单帧图像的重叠区域;

选取模块,用于在所述重叠区域选取预设数量对种子点;

转换模块,用于将所述两个视频单帧图像的坐标由屏幕坐标转换为柱面坐标;

第二提取模块,用于基于转换后的柱面坐标,根据选取的种子点,提取所述两个视频单帧图像的特征点;

第一匹配模块,用于将所述两个视频单帧图像的所有特征点进行匹配,进而将所述两个视频单帧图像进行匹配;

第二匹配模块,用于将所述目标区域内所有相邻两个视频传感器采集的两个视频单帧图像进行匹配,获取所述目标区域的单帧全景图像。

可选地,所述选取模块,具体用于

将所述重叠区域划分为预设数量个子区域,每一子区域选取一对种子点。

可选地,所述选取模块,具体用于

将所述重叠区域划分为预设数量个子区域,通过第一公式计算每一子区域的最大方差来得到每一子区域的一对种子点qi

其中,所述第一公式为:

<mrow> <msub> <mi>q</mi> <mi>i</mi> </msub> <mo>=</mo> <mi>arg</mi> <mi> </mi> <msub> <mi>max</mi> <mi>k</mi> </msub> <mo>&lsqb;</mo> <msubsup> <mi>&sigma;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> <mo>,</mo> <mn>0</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mn>3</mn> </mrow>

其中,为第i块子区域第k块的方差,是通过第二公式计算得到的,k为正整数,所述第二公式为:

<mrow> <msubsup> <mi>&sigma;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mi>g</mi> <msub> <mi>G</mi> <mrow> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> </munderover> <msup> <mi>g</mi> <mn>2</mn> </msup> <mo>&CenterDot;</mo> <msub> <mi>h</mi> <mi>g</mi> </msub> <mo>-</mo> <msubsup> <mi>M</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> </mrow>

其中,为第i块子区域第k块的平均值,g为灰度值,hg表示灰度值g的直方图,GMAX表示最大灰度值。

可选地,所述转换模块,具体用于

通过第三公式,将所述两个视频单帧图像的坐标由屏幕坐标(x,y)转换为柱面坐标(θ,v);

其中,所述第三公式为:

<mrow> <mi>&theta;</mi> <mo>=</mo> <msup> <mi>tan</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>/</mo> <mi>f</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>v</mi> <mo>=</mo> <mi>y</mi> <mo>/</mo> <msqrt> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>f</mi> <mn>2</mn> </msup> </mrow> </msqrt> </mrow>

其中,f为视频传感器的焦距;

和/或,

所述第二提取模块,具体用于

基于转换后的柱面坐标,通过第四公式匹配图像块dx,dy的种子点,获得所述两个视频单帧图像的特征点E(dx,dy);

其中,所述第四公式为:

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <msub> <mi>d</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>d</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> <mo>&Element;</mo> <mi>B</mi> </mrow> </munder> <mo>|</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>+</mo> <mi>i</mi> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>+</mo> <mi>i</mi> <mo>+</mo> <msub> <mi>d</mi> <mi>x</mi> </msub> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>j</mi> <mo>+</mo> <msub> <mi>d</mi> <mi>y</mi> </msub> <mo>,</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&CenterDot;</mo> <msub> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow>

其中,dx,dy为图像块的位移;I(x+i,y+j,k)为第k幅图像的坐标为(x+i,y+j)像素的灰度值,I(x+i+dx,y+j+dy,k+1)为第k+1幅图像的坐标为(x+i+dx,y+j+dy)像素的灰度值;wi,j是通过第五公式计算得到的,所述第五公式为:

wi,j=di,j/D

其中,D为所有像素至图像块中心的最大距离;di,j为坐标为(i,j)的像素距离图像块中心的距离,是通过第六公式计算得到的,所述第六公式为:

<mrow> <msub> <mi>d</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msqrt> <mrow> <msup> <mi>i</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>j</mi> <mn>2</mn> </msup> </mrow> </msqrt> <mo>;</mo> </mrow>

和/或,

所述第一匹配模块,具体用于

通过第七公式,分别计算所述两个视频单帧图像中第一幅图像的每一个特征点与所述两个视频单帧图像中第二幅图像的各个特征点的预设大小邻域的像素值差的平方和SSD;

选取最小的SSD,所述最小的SSD所对应的所述第二幅图像的特征点与所述最小的SSD所对应的所述第一幅图像的特征点相匹配,进而将所述两个视频单帧图像进行匹配;

其中,所述第七公式为:

<mrow> <mi>S</mi> <mi>S</mi> <mi>D</mi> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>&Element;</mo> <mi>w</mi> </mrow> </munder> <msup> <mrow> <mo>&lsqb;</mo> <msub> <mi>I</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>I</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow> <mn>2</mn> </msup> </mrow>

其中,w为邻域的预设大小,I1为所述两个视频单帧图像中第一幅图像的特征点的预设大小邻域内像素的灰度值,I2为所述两个视频单帧图像中第二幅图像的特征点的预设大小邻域内像素的灰度值。

由上述技术方案可知,本发明的全景视频拼接方法及装置,通过获取目标区域内相邻两个视频传感器采集的两个视频单帧图像,提取重叠区域,在重叠区域选取预设数量对种子点,将两个视频单帧图像的坐标由屏幕坐标转换为柱面坐标,基于转换后的柱面坐标,根据选取的种子点提取两个视频单帧图像的特征点,将两个视频单帧图像的所有特征点进行匹配,进而将两个视频单帧图像进行匹配,将目标区域内所有相邻两个视频传感器采集的两个视频单帧图像进行匹配,获取目标区域的单帧全景图像,可以对全景视频进行拼接,实现大场景、大量运动对象的全景视频的流畅播放,高效可行,能够得到很好的拼接效果。

附图说明

图1为本发明一实施例提供的全景视频拼接方法的流程示意图;

图2为本发明一实施例提供的全景视频拼接装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。

应说明的是,本发明实施例中全景视频拼接是指将多幅在不同时刻、从不同视角或者由不同摄像头获得的视频图像经过预处理、对齐然后无缝地融合在一起,从而得到一幅大视场、高分辨率图像的处理过程,该图像被称为全景图;种子点是指两幅基准图像重叠区域的最高的纹理像素点;图像的特征点是指图像中具有明显特征的并能把图像中的物体标识出的点。

图1示出了本发明一实施例提供的全景视频拼接方法的流程示意图,如图1所示,本实施例的全景视频拼接方法如下所述。

101、获取目标区域内相邻两个视频传感器采集的两个视频单帧图像。

在具体应用中,所述视频传感器可以优选为摄像头。

102、提取所述两个视频单帧图像的重叠区域。

103、在所述重叠区域选取预设数量对种子点。

在具体应用中,所述步骤103可以将所述重叠区域划分为预设数量个子区域,每一子区域选取一对种子点。

举例来说,所述预设数量可以为4、或8、或16等,本实施例并不对其进行限制,也可以为其他数量。

进一步地,所述每一子区域选取一对种子点,可以包括:

通过第一公式计算每一子区域的最大方差来得到每一子区域的一对种子点qi

其中,所述第一公式为:

<mrow> <msub> <mi>q</mi> <mi>i</mi> </msub> <mo>=</mo> <mi>arg</mi> <mi> </mi> <msub> <mi>max</mi> <mi>k</mi> </msub> <mo>&lsqb;</mo> <msubsup> <mi>&sigma;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> <mo>,</mo> <mn>0</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mn>3</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,为第i块子区域第k块的方差,是通过第二公式计算得到的,k为正整数,所述第二公式为:

<mrow> <msubsup> <mi>&sigma;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mi>g</mi> <msub> <mi>G</mi> <mrow> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> </munderover> <msup> <mi>g</mi> <mn>2</mn> </msup> <mo>&CenterDot;</mo> <msub> <mi>h</mi> <mi>g</mi> </msub> <mo>-</mo> <msubsup> <mi>M</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,为第i块子区域第k块的平均值,g为灰度值,hg表示灰度值g的直方图,GMAX表示最大灰度值。

104、将所述两个视频单帧图像的坐标由屏幕坐标转换为柱面坐标。

可以理解的是,通过将所述两个视频单帧图像的坐标由屏幕坐标转换为柱面坐标,可以使目标区域内相邻两个视频传感器所采集的两个视频单帧图像投影在同一柱面上。

在具体应用中,所述步骤104可以具体包括:

通过第三公式,将所述两个视频单帧图像的坐标由屏幕坐标(x,y)转换为柱面坐标(θ,v);

其中,所述第三公式为:

<mrow> <mi>&theta;</mi> <mo>=</mo> <msup> <mi>tan</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>/</mo> <mi>f</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>v</mi> <mo>=</mo> <mi>y</mi> <mo>/</mo> <msqrt> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>f</mi> <mn>2</mn> </msup> </mrow> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

其中,f为视频传感器的焦距。

具体地,所述第三公式的推导过程包括:

世界坐标P(X,Y,Z)转换为柱坐标(θ,v)的方程式如下:

其中θ表示视频传感器的摇头角度,v表示视频传感器的扫描线;

由于视频传感器采集的图像坐标是屏幕坐标(x,y),假设焦距为f,

根据视频传感器的对应的方程式x=f·X/Z,y=f·Y/Z

将以上两个方程组联合求解,可以得到屏幕坐标转换为柱坐标的转换公式为:

<mrow> <mi>&theta;</mi> <mo>=</mo> <msup> <mi>tan</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>/</mo> <mi>f</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>v</mi> <mo>=</mo> <mi>y</mi> <mo>/</mo> <msqrt> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>f</mi> <mn>2</mn> </msup> </mrow> </msqrt> <mo>.</mo> </mrow>

105、基于转换后的柱面坐标,根据选取的种子点,提取所述两个视频单帧图像的特征点。

可以理解的是,图像的特征点是图像中具有明显特征的并能把图像中的物体标识出的点。通过提取特征点,然后用特征点来标识图像中的对象,可以减少图像的存储量,在视频拼接这种每秒多帧的图像中尤为有用。特征点的特点是它们不会随着图像的旋转、缩放、投影等操作而改变的,所以通过提取多幅视频图像中的特征点,并找出对应的特征点可以实现多幅图像配准,形成全景图像。

在具体应用中,所述步骤105可以具体包括:

基于转换后的柱面坐标,通过第四公式匹配图像块dx,dy的种子点,获得所述两个视频单帧图像的特征点E(dx,dy);

其中,所述第四公式为:

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <msub> <mi>d</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>d</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> <mo>&Element;</mo> <mi>B</mi> </mrow> </munder> <mo>|</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>+</mo> <mi>i</mi> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>+</mo> <mi>i</mi> <mo>+</mo> <msub> <mi>d</mi> <mi>x</mi> </msub> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>j</mi> <mo>+</mo> <msub> <mi>d</mi> <mi>y</mi> </msub> <mo>,</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&CenterDot;</mo> <msub> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中,dx,dy为图像块的位移;I(x+i,y+j,k)为第k幅图像的坐标为(x+i,y+j)像素的灰度值,I(x+i+dx,y+j+dy,k+1)为第k+1幅图像的坐标为(x+i+dx,y+j+dy)像素的灰度值;wi,j是通过第五公式计算得到的,所述第五公式为:

wi,j=di,j/D (5)

其中,D为所有像素至图像块中心的最大距离;di,j为坐标为(i,j)的像素距离图像块中心的距离,是通过第六公式计算得到的,所述第六公式为:

<mrow> <msub> <mi>d</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msqrt> <mrow> <msup> <mi>i</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>j</mi> <mn>2</mn> </msup> </mrow> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

可以理解的是,基于转换后的柱面坐标,通过第四公式匹配图像块dx,dy的种子点,获得所述两个视频单帧图像的特征点E(dx,dy)的算法是带权的块匹配算法,这里考虑了视频传感器旋转而产生的图像扭曲。

106、将所述两个视频单帧图像的所有特征点进行匹配,进而将所述两个视频单帧图像进行匹配。

在具体应用中,所述步骤106中的“将所述两个视频单帧图像的所有特征点进行匹配”,可以具体包括:

通过第七公式,分别计算所述两个视频单帧图像中第一幅图像的每一个特征点与所述两个视频单帧图像中第二幅图像的各个特征点的预设大小邻域的像素值差的平方和SSD;

选取最小的SSD,所述最小的SSD所对应的所述第二幅图像的特征点与所述最小的SSD所对应的所述第一幅图像的特征点相匹配;

其中,所述第七公式为:

<mrow> <mi>S</mi> <mi>S</mi> <mi>D</mi> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>&Element;</mo> <mi>w</mi> </mrow> </munder> <msup> <mrow> <mo>&lsqb;</mo> <msub> <mi>I</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>I</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

其中,w为邻域的预设大小,I1为所述两个视频单帧图像中第一幅图像的特征点的预设大小邻域内像素的灰度值,I2为所述两个视频单帧图像中第二幅图像的特征点的预设大小邻域内像素的灰度值。

可以理解的是,上述是以图像的每一个特征点为中心,将其w大小的邻域窗口的像素值作为该特征点的描述符,通过第七公式,分别计算所述两个视频单帧图像中第一幅图像的每一个特征点与所述两个视频单帧图像中第二幅图像的各个特征点的预设大小邻域的像素值差的平方和SSD,选取最小的SSD,所述最小的SSD所对应的所述第二幅图像的特征点与所述最小的SSD所对应的所述第一幅图像的特征点相匹配。该方法直接利用图像的灰度信息值,是进行特征点图像匹配的一种高效可行的方法。

107、将所述目标区域内所有相邻两个视频传感器采集的两个视频单帧图像进行匹配,获取所述目标区域的单帧全景图像。

应说明的是,本实施例的全景视频拼接方法,可以应用于羊场等区域范围比较大、运动对象比较多的场景。以羊场为例,羊场的羊圈至少有30多个,总面积能达到3000平米以上,羊只众多,利用本实施例的全景视频拼接方法可以将一栋羊场内部的30多个摄像头采集的视频拼接成覆盖整栋羊舍的大分辨率全景视频。

本实施例的全景视频拼接方法,通过获取目标区域内相邻两个视频传感器采集的两个视频单帧图像,提取重叠区域,在重叠区域选取预设数量对种子点,将两个视频单帧图像的坐标由屏幕坐标转换为柱面坐标,基于转换后的柱面坐标,根据选取的种子点提取两个视频单帧图像的特征点,将两个视频单帧图像的所有特征点进行匹配,进而将两个视频单帧图像进行匹配,将目标区域内所有相邻两个视频传感器采集的两个视频单帧图像进行匹配,获取目标区域的大分辨率单帧全景图像,可以对全景视频进行拼接,实现大场景、大量运动对象的全景视频的流畅播放,高效可行,能够得到很好的拼接效果。

图2示出了本发明一实施例提供的全景视频拼接装置的结构示意图,如图2所示,本实施例的全景视频拼接装置,包括:获取模块21、第一提取模块22、选取模块23、转换模块24、第二提取模块25、第一匹配模块26和第二匹配模块27;其中:

获取模块21用于获取目标区域内相邻两个视频传感器采集的两个视频单帧图像;

第一提取模块22用于提取所述两个视频单帧图像的重叠区域;

选取模块23用于在所述重叠区域选取预设数量对种子点;

转换模块24用于将所述两个视频单帧图像的坐标由屏幕坐标转换为柱面坐标;

第二提取模块25用于基于转换后的柱面坐标,根据选取的种子点,提取所述两个视频单帧图像的特征点;

第一匹配模块26用于将所述两个视频单帧图像的所有特征点进行匹配,进而将所述两个视频单帧图像进行匹配;

第二匹配模块27用于将所述目标区域内所有相邻两个视频传感器采集的两个视频单帧图像进行匹配,获取所述目标区域的单帧全景图像。

在具体应用中,所述选取模块23,可具体用于

将所述重叠区域划分为预设数量个子区域,每一子区域选取一对种子点。

举例来说,所述预设数量可以为4、或8、或16等,本实施例并不对其进行限制,也可以为其他数量。

进一步地,所述选取模块23,可具体用于

将所述重叠区域划分为预设数量个子区域,通过第一公式计算每一子区域的最大方差来得到每一子区域的一对种子点qi

其中,所述第一公式为:

<mrow> <msub> <mi>q</mi> <mi>i</mi> </msub> <mo>=</mo> <mi>arg</mi> <mi> </mi> <msub> <mi>max</mi> <mi>k</mi> </msub> <mo>&lsqb;</mo> <msubsup> <mi>&sigma;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>&rsqb;</mo> <mo>,</mo> <mn>0</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mn>3</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,为第i块子区域第k块的方差,是通过第二公式计算得到的,k为正整数,所述第二公式为:

<mrow> <msubsup> <mi>&sigma;</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mi>g</mi> <msub> <mi>G</mi> <mrow> <mi>M</mi> <mi>A</mi> <mi>X</mi> </mrow> </msub> </munderover> <msup> <mi>g</mi> <mn>2</mn> </msup> <mo>&CenterDot;</mo> <msub> <mi>h</mi> <mi>g</mi> </msub> <mo>-</mo> <msubsup> <mi>M</mi> <mrow> <mi>k</mi> <mo>,</mo> <mi>i</mi> </mrow> <mn>2</mn> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,为第i块子区域第k块的平均值,g为灰度值,hg表示灰度值g的直方图,GMAX表示最大灰度值。

在具体应用中,所述转换模块24,可具体用于

通过第三公式,将所述两个视频单帧图像的坐标由屏幕坐标(x,y)转换为柱面坐标(θ,v);

其中,所述第三公式为:

<mrow> <mi>&theta;</mi> <mo>=</mo> <msup> <mi>tan</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>/</mo> <mi>f</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>v</mi> <mo>=</mo> <mi>y</mi> <mo>/</mo> <msqrt> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>f</mi> <mn>2</mn> </msup> </mrow> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

其中,f为视频传感器的焦距。

在具体应用中,所述第二提取模块25,可具体用于

基于转换后的柱面坐标,通过第四公式匹配图像块dx,dy的种子点,获得所述两个视频单帧图像的特征点E(dx,dy);

其中,所述第四公式为:

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <msub> <mi>d</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>d</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> <mo>&Element;</mo> <mi>B</mi> </mrow> </munder> <mo>|</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>+</mo> <mi>i</mi> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>j</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>+</mo> <mi>i</mi> <mo>+</mo> <msub> <mi>d</mi> <mi>x</mi> </msub> <mo>,</mo> <mi>y</mi> <mo>+</mo> <mi>j</mi> <mo>+</mo> <msub> <mi>d</mi> <mi>y</mi> </msub> <mo>,</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>|</mo> <mo>&CenterDot;</mo> <msub> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中,dx,dy为图像块的位移;I(x+i,y+j,k)为第k幅图像的坐标为(x+i,y+j)像素的灰度值,I(x+i+dx,y+j+dy,k+1)为第k+1幅图像的坐标为(x+i+dx,y+j+dy)像素的灰度值;wi,j是通过第五公式计算得到的,所述第五公式为:

wi,j=di,j/D (5)

其中,D为所有像素至图像块中心的最大距离;di,j为坐标为(i,j)的像素距离图像块中心的距离,是通过第六公式计算得到的,所述第六公式为:

<mrow> <msub> <mi>d</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>=</mo> <msqrt> <mrow> <msup> <mi>i</mi> <mn>2</mn> </msup> <mo>+</mo> <msup> <mi>j</mi> <mn>2</mn> </msup> </mrow> </msqrt> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

在具体应用中,所述第一匹配模块26,可具体用于

通过第七公式,分别计算所述两个视频单帧图像中第一幅图像的每一个特征点与所述两个视频单帧图像中第二幅图像的各个特征点的预设大小邻域的像素值差的平方和SSD;

选取最小的SSD,所述最小的SSD所对应的所述第二幅图像的特征点与所述最小的SSD所对应的所述第一幅图像的特征点相匹配,进而将所述两个视频单帧图像进行匹配;

其中,所述第七公式为:

<mrow> <mi>S</mi> <mi>S</mi> <mi>D</mi> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>&Element;</mo> <mi>w</mi> </mrow> </munder> <msup> <mrow> <mo>&lsqb;</mo> <msub> <mi>I</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>I</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

其中,w为邻域的预设大小,I1为所述两个视频单帧图像中第一幅图像的特征点的预设大小邻域内像素的灰度值,I2为所述两个视频单帧图像中第二幅图像的特征点的预设大小邻域内像素的灰度值。

本实施例的全景视频拼接装置,可以应用于羊场等区域范围比较大、运动对象比较多的场景,通过获取模块获取目标区域内相邻两个视频传感器采集的两个视频单帧图像,第一提取模块提取所述两个视频单帧图像的重叠区域,选取模块在所述重叠区域选取预设数量对种子点,转换模块将所述两个视频单帧图像的坐标由屏幕坐标转换为柱面坐标,第二提取模块基于转换后的柱面坐标,根据选取的种子点,提取所述两个视频单帧图像的特征点,第一匹配模块将所述两个视频单帧图像的所有特征点进行匹配,进而将所述两个视频单帧图像进行匹配,第二匹配模块将所述目标区域内所有相邻两个视频传感器采集的两个视频单帧图像进行匹配,获取所述目标区域的大分辨率单帧全景图像,可以对全景视频进行拼接,实现大场景、大量运动对象的全景视频的流畅播放,高效可行,能够得到很好的拼接效果。

本实施例的全景视频拼接装置,可以用于执行前述图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1