一种基于固定相机自动标定的人车目标特征提取方法
技术领域
本发明属于计算机视觉技术领域,涉及一种基于固定相机自动标定的人车目标特征提取方法。
背景技术
目前智能视频分析在各行业得到了广泛的应用,而人车目标分类是其中最常用的一个功能。
人车分类作为一种典型的二分类问题,大多数的现有专利都把重点放在特征选取上,例如2014100075385号专利使用了HOG特征来训练神经网络分类器,200910077432号专利使用了目标轮廓,运动速度等空间和时间特征,201010620374号专利使用了目标边缘的直线特征等等。
所有的这些特征,都是在视频图像的二维平面上提取的,但人车目标实际上是在三维空间内运动,这就导致了大量与尺度相关的特征(比如目标高度,面积,速度等等)都是在失真的情况下被计算的;比如由于景深存在,图像下方的目标往往较大,而图像上方目标会较小,但这种尺度差异,并不与图像坐标系形成某种线性关系,因此简单根据二维图像中目标成像的大小来提取特征,相当于是在错误的假设上建立模型,这将极大影响到后续分类的效果。
发明内容
本发明针对现有技术的不足,提供了一种基于固定相机自动标定的人车目标特征提取方法。
本发明通过利用一段时间的人体目标检测,对固定相机进行自标定并获得相机参数,从而计算出人车目标在三维空间(而不是二维图像空间)中的真实尺度,以此获得更为精确的特征,实现更好的目标分类效果。
本发明方法包括以下步骤:
步骤1、利用人体检测或人车分类方法,对固定相机进行一段时间的人体目标检测。
步骤2、当检测到足够多的人体目标后,判断其分布是否合理;判断策略为:人体目标个数必须大于20,计算所有人体目标在图像纵向,即Y方向的均值标准差分布,标准差必须大于均值的0.25倍。
步骤3、把检测到的n个人体目标,按正常人的平均身高米h0作为参考物,对相机进行标定,计算出相机的安装高度H,倾角θ,焦距f,具体是:
设相机安装的高度范围在1-10米,安装倾角为0-60度,相机内参焦距为图像高度的1/2倍到2倍之间。提取目标包围盒的上下端点,假设下端点p1(u1,v1)为目标着地的点,上端点p2(u2,v2)为目标的最高点,则人体高度h:
使用迭代方法遍历所有可能参数,最小化所有人体目标高度误差总和即:
得到相机参数之后,就能对所有检测到的目标进行真实三维世界中的尺度相关特征的计算。根据公式:
就可以将图像中地面上的点(u,v)转化为三维空间中的点(x,y)了。有了三维空间坐标点的计算方法,就可以计算三维空间中任意两点a,b间的距离,即物理宽度特征w。
在得到物理宽度特征之后,根据目标运动的帧数n和视频的帧率fps,就可以计算出目标的物理速度特征s
s=w·fps/n。
本发明的有益效果:
1、对于人车目标,提高尺度相关特征的精度,从而提高最终目标分类的效果。
2、相机标定由算法自动完成,且对原有检测方法的要求较低。
3、特征可以与任何其他特征结合,不存在相互依赖性,可以说任何已有的人车目标特征提取方法,都可以通过本发明来提高性能。
附图说明
图1为本发明方法流程图。
具体实施方式
以下结合实施例和附图1对本发明作进一步说明:
本发明首先利用常规的人体检测或人车分类方法,对固定相机进行一段时间的人体目标检测;由于此时人体检测的目的是用于相机自标定,所以并不需要很高的检测率,但需保证较低的误检率;以目前算法的成熟度,通过一些设置较严格阈值等方法,一般都能达到要求。
当检测到足够多的人体目标后,判断其分布是否合理,希望这些人体目标能够在图像的纵向即Y方向尽量离散的分布,对应于三维空间的意义就是人体目标能够由近及远的分布,而不是集中于离相机相同距离的某条直线上。判断策略为:人体目标个数必须大于20,计算所有人体目标在图像纵向即Y方向的均值标准差分布,标准差必须大于均值的0.25倍。因为将会把人体作为参考物来进行相机的自动标定,所以参考物的分布必须满足标定要求,若不合要求,可以延长人体检测的时间,直到获得足够数量以及分布合理的人体目标。
把检测到的n个人体目标,按正常人的平均身高h0=1.7米作为参考物,对相机进行标定,计算出相机的安装高度H,倾角θ,焦距f三个参数。根据一般监控相机的特性,假定安装的高度范围在1-10米,安装倾角为0-60度,相机内参焦距为图像高度的1/2倍到2倍之间。提取目标包围盒的上下端点,假设下端点p1(u1,v1)为目标着地的点,上端点p2(u2,v2)为目标的最高点。推导得人体高度h计算公式:
使用迭代方法遍历所有可能参数最小化所有人体目标高度误差总和即:
有了相机参数之后,就能对所有检测到的目标进行真实三维世界中的尺度相关特征的计算了。根据公式:
就可以将图像中地面上的点(u,v)转化为三维空间中的点(x,y)了。有了三维空间坐标点的计算方法,就可以很容易的计算三维空间中任意两点a,b间的距离,即物理宽度特征w。
在得到物理宽度特征w之后,根据目标运动的帧数n和视频的帧率fps,就可以计算出目标的物理速度特征s。
s=w·fps/n
通过以上步骤,就可以在二维图像中获得目标在三维空间中的真实尺度特征,这比直接在二维图像上提取的尺度特征具有更小的误差,为后续的分类等工作提供更高的性能。
实施例:
步骤1:利用基于背景建模的运动目标检测算法,以及通过提取目标的轮廓特征来进行人体检测。在一段视频中得到200个人体目标包围盒。
步骤2:判断这200个人体目标包围盒是否符合分布规则,若符合则进入步骤3。
步骤3:利用这200个人体目标包围盒,建立相机模型,计算得到相机的安装高度H=3米,焦距f=0.02,倾角θ=30度。
步骤4:利用相机参数,即可对每个目标计算物理宽度,物理速度,物理高度三个特征。
步骤5:利用新增的三个特征,手动设定分类阈值,修正原有的分类结果。
综上,本发明利用简单的人体目标检测方法,获取一定数量满足标定要求的参考物后,对相机进行自动标定,从而获得相机参数。利用相机参数,即可对本相机中所有检测到的人车目标,计算其在真实三维空间中的尺度特征,这种特征,更符合实际物理规律,比直接在二维图像中直接提取特征效果更好。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,应带理解,本发明并不限于这里所描述的实现方案,这些实现方案描述的目的在于帮助本领域中的技术人员实践本发明。