APP下载

一种基于室内场景的多摄像头人体定位算法

2020-11-12袁志敏韩娟娟崔养浩

仪器仪表用户 2020年11期
关键词:投影摄像头平面

石 强,葛 源,袁志敏,韩娟娟,崔养浩

(中国核动力研究设计院,成都 610005)

0 引言

传统的多摄像机人体定位思想来源于物体三维重建,虽然能够取得高精度的目标定位,但是该方法需要标定的参数众多,导致该算法的实时性太差。因此,基于单应矩阵的人体定位得到迅速发展。目前,基于单应矩阵的多摄像头场景定位算法主要有两种:一是基于主轴的场景人体定位算法;二是基于像素的人体定位算法。基于主轴的场景人体定位算法虽然实时性好,但是无法处理人体遮挡的情况。基于像素的人体定位算法虽然精度较高,但是实时性较差。因此,本文重新设计了一种结合采样单应投影和权值筛选的场景人体定位算法。

1 场景人体定位算法相关知识点

1.1 多摄像机环境下的几何约束

约束1:在多相机环境下,将人体目标理想化成一根垂直于场景平面的垂线,那么这根垂线在各个摄像机下的单应投影交于一点,这个点就是该垂线的垂足,也就是人体目标的脚点[1]。

约束2:在单相机环境下,假设在场景平面的不同位置有一簇垂线,那么这些垂线在该摄像机下的单应投影线交于一点,这个点和该摄像机中心在场景平面上的投影点重合[1]。

1.2 单应矩阵变换原理

单应矩阵表示摄影几何学中真实世界中的平面到像平面的可逆齐次变换[2]。假定场景平面中的二维点Xi与图像平面中的点xi表示若干组对应点,其中xi=(xi,yi, 1)T表示,存在三维矩阵H表示,可以使下式成立:

其中×代表叉乘,根据文献[4]可以得出最终的形式 。

其中,H jT代表H的第j行。利用直接线性变化和6组对应的点就可以求出单应矩阵H[4]。

2 人体候选脚点的获取

2.1 头部投影法求人体候选脚点

人体检测时,通常用矩形框框出人体目标。因此,如图1所示,本文可以利用矩形框代表人体的所有前景信息,矩形框的上边可以近似地表示人体的头部位置,矩形框的下边代替人体的脚部位置。基于上述分析,本文根据多摄像机环境下的几何约束条件1和2,将人体当作垂直于场景平面的一个圆柱体,那么将人体头部位置即矩形框的上边进行采样,然后单应投影,那么从而可以得到投影点与摄像机中心线相连的交点,这些点被称之为候选人体脚点,也就是人体在场景平面的候选位置。

图1 人体前景等效图Fig.1 Equivalent diagram of the human body foreground

图2 头部投影法示意图Fig.2 Schematic diagram of head projection method

需要定位出人体在场景中的空间位置,至少需要两个摄像机在两个角度对人体进行摄像。为了分析简便,本文假设场景中只存在一个人体目标,然后总共存在两个摄像头,如图2所示。

摄像机中心在场景平面的投影坐标C1C2,对双摄像头而言,将每一个摄像头上的图像平面上的人体矩形框上边(头部)的N个点(为分析方便,此处N=2)的坐标利用单应矩阵H投影到场景平面上,得到4个点连接对应的投影点,得到4条直线可以得到4个候选脚点P1,P2,P3,P4。求交点的具体方法为:假定在摄像机C1,人体目标A矩形框在图像平面的采样点坐标为在摄像机C2上,人体目标A矩形框采样点在图像平面的坐标为利用单应矩阵可以将这4个点投影到场景平面为设摄像机C1中心在场景平面的投影为gC1(xc1,yc1),摄像机C2中心在场景平面的投影为为直线l1,设为直线l2;k1=x1-x0/y1-y0,k2=x3-x2/y3-y2,那么可以根据已知的坐标值求出候选脚点P1,其他候选脚点可以依次推出:

图3 脚部投影法示意图Fig.3 Schematic diagram of foot projection method

2.2 脚部投影法求人体候选脚点

第二种求人体目标候选脚点的方法本文称之为脚部投影法。当摄像头固定时,人体脚部通常紧挨着地面,根据单应矩阵变换原理,通过对矩形框下边进行采样,然后将这些点进行场景平面投影,也能估计出人体的候选脚点的大致位置。为分析简便,本文假定场景中只存在一个人体,两个摄像头产生人体候选脚点的示意图如图3所示。

假定摄像机中心在场景平面的投影坐标C1,C2,对双摄像头而言,将每一个摄像头上的图像平面上的人体矩形框下边(脚部)的N个点(为分析方便,此处N=2)的坐标利用单应矩阵H投影到场景平面上,得到4个点这4个点即为人体目标候选脚点。虽然这种方法也可以求出人体目标候选脚点,但是由于人体脚部在室内环境中通常会被遮挡,导致产生的候选脚点位置可能不准。因此,这种方法只能用产生人体目标的候选脚点的大概位置。

3 本文算法

3.1 场景人体定位位置分析

图4 无遮挡情况Fig.4 No occlusion

图5 有遮挡情况Fig.5 With occlusion

在室内场景中,人体目标位置定位通常分为两种情况。第一种情况是非常理想的,即人体不存在遮挡,如图4所示,通常这种方法可以利用头部投影法或者脚部投影法直接求出人体目标候选脚点位置。

第二种是在室内场景中,由于物体和人体之间以及人体和人体之间相互遮挡,会导致在摄像机C1,C2, 中人体目标相互遮挡,如图5所示。

假定整个场景中存在两个人体目标,从视角2可以看出,这两个人体不存在遮挡,完整地显现出来;但是从视角1可以看出,两个人体目标遮挡较为严重。在该种情况下,为了减少定位的误差,本文利用对人体目标框进行采样来获取候选人体目标脚点。遮挡情况下候选人体目标脚点(以头部投影法为例)产生示意图如图6所示。

从图6中可以看出,当场景中存在两个人体目标,而且人体目标相互遮挡时,在一个摄像机图像平面中只有一个人体目标矩形区域,而在另外一个摄像机图像平面中有两个人体目标矩形区域。

3.2 算法设计

利用头部投影法获得人体目标候选脚点,图中用三角形表示,记为,人体候选目标点集合为。利用脚部投影法获取的人体目标候选脚点,图中用小黑点表示,记为,人体候选目标点集合为。

图6 人体遮挡候选脚点产生示意图Fig.6 Schematic diagram of human body occlusion candidate foot points

当获取候选人体脚点时,如何利用一定的规则定位人体脚点在场景中的位置,同时保持误差较小变得尤为重要。本文为候选目标脚点定权的规则是:首先计算出所有的目标脚点,然后根据场景中人体的数量进行聚类,距离聚类中心越远的候选脚点权重越小,距离聚类中心越近的候选脚点权重越大。

假定i代表第i个摄像头,集合G代表所有候选人体目标脚点的集合代表第i个摄像头中存在的人数,K值定义为:

定义K值为摄像头视域中的人体数目的最大值是因为场景中人体可能存在遮挡。对G利用K-means++算法进行聚类,最终得到K个聚类G={G1,G2,G3…Gk}和K个聚类中心对于聚类Gm,其聚类中心为m=1,2,3...k,Pl为该聚类中的候选人体目标脚点,l=1, 2, 3…s,s代表在聚类Gm中候选人体目标脚点数,pl∈Gm。为了减小定位误差,本文为每一个候选人体目标脚点赋予一定的权值Wj,记dj为候选脚点距离聚类中心的距离越大rj越小,为第j个人体候选点权重wj定义权重为:

由于引入人体候选脚点的过程中,难免会产生噪声,因此需要设定阈值去除一些候选人体目标脚点阈值WH定义如下:

获得阈值后,当候选人体目标脚点的权值小于阈值WH,则舍弃。若大于阈值WH,则保留,假定最终留下的候选目标脚点数为v,那么最终获得人体脚点位置即最终的人体在场景中的定位位置为O,则

权值wj的大小实际上是候选脚点与聚类中心的匹配程度,权值越大,匹配程度越高。在人体目标之间不存在遮挡时,wj较小的候选脚点指的是人体前景矩形框上边头部区域和人体前景区域下边脚部区域附近的干扰点。当人体目标间存在遮挡时,wj较小的候选脚点通常由两类点构成:一类是人体前景矩形框上边头部区域和人体前景区域下边脚部区域附近的干扰点,另一类是其他人体的前景点。其他人体的前景点相对于该人体头部和脚部轮廓点来说,与脚点重心的匹配程度更低,因此权重也更加的小。对权值设定阈值,然后对低于阈值的人体目标候选脚点舍弃有助于降低噪声的干扰,降低人体定位误差。

3.3 算法总流程

以N个摄像头为例,本文提出的场景定位算法流程大致为:

1)首先,在人体检测或者人体追踪的基础上,测定摄像机中心在场景平面的投影点坐标,利用实验方法计算出两个摄像机对同一个场景的单应矩阵(通常指室内场景的地面)H1...HN,便于将图像平面的点映射到场景平面中去。

2)t时刻,摄像头1...N获取人体目标,得到人体矩形框。

3)t+1,对人体目标矩形框头部进行采样投影,然后利用单应矩阵将其投影到场景平面,将这些采样点和摄像头投影点进行连接,求出这些直线的交点,即人体目标候选脚点集合。

4)t+1,对人体矩形框的脚部进行单应投影,获得了人体目标候选脚点集合。

6)t+3,对于每一个聚类根据到聚类中心赋予相应的权值wj。

7)t+4,计算权值阈值wH,对小于阈值的人体候选脚点进行舍弃。

8)t+5,最后获得人体最终角度位置O,最后跳转2)。

表1 空间坐标点和图像坐标点对应关系Table 1 Correspondence between space coordinate points and image coordinate points

4 实验结果及分析

从上文分析可知,要定位出人体在场景平面的位置,首先要求出摄像头1和摄像头2到场景平面的单应矩阵H1,H2。实验步骤如下:首先在场景中步骤6个白色的标示点,然后测量这些点在场景中的位置坐标。表1为6个标示点中场景空间坐标和图像1与图像2坐标的对应关系。

最终获得摄像机1和摄像机2与场景平面的单应矩阵H1、H2如下 :

得到单应矩阵后,本文的实验环境为5m×7m的房间,双摄像头布置在房间的两角,如图7所示。

本文分别对人体不发生遮挡、人体发生遮挡,利用基于像素的人体定位算法和本文的算法进行实验仿真。

1)不发生遮挡

为了避免摄像头不同步造成的人体定位干扰,本文在进行人体场景定位实验时采用了静态实验的策略。具体方法为:两个人体静止在场景中不发生遮挡,使用摄像头1和摄像头2对其拍照,然后根据获取的单应矩阵和本章的人体场景定位算法求出其在场景中的位置(采样点数N=4),不发生遮挡实验结果如图8所示。

2)发生遮挡

图7 实验环境部署图Fig.7 Experimental environment deployment diagram

图8 不发生遮挡实验结果Fig.8 No occlusion experiment results

为了避免摄像头不同步造成的人体定位干扰,本文在进行人体场景定位实验时采用了静态实验的策略。具体方法为:两个人体静止在场景中发生遮挡,使用摄像头1和摄像头2对其拍照,然后根据获取的单应矩阵和本章的人体场景定位算法求出其在场景中的位置(采样点数N=4),不发生遮挡实验结果如图9所示。

实验结果显示,本文的算法平均用时0.056s/帧,而基于像素的场景人体定位算法平均用时0.449s/帧,显然本文的算法在速度上提高了8倍。从实验8和实验9可以看出,在无遮挡的情况下,本文的算法和基于像素的定位误差都比较小,而本文的平均误差要低于基于像素的人体定位误差3.2%。在有遮挡的情况下,两种算法的误差都有所增加,但是本文的算法的平均误差仍然低于基于像素的场景定位算法1.2%。因此,本文提出的多摄像头人体场景定位是一种高效的人体追踪算法。

猜你喜欢

投影摄像头平面
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
解变分不等式的一种二次投影算法
基于最大相关熵的簇稀疏仿射投影算法
找投影
找投影
参考答案
关于有限域上的平面映射
奔驰360°摄像头系统介绍
参考答案