发明内容
本发明提供一种全景监控方法及装置,以避免采集数据畸变。
本发明的技术方案是这样实现的:
一种全景监控方法,在监控场景上方设置多个摄像头,使得该多个摄像头的投影中心重合,该方法包括:
将其中一个摄像头作为主摄像头,将其它摄像头作为从摄像头,计算每个从摄像头相对于主摄像头的单应性矩阵;
对于每个从摄像头每一时刻采集的每帧图像,根据该从摄像头相对于主摄像头的单应性矩阵,计算该帧图像的每个成像点在主摄像头的投影图像上的坐标;
对于每一时刻,根据每个从摄像头在该时刻采集的图像上的各成像点在主摄像头的投影图像上的坐标,将所有摄像头采集的图像拼接成一帧全景图像。
所述计算每个从摄像头相对于主摄像头的单应性矩阵包括:
A、主、从摄像头在同一时刻对监控场景采集图像,从主、从摄像头采集的图像中提取至少4对成像点,其中,每对成像点针对同一空间点;
B、对每对成像点(u1,v1)′、(u2,v2)′,根据公式:
列出两个方程,则至少列出8个方程;
C、对所有方程求解,得到从摄像头相对于主摄像头的单应性矩阵H′:
所述计算该帧图像的每个成像点在主摄像头的投影图像上的坐标包括:
其中,(u1,v1)′表示主摄像头采集的图像中的成像点的坐标,(u2,v2)′表示从摄像头采集的图像中的成像点的坐标。
当在同一时刻,有多个摄像头同时采集到一个空间点时,
所述将所有摄像头采集的图像拼接成一帧全景图像为:
对于所述空间点在全景图像上的成像点,将所有摄像头对所述空间点的成像点在主摄像头的投影图像上的坐标取平均值,得到所述空间点在全景图像上的成像点的坐标。
所述多个摄像头的投影范围之和不小于监控范围。
一种全景监控装置,在监控场景上方设置多个摄像头,使得该多个摄像头的投影中心重合,该装置包括:
第一模块,将其中一个摄像头作为主摄像头,将其它摄像头作为从摄像头,计算每个从摄像头相对于主摄像头的单应性矩阵,将各从摄像头相对于主摄像头的单应性矩阵发送给第二模块;
第二模块,对于每个从摄像头每一时刻采集的每帧图像,根据该从摄像头相对于主摄像头的单应性矩阵,计算该帧图像的每个成像点在主摄像头的投影图像上的坐标,将该坐标发送给第三模块;
第三模块,对于每一时刻,根据每个从摄像头在该时刻采集的图像上的各成像点在主摄像头的投影图像上的坐标,将所有摄像头采集的图像拼接成一帧全景图像。
所述第一模块包括:
第一子模块,针对主、从摄像头在同一时刻对监控场景采集图像,从主、从摄像头采集的图像中提取至少4对成像点,其中,每对成像点针对同一空间点;
第二子模块,对每对成像点(u1,v1)′、(u2,v2)′,根据公式
列出两个方程,则至少列出8个方程;对所有方程求解,得到从摄像头相对于主摄像头的单应性矩阵H′
与现有技术相比,本发明中,采用多个摄像头监控同一场景,该多个摄像头的投影中心重合,并将其中一个摄像头作为主摄像头,将其它摄像头投影图像上的成像点都映射到主摄像头的投影图像上,从而得到全景图像。本发明可以避免采集数据畸变。
另外,根据本发明实施例,从摄像头相对于主摄像头的单应性矩阵可以预先得到,在监控时,直接采用该单应性矩阵进行拼接即可,从而得到全景图像的速度很快。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本发明实施例提供的全景监控方法流程图,如图1所示,其具体步骤如下:
步骤101:在监控场景上方设置多个摄像头,使得该多个摄像头的投影中心重合。
摄像头的数目可根据监控场景大小及各摄像头的投影范围设定。在设置摄像头时,要保证:所有摄像头的投影范围之和能够包含整个监控场景。
步骤102:以其中一个摄像头作为主摄像头,将其它摄像头作为从摄像头,计算每个从摄像头相对于主摄像头的单应性矩阵。
空间中的一个点和该点在图像上的成像点之间的关系可以由以下公式来表示:
其中,(X,Y,Z)′为空间点的坐标,(u,v)′是该空间点在图像上的成像点的像素坐标,R代表旋转矩阵,T代表平移矢量,K是摄像机内方位元素组成的矩阵,其一般形式为:
其中,fx、fy分别代表摄像头在坐标方向x、y上的焦距;s为比例因子;ux、uy代表摄像头的主点坐标。
公式(1)的含义是:空间点经过旋转和平移,然后透过投影中心透视成像在图像平面上。
当三维空间点的原点坐标和图像的投影中心重合时,公式(1)将变为:
在透视成像中,当两个摄像头的投影中心重合时,两个摄像头中的任意一个可以通过旋转的方式和另外一个的姿态完全一致。假设三维空间点的原点坐标和图像的投影中心重合,此时投影中心重合的两个摄像头:主摄像头和从摄像头的投影可用公式描述如下:
其中,(u1,v1)是空间点(X,Y,Z)′在主摄像头采集的图像上的成像点的像素坐标,(u2,v2)′是空间点(X,Y,Z)′在从摄像头采集的图像上的成像点的像素坐标。
由公式(5)可以得到:
将公式(6)代入公式(4),得到主、从摄像头对同一空间点的成像点之间的关系如下:
设H=λ1K1R1(λ2K2R2)-1,则:
其中,η为比例因子,通常η=1,由公式(8)可知H为一个3×3的矩阵,将该矩阵称作单应性矩阵。设
则H有9个未知数。
由于
即:
u1=η(h1u2+h2v2+h3)
v1=η(h4u2+h5v2+h6) (10)
1=η(h7u2+h8v2+h9)
将(10)中的第1个等式、第2个等式分别与第3个等式对应相除,则有:
而:
其中,
即:
则实际计算中,单应性矩阵可以简化为只包含8个未知数,即:
对于主、从摄像头来说,针对一个空间点的一对成像点可以根据公式(11)得到两个方程,这就意味着,只要从该两摄像头投影后的图像中找到4对成像点,那么就可以得到8个方程,从而计算出单应性矩阵H′。而计算出单应性矩阵H′后,就可以将该两幅图像拼接为一幅图像。
实际标定中,可以利用手工方式来提取主、从摄像头的投影图像上的对应成像点。为了提高单应性矩阵的计算精度,提取的成像点也可以多于4对。单应性矩阵可以采用最小二乘法或奇异值分解法来计算,参与计算的方程越多,其结果就越稳定。
由上可以得到计算从摄像头相对于主摄像头的单应性矩阵的步骤如下:
01:主、从摄像头在同一时刻对监控场景采集图像,从主、从摄像头采集的图像中提取至少4对成像点,其中,每对成像点针对同一空间点。
02:对每对成像点(u1,v1)′、(u2,v2)′,根据公式(11):
列出两个方程,则至少列出8个方程。
03:对所有方程求解,得到从摄像头相对于主摄像头的单应性矩阵H′。
步骤103:采用多个摄像头采集监控场景的图像。
步骤104:对于每个从摄像头采集的每帧图像上的每个成像点,采用公式(11)得到该成像点在主摄像头的投影图像上的坐标。
步骤105:对于每一时刻,根据各从摄像头在该时刻采集的图像上的各成像点在主摄像头的投影图像上的坐标,将所有摄像头的投影图像拼接成一帧图像,得到当前时刻的全景图像。
这里,对于一个空间点,若有多个摄像头同时采集到该空间点,则当拼接时,在确定该空间点在拼接图像上的像素坐标时,直接对各摄像头对该空间点的成像点在主摄像头的投影图像上的坐标取平均值即可。这里,若主摄像头也采集到该空间点,则主摄像头采集的图像上的成像点的坐标直接参与取平均值运算。
图2为本发明实施例提供的全景监控装置的组成图,本发明实施例中,在监控场景上方设置多个摄像头,使得该多个摄像头的投影中心重合,如图2所示,该装置主要包括:第一模块21、第二模块22和第三模块23,其中:
第一模块21:将其中一个摄像头作为主摄像头,将其它摄像头作为从摄像头,计算每个从摄像头相对于主摄像头的单应性矩阵,将各从摄像头相对于主摄像头的单应性矩阵发送给第二模块22。
第二模块22:对于每个从摄像头每一时刻采集的每帧图像,根据该从摄像头相对于主摄像头的单应性矩阵,计算该帧图像的每个成像点在主摄像头的投影图像上的坐标,将该坐标发送给第三模块23。
第三模块23:对于每一时刻,根据每个从摄像头在该时刻采集的图像上的各成像点在主摄像头的投影图像上的坐标,将所有摄像头采集的图像拼接成一帧全景图像。
其中,第一模块21可包括:第一子模块和第二子模块,其中:
第一子模块:针对主、从摄像头在同一时刻对监控场景采集图像,从主、从摄像头采集的图像中提取至少4对成像点,其中,每对成像点针对同一空间点。
第二子模块:对每对成像点(u1,v1)′、(u2,v2)′,根据公式
列出两个方程,则至少列出8个方程;对所有方程求解,得到从摄像头相对于主摄像头的单应性矩阵H′
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。