数人数:人体与人头综合判断

33 阅读3分钟

CV落地应用过程中,会遇到许多需要数人数的场景。例如判断某个区域是否发生人群聚集;判断某个区域是否有两个人共同作业,单人作业时上报预警;某区域内人数是否达标,进而判断是否开早会;某项活动出席人数是否满足条件等等。

实际应用中,多是采用人体检测模型对图像推理,根据输出的box框个数确定画面中的人数。但某些场景中存在如下问题:

  1. 人数过多,或摄像头角度不适宜时,人体与人体之间产生严重遮挡,导致人数统计不准;

  2. 人体被桌椅(坐姿)、货物等严重遮挡,导致漏检,人数统计不准;

  3. 人员在行动过程中姿态超出常规形态,小概率导致漏检。

 

为解决以上问题,可引入人头检测模型,人体头部区域相对人体躯干,在画面中所占面积较小,相互遮挡的概率也较小。将人体检测结果和人头检测结果综合起来判断,可提高算法的鲁棒性。简介如下:

  1. 分别利用人体检测模型和人头检测模型,对图像进行推理计算,得到人体box框和人头box框结果;

  2. 分别对多个人体box框、多个人头box框,进行nms操作,删除冗余的检测结果;

  3. 综合2中输出的人体box和人头box,得出最终人数。

 

当然,最终的人数结果不能是人体box 和 人头box数量的简单相加, 若简单相加,大概率同一个人被重复统计,需要将人体和人头box对应起来去重,得到更为准确的人数结果。

基础的“对应”方法,即按照人体和人头的交互面积比(IOU)来判定,若人头box与某个人体box重合面积较大,大概率属于同一个人员。

下面分情况讨论人体+人头综合判断人数的算法逻辑:

1. 人体和人头一一对应,不存在遮挡的情况

人数1.png

此种情况较为简单,利用IOU将人体和人头box框对应好后,由于存在可能性漏检或遮挡,取人体box数量、人头box数量较大者保留即可。

 

2.人体或人头有相互遮挡的情况

人数2.png

若人体被遮挡或距离较近被nms抑制,人体box和人头box可能出现一对多的情况(上图最右侧)。此时,应保留人头box。

人数3.png

若人头被遮挡或距离较近被nms抑制,人体box和人头box可能出现多对一的情况。此时,应保留人体box。

 

综合以上步骤,可提高数人数相关算法的准确性。

 

值得一提的是,数人数相关算法应用过程中有一些注意点:

  1. 有条件的情况下,可调整摄像头位置、角度,尽量减少遮挡,包括物对人的遮挡和人与人之间的遮挡。虽然综合判断逻辑减少了漏检,但人头和躯干都完全被遮挡的仍无法参与统计。

  2. 人员处于活动状态的场景,可结合连续多帧画面综合判断,取数量较大且稳定的值作为最终人数输出结果。

  3. 以上逻辑,人体box或人头box保留的优先级可根据场景不同、遮挡情况不同而做适应性调整。