一种强视差下的移动相机运动目标检测方法
技术领域
本发明是属于数字图像处理与模式识别领域,尤其属于基于图像处理的目标识别、跟踪领域,具体涉及一种强视差下的移动相机运动目标检测方法。
背景技术
自动运动目标检测技术是目标搜索与跟踪***中的关键技术,为后续航迹关联、目标识别、跟踪等技术提供了初步的信息。在传统的运动目标检测***中,摄像机通常是静止的,在视频监控、交通检测等***中有着广泛的应用,然而在车载、手持等移动平台下,由于相机的移动,三维场景会产生视差的问题,此时就需要对场景视差进行有效的估计。
传统方法一般是利用运动平台下图像间的对极几何关系,如平面单应矩阵、基础矩阵以及三焦点张量等,以此来补偿或估计摄像机的运动。其中,单应矩阵利用同一平面上匹配点对之间的映射关系,特别适用于场景视差几乎可以忽略无人机航拍等情况;基础矩阵利用图像匹配点对间的射极几何关系来检测运动目标;三焦点张量利用的多视点图像由两视图增加到三视图,代表图像之间不以场景结构为转移的内在射影几何关系的数学量也由基本矩阵变成了三焦点张量,但计算更为复杂。
但是以上传统方法需要几何信息已知的参照标定物,基于主动视觉的标定方法需要利用精准的云台等硬件平台随时提供摄像机的方位信息,对硬件要求极高,不适用于便携式摄像机场合;基于自标定的方法如基本矩阵、三视角张量,虽然对标定场景和标定仪器要求不高,但往往工作量大、鲁棒性差、精确度不高。
发明内容
本发明的目的在于提供一种强视差下的移动相机运动目标检测方法,该方法结合图像的灰度信息和深度信息,建立深度约束方程,通过判断图像上的点是否满足深度约束方程来进行运动目标检测,能够解决在车载手持等移动平台下,三维场景会产生视差的问题,对运动目标进行实时高效的检测。
为了解决上述技术问题,本发明提出一种强视差下的移动相机运动目标检测方法,包括以下步骤:
步骤一:将两帧图像进行匹配,提取两帧图像的深度信息;对相机进行标定,获取相机的内部参数;
步骤二:以相机拍摄第一帧图像时的位置为世界坐标系,换算出第一帧图像上的点坐标对应的世界坐标系坐标;
步骤三:用旋转矩阵R和平移矩阵t描述两帧之间的相机运动,获得第二帧图像上的点与世界坐标系的关系,从而获得深度约束方程;
步骤四:将第二帧图像上所有匹配点的坐标和对应的深度信息代入深度约束方程,获得深度约束方程的Rt矩阵的最优解;
步骤五:利用深度约束方程计算的图像点坐标与对应的深度信息相乘;将该乘积和利用深度约束方程估计出来的结果分别作为两个三维坐标点,计算该两个三维坐标点之间的距离,并将距离归一化,若归一化距离大于设定的阈值,则判断该距离对应的点为运动目标,否则,该距离对应的点为背景。
进一步,步骤三中,所述深度约束方程如式(1)所示:
式(1)中,(u2,v2)表示前后两帧图像匹配点的图像坐标,u2、v2分别表示像素点在后一帧图像上的横坐标与纵坐标;Zc2分别表示前后两帧图像的匹配点相对于相机的深度信息;fx、fy、s、m、n分别是相机内部参数K中的参数,其中,fx,fy分别为以x,y方向的像素量纲表示的相机沿x,y方向的焦距;s为扭曲参数;(m,n)是相机成像平面上中心点坐标;Xw、Yw、Zw为第一帧图像上点对应的世界坐标系中的齐次坐标;r1,r2...r9和t1,t2,t3分别是旋转矩阵和平移矩阵的参数,且旋转矩阵平移矩阵
进一步,步骤四中,利用最小二乘法解得符合深度约束方程的Rt矩阵的最优解。
进一步,步骤五中所述两个三维坐标点之间距离的计算方式如公式(2)所示,
公式(2)中,Distance(i)为两个三维坐标点之间距离,为利用深度约束方程计算出来的第二帧图像上角点坐标与对应的深度信息的乘积;(Zc2u2,Zc2v2,Zc2)为第二帧图像上角点坐标与对应的深度信息的乘积。
进一步,归一化阈值选取在0到1之间。
本发明与现有技术相比,其显著优点在于,本发明利用二维图像坐标系到三维世界坐标系之间的关系,根据图像深度信息和摄影几何原理,并结合前后两帧图像和相机内部参数,提出了深度约束方程,并利用深度约束方程进行运动目标检测,相比于传统的移动相机运动目标检测方法,具有以下优点:(1)本强视差下的运动目标检测方法,由于结合了图像的灰度信息和深度信息,可以消除由于相机移动对运动目标检测产生的影响,剔除视差,降低虚警率,不仅适用于航拍等视差可以忽略的场景,而且在经常用于强视差环境的车载、手持设备上也有很好的效果;(2)提出了一种新的运动相机下目标检测方法的实现过程,该方法不仅将深度约束方程应用到目标检测的框架中,而且可以在多种深度探测器的平台上实现;(3)算法简单,速度较快,对硬件平台要求较低,运动目标检测率高。
附图说明
图1是本发明方法流程图。
图2是本发明实验中利用距离相机较近的小车模型作为强视差的来源,在相机向左平移且同时逆时针旋转的情况下,坦克模型自左向右运动时,连续三帧视频图像的运动目标检测结果。
图3是本发明方法与极线约束和单应性约束方法的检测率比较示意图。
图4是本发明方法与极线约束和单应性约束方法的精确率比较示意图。
具体实施方式
结合图1,本发明强视差下的移动相机运动目标检测方法,包括以下具体步骤:
步骤1:原始图像预处理:首先,对前后两帧图像的像素点进行匹配,成熟的KLT跟踪算法由于具有速度快、精度高、抗噪能力强等优点,因此采用KLT跟踪算法对前后两帧图像像素点进行匹配,得到两帧图像匹配点的图像坐标(u1,v1),(u2,v2),其中,u1、v1分别表示像素点在前一帧图像上的横坐标与纵坐标,u2、v2分别表示像素点在后一帧图像上的横坐标与纵坐标;其次,利用如Kinect相机,激光雷达等深度探测器,获取两帧图像的匹配点相对于相机的深度信息Zc1,Zc2,即相机到目标的距离;最后,利用张正友相机标定法进行相机标定,得到相机的内部参数其中,fx,fy分别为以x,y方向的像素量纲表示的相机沿x,y方向的焦距;s为扭曲参数;(m,n)是相机成像平面上中心点坐标。
步骤2:世界坐标系下的点坐标求解:以第一帧图像对应的相机坐标系为世界坐标系,根据摄影几何原理,得到第一帧图像上的点到世界坐标系的对应关系,如式(1)所示:
其中,(u1,v1,1)为第一帧图像上点的齐次坐标;(Xw,Yw,Zw,1)为该点对应的世界坐标系中的齐次坐标;Zc1为该点在相机坐标系下的深度信息;I为单位矩阵。利用式(1)得到第一帧图像上的点(u1,v1)对应的世界坐标系坐标(Xw,Yw,Zw,1),如式(2)所示:
步骤3:深度约束方程的建立:由于相机本身在运动,拍摄第二帧图像时,相机的位置相对于拍摄第一帧的位置发生了变化,用旋转矩阵R和平移矩阵t来描述两帧图像之间的相机运动,因此,第二帧图像上的点与世界坐标系的关系如式(3)所示:
其中,点(u2,v2)为点(u1,v1)在第二帧图像上的匹配点坐标;Zc2为该点在当前相机坐标系下的深度信息,将代入式(3)(其中r1,r2...r9和t1,t2,t3分别是旋转矩阵和平移矩阵的参数),并整理成AX=B的形式,得到深度约束方程:
步骤4:Rt矩阵的求解:将第二帧图像上所有匹配点的坐标和对应的深度信息代入深度约束方程,利用最小二乘法解得符合深度约束方程的Rt矩阵的最优解。
步骤5:基于深度约束方程的运动目标检测:首先,利用步骤4算出的Rt矩阵的最优解来计算深度约束方程等号右边的值,即利用深度约束方程计算出来的第二帧图像上角点坐标与对应的深度信息的乘积其次,将第二帧图像上角点坐标与对应的深度信息的乘积(Zc2u2,Zc2v2,Zc2)和利用深度约束方程计算出来的乘积看做两个三维坐标点,将这两个三维坐标点代入式(5),计算出两点之间的距离:
最后,将Distance(i)归一化得到Distance_normal(i)并进行判断,若归一化距离大于设定的阈值,则判断该距离对应的点为运动目标,反之,则判断该距离对应的点为背景,从而实现运动目标检测。归一化阈值选取在0到1之间,根据理论推导和实验经验,选取的归一化阈值的大小应正相关于相机运动速度,负相关于相机帧频,负相关于目标运动速度。若归一化阈值选取过大,会出现运动目标的漏检;若归一化阈值选取过小,会出现虚警,一般归一化阈值取0.7左右。
本发明的有益效果可以通过以下实验进一步说明:
本发明实施例以Matlab2012b为实验平台,实验利用图像大小为640×480,帧频为30Hz的Xtion三维传感器进行视频拍摄和深度信息提取。利用距离相机较近的小车模型作为强视差的来源,在相机向左平移且同时逆时针旋转的情况下,坦克模型自左向右运动。如图1所示,具体操作步骤如下:
(一)、根据本发明步骤1所述,对Xtion三维传感器获取的原始图像进行预处理,假设运动目标可以由特征点表示,首先,用Harris算法提取两帧图像的角点坐标;其次,采用KLT跟踪算法对前后两帧图像角点进行匹配,得到两帧图像匹配点的图像坐标(u1,v1),(u2,v2),如图2中(a)、(d)、(g)中白色点所示;再次,利用Xtion三维传感器获取两帧图像的匹配点相对于相机的深度信息Zc1,Zc2,如图2中(b)、(e)、(h)所示,颜色越深表示距离越近;最后,利用张正友相机标定法进行相机标定,得到相机的内部参数K。
(二)、根据本发明步骤2所述,求解世界坐标系下的匹配点坐标:根据式(1):
得到第一帧图像上的所有匹配角点对应的世界坐标系坐标(Xw,Yw,Zw,1),如式(2)所示:
(三)、根据本发明步骤3所述,建立深度约束方程:第二帧图像上的角点与世界坐标系的关系如式(3)所示:
将代入式(3),并整理成AX=B的形式,得到深度约束方程:
(四)、根据本发明步骤4所述,求解深度约束方程中的Rt矩阵:将第二帧图像上所有匹配角点的坐标和对应的深度信息代入深度约束方程,利用最小二乘法解得符合深度约束方程的Rt矩阵的最优解。
(五)、根据本发明步骤5所述,利用深度约束方程进行运动目标检测:首先,利用式(4)算出利用深度约束方程得到的角点坐标与对应的深度信息的乘积其次,将第二帧图像上角点坐标与对应的深度信息的乘积(Zc2u2,Zc2v2,Zc2)和利用深度约束方程估计出来的看做两个三维坐标点,将这两个三维坐标点代入式(5),计算出两点之间的距离:
最后,将Distance(i)归一化得到Distance_normal(i)并进行判断,若归一化距离大于设定的阈值,则判断该距离对应的点为运动目标,反之,则判断该距离对应的点为背景,从而实现运动目标检测,运动目标如图2中(c)、(f)、(i)中黑色点所示。其中,归一化阈值选取为Th=0.9。图2中(c)、(f)、(i)分别为三帧图像的检测结果,黑色的点表示检测到的运动角点。明显看出,本发明将三帧图像中的运动角点全部正确地检测出来了,而强视差角点没有被检测出来。
随机选取20帧图像,手动标记出运动目标角点,记为其中t表示第t帧;对选取出来的20帧图像进行运动目标检测,将每帧计算出来的运动目标的角点记为定义D(t)表示第t帧的检测率:
定义P(t)表示第t帧的精确率:
其中,N表示集合中点的个数。用式(6)来描述算法的检测率,即检测到的是运动目标的角点占真实运动目标角点的比例;用式(7)来描述算法的精确率,即检测到的是运动目标的角点占所有检测出来的角点的比例(反比于虚警率)。检测率和精确率的值越高表示该算法的性能越好。将本发明方法与极线约束算法和单应性约束算法作对比,将20帧图像的算法检测率和算法精确率绘制成折线图,如图3、图4所示。从图3中可以看出,本发明方法的检测率明显高于极线约束算法,略高于单应性约束算法,极线约束算法出现了明显的漏检;从图4中可以看出,本发明方法的精确率明显高于单应性约束算法,略高于极线约束算法,单应性算法出现了明显的虚警。本发明方法在检测率和精确率上都有良好的性能。
综上所述,本发明结合图像的灰度信息和深度信息,建立深度约束方程,通过判断图像上的点是否满足深度约束方程来进行运动目标检测。实验表明,该方法不仅检测率较高,而且提出的深度约束方程可以有效的去除因相机移动产生的视差对目标检测的影响,不仅可以用于视差可以忽略的航拍、监控,而且对于车载、手持等设备也有着很强的实用性。