多摄像机的协同目标搜索方法
技术领域
本发明涉及视觉伺服领域,具体而言,涉及一种多摄像机的协同目标搜索方法。
背景技术
摄像机网络由于其显示直观、成本低廉、可检测识别等特性,已广泛应用于多个领域,如森林防火、治安管理、交通管理、智能楼宇等。通常,为保证对监控区域的全方位监控,需安装大量的固定相机以实现区域监管,而这显然显著提高了监管的成本。可旋转的云台相机的出现与应用极大地解决了这一问题,需要注意的是,相机作为一种视觉传感器,单个相机只能感知目标在相机画面中的二维信息。为对目标的状态有一个更加准确的感知,需要让两个及以上的相机观察到目标,这就需要多个相机之间的相互协作。在某一相机发现可疑目标后,其他云台相机应依据对目标的先验信息高效地实现对目标的搜索。如何精确地控制云台相机的运动,如何高效地搜索目标,是本发明希望解决的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种多摄像机的协同目标搜索方法,由多个相机实时检测可疑目标,某相机在发现目标后将信息传至其他相机,而后结合离线方法训练得到的云台相机的运动模型,控制云台相机的运动,实现对目标的高效搜索。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一个方面,提供了一种多摄像机的协同目标搜索方法,包括三个步骤,分别是步骤一:离线训练云台相机的运动模型;步骤二:各相机的初始参数标定;步骤三:各相机实时检测疑似目标,在发现目标后将信息传至其他相机,随后基于云台相机的运动模型,依据对目标的先验信息控制其他相机在空间中快速搜索目标。以下我们将依次对各个步骤进行详细介绍。
针对步骤一中的云台相机运动模型的离线训练,本方法采用的云台相机模型是任意旋转轴的云台相机模型。在该模型中,云台相机的运动被描述为绕两个旋转轴Pan轴与Tilt轴的运动,而Pan轴与Tilt轴则被认为是空间中的任意两轴,以此表示云台安装时的物理偏差。其数学表达如下:
其中,
在这里,θ表示云台相机绕Pan轴或Tilt轴转动的角度,C表示cosθ,S表示sinθ,ρk表示旋转前的坐标,ρk+1表示旋转后的坐标,Rtilt表示绕Tilt轴的方向向量n=[nx ny nz]T(可通过3个及以上的角点坐标求得)旋转的旋转矩阵,Ttilt表示从光心到Tilt旋转轴上垂足p=[a b c]T的平移矩阵。绕Pan轴变换的参数与之类似,这里不再赘述。云台相机运动建模的核心即确定两旋转轴Pan轴与Tilt轴的参数,包括方向向量n=[nx ny nz]T与平移向量p=[a b c]T。
具体的云台相机运动建模流程如下:
首先通过标定板进行相机标定,用作相机标定的图片来源于两方面。一方面,固定标定板,转动云台相机,拍摄图片作训练数据,尽管标定板的位置没有改变,但是由于云台相机的旋转,可将标定板以及标定板上的角点视作在相机坐标系中绕相机的旋转轴旋转。另一方面,需要固定相机,变换标定板的位置,拍摄图片作数据补充以提高相机尤其是高倍率相机标定结果的准确性,在相机视角较小的情况下,这方面的数据补充是非常有必要的。这是因为,在相机视角较小的情况下,如果固定标定板,只转动相机来拍摄图片,为保证标定板在相机视野内,云台相机转动的幅度较小,各标定板所在平面对应的单应性矩阵Hk非常接近,容易受到计算误差、角点检测误差等误差的干扰,从而使得张正友标定得到的相机参数如内外参、畸变系数等误差较大,进而影响后续对云台相机的建模。
通过上述相机标定,可估计出相机第k次旋转后,标定板在相机坐标系下的位姿ξk=[Rktk],k=0,1,...,l-1,l表示总的旋转次数,Rk与tk分别表示相机第k次旋转后标定板的旋转矩阵与平移矩阵。再结合事先已知的标定板上方格的尺寸为μ×μmm,可计算标定板上各角点在相机坐标系下的坐标:
其中,i=0,1,...,(m-1),j=0,1,...,(n-1)分别表示角点所处的行数与列数,m,n分别为标定板上角点的总行数与总列数。
随后,估计旋转轴的方向向量。在相机旋转的过程中,标定板上每个角点的理想轨迹可以视作在不同的平面nTρ+dij=0上。其中,n=[nx ny nz]T表示平面的法向量,同时也是旋转轴的方向向量,其模长||n||=1。ρ=[x y z]T表示平面上点的3D坐标,dij=d+idh+jdv,d表示标定板最左上角的角点的轨迹平面参数,dh和dv分别表示水平方向和垂直方向上的相邻两角点的轨迹平面之间的距离。在已知角点坐标ρijk的情况下,要让角点坐标到理想轨迹平面的距离和尽量小,故可构建代价函数如下:
通过全局最小二乘法即可实现对旋转轴的方向向量n=[nx ny nz]T的求解。
最后,在完成对旋转轴方向向量的求解后,还需计算旋转轴的平移向量才能确定旋转轴在相机坐标系下的准确位置。求解旋转轴平移向量的基本思路为:根据公式(1),利用在水平方向转动的角度信息ΔP
k=P
k+1-P
k,在垂直方向转动的角度信息ΔT
k=T
k+1-T
k,以及转动前的角点坐标ρ
ijk预测转动后的角点坐标
该预测值应与观察所得真值ρ
i,j,k+1尽可能接近,故可构建代价函数如下:
这里,为方便表示,将公式(1)中旋转前与旋转后的点之间的关系用函数f(·)表示,即
ρi,j,(k+1)=f(ΔPk,ΔTk)ρijk (7)
以参数a,b,c为待优化量,通过内点法优化求解,即实现对旋转轴平移向量的估计。
综上,即实现了对云台相机的运动建模。
步骤二中,本方法通过标定板进行双目标定,确定初始时各相机之间的相对位姿sξr=[sRr str]以及各个相机的内参矩阵Kr,其中r=0,1,...,(p-1),s=0,1,...,(p-1),r≠s。r,s分别表示相机序号,p表示需要标定的相机总数。
步骤三中,各云台相机实时运行检测算法,在某云台相机r发现可疑目标后,将信息传至其他云台相机。这里以云台相机s为例,事实上,目标在相机r画面中的二维坐标给出了该目标在三维空间中分布的线性约束,对于该线性约束上的每个点ρv=[xv yv zv]T,通过转动云台相机,将每个点依次移至画面中心,转动后的坐标为ρv+1=[0 0 norm(ρv)]T,即实现对目标的搜索。云台相机s需要转动的角度ΔPv,ΔTv可根据云台相机运动的逆动力学模型求得,以ΔPv,ΔTv为待优化量,设置其初值为0,利用LM算法优化代价函数Jv=(f(ΔPv,ΔTv)ρv-ρv+1)2,即可得到需要转动的角度ΔPv,ΔTv。但出于实时性考虑,本方法通过选取提供的线性约束上的关键点,实现对目标的快速搜索。这里,我们认为云台相机的画面尺寸为M×N,目标的深度范围d∈[dmin,dmax],依据事先标定的相机参数信息,以及目标在相机r中的2D齐次坐标pr=[u0 v0 1]T,则在基于关键点的目标搜索过程中,以图像尺寸M×N,目标在相机r中的齐次坐标pr,相机内参Kr,Ks,两相机的相对位姿sξr作为输入,以V个关键点对应的转动角度ΔPv,ΔTv,v∈[1,2,...,V]作为输出,具体包括以下子步骤:
(1)初始化:
选取两关键点ρ1,ρ2,将ρ1在相机r中的深度d1初始化为dmin,将ρ2在相机r中的深度d2初始化为dmax,由相机透视模型可得两关键点在相机r中的3D坐标分别为:
(2)坐标变换:
经过位姿变换得到关键点在相机s初始位姿下的3D坐标:
ρs1=sRr*ρr1+str,ρs2=sRr*ρr2+s tr
而后由透视模型计算在相机s初始位姿下的2D坐标:
ps1=Ks*ρs1,ps2=Ks*ρs2,
(3)计算将关键点ρ1移至相机s画面中心需要转动的角度ΔP,ΔT:
以ΔP,ΔT为待优化量,优化如下代价函数,求得关键点ρ1对应的旋转角度ΔP,ΔT并输出:
arg minΔP,ΔT(f(ΔP,ΔT)ρs1-ρs′1)2
其中,ρs′1=[0 0 norm(ρs1)]T
(4)位姿更新:
利用ΔP,ΔT,由公式(1)计算转动前的相机坐标系s到转动后相机坐标系s′的位姿变换:
s′ξs=[s′Rs s′ts]
计算转动后的相机坐标系s′与相机坐标系r的位姿关系:
s′ξr=[s′Rs*sRr s′Rs*str+s′ts]
(5)判断关键点ρ2是否在相机s′画面中:
如果ρ2不在画面中,则需要计算关键点ρ1,ρ2在相机s′画面中的连线与画面边界的交点pedge,通过三角测量的方法计算pedge在相机r中的3D坐标ρedge,将ρr1更新为ρedge,ρr2保持不变,从步骤(2)开始继续循环;如果ρ2在画面中,则循环结束,搜索完成。
本发明的有益效果在于:
1.在利用标定板进行云台相机运动建模时,针对单纯的云台相机转动容易导致的标定误差问题,加入了标定板的运动,使得各标定板平面与相机平面之间的单应性矩阵有较高区分度,得到了更为精确的标定结果,从而使得云台相机的运动建模结果更为精确。
2.在求解云台相机旋转轴的平移向量环节加入了可靠的旋转角度信息作非线性优化,使得对云台相机旋转轴平移向量的求解更为准确。
3.自主设计了一迭代的基于关键点的目标搜索算法,实现了对可疑目标的高效搜索。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
在附图中:
图1示出了任意旋转轴的云台相机模型;
图2示出了多摄像机的协同目标搜索方法流程图;
图3示出了未结合回传信息与结合回传信息(本发明方法)求得的云台相机运动模型的精度比较。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
图2示出了多摄像机的协同目标搜索方法流程图。根据本公开实施例的一个方面,提供了一种多摄像机的协同目标搜索方法,包括三个步骤,分别是步骤一:离线训练云台相机的运动模型;步骤二:各相机的初始参数标定;步骤三:各相机实时检测疑似目标,在发现目标后将信息传至其他相机,随后基于云台相机的运动模型,依据对目标的先验信息控制其他相机在空间中快速搜索目标。以下我们将依次对各个步骤进行详细介绍。
步骤一:云台相机运动模型的离线训练。本方法采用的云台相机模型是任意旋转轴的云台相机模型,如图1所示。在该模型中,云台相机的运动被描述为绕两个旋转轴Pan轴与Tilt轴的运动,而Pan轴与Tilt轴则被认为是空间中的任意两轴,以此表示云台安装时的物理偏差。其数学表达如下:
其中,
在这里,θ表示云台相机绕Pan轴或Tilt轴转动的角度,C表示cosθ,S表示sinθ,ρk表示旋转前的坐标,ρk+1表示旋转后的坐标,Rtilt表示绕Tilt轴的方向向量n=[nx ny nz]T旋转的旋转矩阵,Ttilt表示从光心到Tilt旋转轴上垂足p=[a b c]T的平移矩阵。绕Pan轴变换的参数与之类似,这里不再赘述。云台相机运动建模的核心即确定两旋转轴Pan轴与Tilt轴的参数,包括方向向量n=[nx ny nz]T与平移向量p=[a b c]T。
具体的云台相机运动建模流程如下:
首先通过标定板进行相机标定,用作相机的图片来源于两方面。一方面,固定标定板,转动云台相机,拍摄图片作训练数据,尽管标定板的位置没有改变,但是由于云台相机的旋转,可将标定板以及标定板上的角点视作在相机坐标系中绕相机的旋转轴旋转。另一方面,需要固定相机,变换标定板的位置,拍摄图片作数据补充以提高相机标定结果的准确性,在相机视角较小的情况下,这方面的数据补充是非常有必要的。在实际实验中,我们通过物理测量的方式,得到标定板左上角角点距离初始相机10.1336m。采用传统方法仅转动相机并拍摄图片,将图片分成3组,每组15张图片,进行相机标定,最后得到标定板左上角角点距初始相机的距离依次为5.497m,8.259m,12.843m,误差率分别为45.8%,18.5%,26.7%;而采用本方法,在每组图片中另外加入10张变换标定板位置后拍摄的图片,进行相机标定,最后得到标定板左上角角点距初始相机的距离依次为10.443m,10.416m,9.861m,误差率分别为3.1%,2.9%,2.7%。在相机转动角度较小的情况下,本发明方法的标定精度更高,从而能使云台相机运动建模结果更加准确。
通过上述相机标定,可估计出相机第k次旋转后,标定板在相机坐标系下的位姿ξk=[Rk tk],k=0,1,...,(l-1),l表示总的旋转次数,Rk与tk分别表示相机第k次旋转后标定板的旋转矩阵与平移矩阵。再结合事先已知的标定板上方格的尺寸为μ×μmm,可计算标定板上各角点在相机坐标系下的坐标
其中,i=0,1,...,(m-1),j=0,1,...,(n-1)分别表示角点所处的行数与列数,m,n分别为标定板上角点的总行数与总列数。
随后,估计旋转轴的方向向量。在相机旋转的过程中,标定板上每个角点的理想轨迹可以视作在不同的平面nTρ+dij=0上。其中,n=[nxny nz]T表示平面的法向量,同时也是旋转轴的方向向量,其模长||n||=1。ρ=[x y z]T表示平面上点的3D坐标,dij=d+idh+jdv,d表示标定板最左上角点的轨迹平面的参数,dh和dv分别表示水平方向和垂直方向上的相邻两角点的轨迹平面之间的距离。在已知角点坐标ρijk的情况下,要让角点坐标到理想轨迹平面的距离和尽量小,故可构建代价函数如下:
通过全局最小二乘法即可实现对旋转轴的方向向量n=[nx ny nz]T的求解。
最后,在完成对旋转轴方向向量的求解后,还需计算旋转轴的平移向量才能确定旋转轴在相机坐标系下的准确位置。求解旋转轴平移向量的基本思路为:根据公式(1),利用在水平方向转动的角度信息ΔP
k=P
k+1-P
k,在垂直方向转动的角度信息ΔT
k=T
k+1-T
k,以及转动前的角点坐标ρ
ijk预测转动后的角点坐标
该预测值应与观察所得真值ρ
i,j,k+1尽可能接近,故可构建代价函数如下:
这里,为方便表示,将公式(1)中旋转前与旋转后的点之间的关系用函数f(·)表示,即
ρi,j,(k+1)=f(ΔPk,ΔTk)ρijk (7)
以参数a,b,c为待优化量,通过内点法优化求解,即实现对旋转轴平移向量的估计。
图3示出了未结合回传信息与结合回传信息(本发明方法)求得的云台相机运动模型的精度比较。在标定板不动的情况下,转动云台相机,保存图片并作相机标定,以此获得旋转后的相机坐标系下的角点坐标作为真值。随后分别用未结合回传信息与结合回传信息求得的云台相机模型,通过转动的角度预测旋转后的角点坐标,与真值比较。两种方法所得模型的预测误差如图3所示,本发明方法求得的云台相机模型相较原方法求得的云台相机模型误差更小,用于目标搜索时的精度更高。
综上,即实现了对云台相机的运动建模。
步骤二:各相机的初始参数标定。本方法通过标定板进行双目标定,确定初始时各相机之间的相对位姿sξr=[sRr str]以及各个相机的内参矩阵Kr,其中r=0,1,...,(p-1),s=0,1,...,(p-1),r≠s。r,s分别表示相机序号,p表示需要标定的相机总数。
步骤三:各云台相机实时运行检测算法,在某云台相机r发现可疑目标后,将信息传至其他云台相机。这里以云台相机s为例,目标在相机r画面中的二维坐标给出了该目标在三维空间中分布的线性约束,对于该线性约束上的每个点ρv=[xv yvzv]T,通过转动云台相机,将每个点依次移至画面中心,转动后的坐标为ρv+1=[0 0 norm(ρv)]T,即实现对目标的搜索。云台相机s需要转动的角度ΔPv,ΔTv可根据云台相机运动的逆动力学模型求得,以ΔPv,ΔTv为待优化量,设置其初值为0,利用LM算法优化代价函数Jv=(f(ΔPv,ΔTv)ρv-ρv+1)2,即可得到需要转动的角度ΔPv,ΔTv。但出于实时性考虑,本方法通过选取提供的线性约束上的关键点,实现对目标的快速搜索。关键点的选取需要注意两点,一方面是要避免漏检,即不能让极线上的点在搜索的画面中有所遗漏,而另一方面,关键点的选取应尽可能少,从而达到提升搜索效率的目的。这里,我们认为云台相机的画面尺寸为M×N,目标的深度范围d∈[dmin,dmax],依据事先标定的相机参数信息,以及目标在相机r中的2D齐次坐标pr=[u0 v0 1]T,则在基于关键点的目标搜索过程中,以图像尺寸M×N,目标在相机r中的齐次坐标pr,相机内参Kr,Ks,两相机的相对位姿sξr作为输入,以V个关键点对应的转动角度ΔPv,ΔTv,v∈[1,2,...,V]作为输出,具体包括以下子步骤:
(1)初始化:
选取两关键点ρ1,ρ2,将ρ1在相机r中的深度d1初始化为dmin,将ρ2在相机r中的深度d2初始化为dmax,由相机透视模型可得两关键点在相机r中的3D坐标分别为:
(2)坐标变换:
经过位姿变换得到关键点在相机s初始位姿下的3D坐标:
ρs1=sRr*ρr1+str,ρs2=sRr*ρr2+s tr
而后由透视模型计算在相机s初始位姿下的2D坐标:
ps1=Ks*ρs1,ps2=Ks*ρs2,
(3)计算将关键点ρ1移至相机s画面中心需要转动的角度ΔP,ΔT:
以ΔP,ΔT为待优化量,优化如下代价函数,求得关键点ρ1对应的旋转角度ΔP,ΔT并输出:
arg minΔP,ΔT(f(ΔP,ΔT)ρs1-ρs′1)2
其中,ρs′1=[0 0 norm(ρs1)]T
(4)位姿更新:
利用ΔP,ΔT,由公式(1)计算转动前的相机坐标系s到转动后相机坐标系s′的位姿变换:
s′ξs=[s′Rs s′ts]
计算转动后的相机坐标系s′与相机坐标系r的位姿关系:
s′ξr=[s′Rs*sRr s′Rs*str+s′ts]
(5)判断关键点ρ2是否在相机s′画面中:
如果ρ2不在画面中,则需要计算关键点ρ1,ρ2在相机s′画面中的连线与画面边界的交点pedge,通过三角测量的方法计算pedge在相机r中的3D坐标ρedge,将ρr1更新为ρedge,ρr2保持不变,从步骤(2)开始继续循环;如果ρ2在画面中,则循环结束,搜索完成。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。