1.本技术涉及图像处理领域,尤其涉及一种人体检测系统以及客流相机。
背景技术:2.在消费电子、安防、交通等领域场景下,常常需要进行客流统计来更好的判断人群的动向。对于客流统计而言,人体检测是客流统计的必要且至关重要的环节,其检测准确率将直接影响到最终的统计精度。
3.现有技术中,基于rgb图像的人体检测技术已较为成熟,业内通常采用基于hog+svm的检测方案或基于深度学习的检测方案来通过rgb图像进行客流统计。现有技术中还存在一类使用基于tof、结构光的深度相机获取深度图像,再利用深度图像进行人体检测以及客流统计的方法,但这类基于深度图像进行人体检测的方法仅仅是从基于rgb图像的人体检测方法直接迁移得到,由于深度图像与rgb图像采集原理不同,成像存在较大的差异,导致实际检测效果不佳,难以通过深度图像得到理想的人体检测结果。并且在实际场景中,从硬件算力和软件规格方面考虑,一些采用中低端嵌入式设备的客流统计系统可能因硬件算力限制,比如没有npu、gpu等硬件加速模块,或者相应的硬件加速模块已被其他软件模块占用,无法部署基于深度学习的人体检测方案,即使能够部署,其检测速度也不足以满足应用需求。
技术实现要素:4.本技术提供了一种人体检测系统以及客流相机,用于提升针对深度图像的人体检测效果。
5.本技术第一方面提供了一种人体检测系统,包括:
6.相互耦合的预处理单元、背景建模单元、人体检测结果计算单元和人体检测结果修正单元;
7.所述预处理单元用于对输入的深度图像进行预处理,得到待检测图像;
8.所述背景建模单元用于通过背景建模确定所述待检测图像中的画面运动区域;
9.所述人体检测结果计算单元用于对所述画面运动区域进行聚类处理以确定人体区域集合,并根据所述人体区域集合计算第一人体检测结果;
10.所述人体检测结果修正单元用于对所述第一人体检测结果中的个体目标进行区分,以修正所述第一人体检测结果;
11.所述人体检测结果计算单元还用于对修正后的所述第一人体检测结果进行重定向处理得到目标人体检测结果,并输出所述目标人体检测结果。
12.可选的,所述人体检测系统还包括:
13.人体形位特征约束单元,用于通过预设约束对所述人体检测结果计算单元计算得到的第一人体检测结果进行筛选。
14.可选的,所述人体形位特征约束单元具体包括:
15.人体区域面积约束模块、人体身高约束模块、包围盒尺寸比约束模块和/或边界限位约束模块。
16.可选的,所述人体区域面积约束模块具体用于:
17.通过单人区域最小面积约束及多人粘连区域最大面积约束对所述人体检测结果计算单元计算得到的第一人体检测结果进行筛选;
18.或,
19.通过撕裂区域最小面积约束及多人粘连区域最大面积约束对所述人体检测结果计算单元计算得到的第一人体检测结果进行筛选。
20.可选的,所述人体检测结果修正单元具体包括:粘连拆分模块和/或撕裂合并模块;
21.所述粘连拆分模块用于对所述第一人体检测结果进行粘连拆分以修正所述第一人体检测结果,所述粘连拆分为将所述第一人体检测结果中发生粘连的目标进行拆分的处理;
22.所述撕裂合并模块用于对所述第一人体检测结果进行撕裂合并以修正所述第一人体检测结果,所述撕裂合并为将所述第一人体检测结果中发生撕裂的目标进行合并的处理;
23.所述人体检测结果计算单元具体还用于:
24.重新计算修正后的第一人体检测结果。
25.可选的,所述粘连拆分模块具体用于:
26.将当前帧的第一人体检测结果与上一帧的第一人体检测结果进行数据关联,判断数据关联结果中是否存在一对多的情况;
27.若是,则确定所述第一人体检测结果中存在动态粘连目标;
28.根据所述数据关联结果计算所述动态粘连目标与对应的关联目标之间的基础区域与待定区域,所述基础区域为所述动态粘连目标与所述对应的关联目标之间的重叠区域,所述待定区域为所述动态粘连目标中除去所述基础区域的剩余区域;
29.确定所述待定区域中像素的归属,直至所述待定区域消失。
30.可选的,所述粘连拆分模块具体还用于:
31.判断当前帧的第一人体检测结果中目标的包围盒尺寸比是否大于预设阈值;
32.若所述目标的包围盒尺寸比大于预设阈值,则进一步判断所述目标的上部区域是否符合预设头肩特征;
33.若所述目标的上部区域符合预设头肩特征,则将所述目标确定为静态粘连目标;
34.计算所述静态粘连目标中上部区域的积分投影,并根据所述积分投影确定目标拆分位置;
35.以所述目标拆分位置上的竖直线作为分割线对所述静态粘连目标进行拆分。
36.可选的,所述撕裂合并模块具体用于:
37.对所述第一人体检测结果中任一两个目标,判断所述两个目标在竖直方向上是否满足邻近条件;
38.若满足所述邻近条件,则进一步根据深度值判断所述两个目标中在上的目标是否比在下的目标距离摄像头更近;
39.若所述两个目标中在上的目标比在下的目标距离摄像头更近,则确定所述第一人体检测结果中存在撕裂目标,并将所述两个目标进行关联;
40.对所述第一人体检测结果中互相关联的两个目标进行合并。
41.可选的,所述人体检测结果计算单元具体包括:聚类模块和计算模块;
42.所述聚类模块用于通过图像掩膜将所述画面运动区域以内的像素标记为有效像素,并将所述画面运动区域以外的像素标记为无效像素,根据所述图像掩膜和所述待检测图像对所述有效像素进行聚类处理得到人体区域集合;
43.所述计算模块用于根据所述人体区域集合计算第一人体检测结果。
44.可选的,所述人体检测结果计算单元还包括:输出优化模块;
45.所述输出优化模块用于确定人头顶点集合,并根据所述人头顶点集合生成人头检测框,以所述人头检测框输出所述目标人体检测结果。
46.本技术第二方面提供了一种客流相机,所述客流相机设置有第一方面以及第一方面中任一项可选的人体检测系统。
47.从以上技术方案可以看出,本技术具有以下优点:
48.本技术提供的人体检测系统检测可靠,通过人体检测结果修正单元结合修正机制对检测结果中的个体目标进行区分,以应对深度图像中人体形状缺失和目标粘连、撕裂等各种复杂场景,大大提升了针对深度图像的人体检测效果,部署在客流相机上还可以提升客流统计的精度。并且本技术提供的人体检测系统对硬件算力要求低,无需npu、gpu等硬件模块,可直接在中低端cpu端运行,便于部署,成本低,具有大规模应用前景。
附图说明
49.为了更清楚地说明本技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1为本技术提供的人体检测系统一个实施例结构示意图;
51.图2为本技术提供的人体检测系统另一个实施例结构示意图;
52.图3-a为本技术提供的人体检测系统中粘连拆分模块效果示意图;
53.图3-b为本技术提供的人体检测系统中撕裂合并模块效果示意图;
54.图4-a、图4-b和图4-c为本技术提供的人体检测系统中粘连拆分模块对动态粘连拆分示意图;
55.图5-a和图5-b为本技术提供的人体检测系统中粘连拆分模块对静态粘连拆分示意图;
56.图6本技术提供的人体检测系统中输出优化模块效果示意图。
具体实施方式
57.本技术提供了一种人体检测系统以及客流相机,用于提升针对深度图像的人体检测效果。
58.需要说明的是,本技术提供的人体检测系统,可以部署于客流相机、深度相机以及其它终端,还可以部署于服务器上,例如终端可以是智能手机或电脑、平板电脑、智能电视、
智能手表、便携计算机终端也可以是台式计算机等等具备运算以及数据分析能力的智能终端。本技术提供的人体检测系统部署在客流相机上时,能够提升客流统计的精度。
59.请参阅图1,图1为本技术提供的人体检测系统的一个实施例,该人体检测系统包括:
60.相互耦合的预处理单元101、背景建模单元102、人体检测结果计算单元103和人体检测结果修正单元104;
61.预处理单元101用于对输入的深度图像进行预处理,得到待检测图像;
62.背景建模单元102用于通过背景建模确定待检测图像中的画面运动区域;
63.人体检测结果计算单元103用于对画面运动区域进行聚类处理以确定人体区域集合,并根据人体区域集合计算第一人体检测结果;
64.人体检测结果修正单元104用于对第一人体检测结果中的个体目标进行区分,以修正第一人体检测结果;
65.人体检测结果计算单元103还用于对修正后的第一人体检测结果进行重定向处理得到目标人体检测结果,并输出目标人体检测结果。
66.具体的,该预处理单元101获取深度相机预览帧,然后对输入的深度图像进行预处理得到待检测图像,再将该待检测图像发送至背景建模单元102。该背景建模单元102通过背景建模确定待检测图像中的画面运动区域,再将画面运动区域发送至人体检测结果计算单元103;该人体检测结果计算单元103对画面运动区域进行聚类,具体是对画面运动区域中的有效像素进行聚类,得到簇的集合,即本技术中的人体区域集合,该人体检测结果计算单元103还需进一步根据人体区域集合计算对应的第一人体检测结果,即人体检测结果计算单元103遍历簇集合,求得所有簇的包围盒,将其作为该簇的检测框,得到第一人体检测结果,并发送至人体检测结果修正单元104;该人体检测结果修正单元104对第一人体检测结果进行修正,以区分第一人体检测结果中的个体目标,并将处理结果返回至人体检测结果计算单元103,人体检测结果计算单元103则根据人体检测结果修正单元104的处理结果重新计算修正后的第一人体检测结果,再对其进行重定向处理,得到并输出最终的目标人体检测结果。
67.在一些具体的实施例中,该预处理单元101包括但不限于对深度图像进行下采样、格式转换以及深度选通,以便能够减少计算量,提高检测速度。背景建模单元102具体可采用码本算法codebook或lobster算法实现背景建模。背景建模对于相机固定且画面背景变化缓慢的场景,可直接用于运动目标检测或作为前处理环节减少搜索范围进而减少计算量。在本实施例中,通过背景建模单元102来确定待检测图像中画面运动区域,能够充分考虑多帧信息,将运动目标(行人)与画面背景区分开来,降低背景对检测结果的干扰。
68.本实施例提供的人体检测系统检测可靠,通过人体检测结果修正单元104结合修正机制对检测结果中的个体目标进行区分,以应对深度图像中人体形状缺失和目标粘连、撕裂等各种复杂场景,大大提升了针对深度图像的人体检测效果,部署在客流相机上还可以提升客流统计的精度。并且本技术提供的人体检测系统对硬件算力要求低,无需npu、gpu等硬件模块,可直接在中低端cpu端运行,便于部署,成本低,具有大规模应用前景。
69.请参阅图2至图6,以下对本技术提供的人体检测系统进行详细说明。
70.可选的,本技术提供的人体检测系统还可以进一步包括:
71.人体形位特征约束单元105,用于通过预设约束对人体检测结果计算单元103计算得到的第一人体检测结果进行筛选。
72.在本实施例中,在人体检测结果计算单元103计算得到第一人体检测结果之后,在人体检测结果修正单元104对第一人体检测结果进行修正之前,该人体形位特征约束单元105通过预设对该第一人体检测结果进行筛选,具体是对人体区域集合(簇)的包围盒进行筛选,排除一些明显不符合人体特征的簇,提高本系统的检测精度与运行速度。
73.可选的,人体形位特征约束单元105具体包括:
74.人体区域面积约束模块1051、人体身高约束模块1052、包围盒尺寸比约束模块1053和/或边界限位约束模块1054。
75.该人体区域面积约束模块1051具体通过设定目标面积阈值范围[a
min
,a
max
],丢弃面积不在该设定范围内的目标。目标面积即簇中像素个数。进一步的,a
min
取值应考虑单人区域面积最小极限,而a
max
取值应考虑粘连场景多人区域面积最大极限,这是考虑到多人粘连的情形,首先将该区域保留下来,留待后续人体检测结果修正单元104予以修正。a
min
取值也可比单人区域面积最小极限更小,其意图是考虑到单个人体区域撕裂的情形,首先保留这些结果,留待后续人体检测结果修正单元104予以修正。
[0076]
该包围盒尺寸比约束模块1053具体通过设定包围盒尺寸比阈值,丢弃包围盒尺寸比不在设定范围内的目标。该包围盒尺寸比约束可具体为包围盒宽高比约束或包围盒高宽比约束或其它包围盒尺寸比约束,具体此处不做限定。以包围盒宽高比约束为例:设定目标检测框宽高比范围[r
min
,r
max
],丢弃检测框宽高比不在该设定范围内的目标。宽高比即包围盒的高度与宽度的比值。进一步,r
min
取值应考虑单人包围盒宽高比最小极限,而r
max
取值应考虑粘连场景多人包围盒宽高比最大极限,与前述[a
min
,a
max
]同理。
[0077]
该边界限位约束模块1054具体根据应用需求和实际场景特性,设置上下左右边界线,丢弃中心点超出边界线的目标。具体的,该中心点为包围盒中心点或人体区域形心,优选该中心点为人体区域形心。其目的在于当人体处于图像边界形状缺失较多时,直接忽略不计。
[0078]
该人体身高约束模块1052具体通过设定高度阈值ht,丢弃高度低于高度阈值的目标。其目的在于筛除一些被误检的低矮物体,比如因挪动而被背景建模模块当作运动区域的椅子。
[0079]
需要说明的是,在上述人体区域面积约束模块1051、人体身高约束模块1052、包围盒尺寸比约束模块1053和/或边界限位约束模块1054的筛选过程中,簇和包围盒总是对应的,当某个簇被筛选掉时,相应的包围盒也要被同步删除,反之亦然。并且在实际应用中,人体身高约束模块1052不必每次都执行筛选,对于系统中总的检测过程中执行一次即可。具体为:在人体检测结果修正单元104进行修正处理之后,均需要重新求所有簇的包围盒并通过人体区域面积约束模块1051、包围盒尺寸比约束模块1053和边界限位约束模块1054对结果进行筛选,而人体身高约束模块1052筛选则放在上述模块筛选完成之后且仅执行一遍。
[0080]
可选的,人体检测结果修正单元104具体包括:粘连拆分模块1041和/或撕裂合并模块1042;
[0081]
粘连拆分模块1041用于对第一人体检测结果进行粘连拆分以修正第一人体检测结果,粘连拆分为将第一人体检测结果中发生粘连的目标进行拆分的处理;
[0082]
撕裂合并模块1042用于对第一人体检测结果进行撕裂合并以修正第一人体检测结果,撕裂合并为将第一人体检测结果中发生撕裂的目标进行合并的处理;
[0083]
人体检测结果计算单元103具体还用于:
[0084]
重新计算修正后的第一人体检测结果。
[0085]
在本实施例中,人体检测结果计算单元103在初步计算得到第一人体检测结果后,人体检测结果修正单元104还需要对该第一人体检测结果进行修正,修正的目的是对第一人体检测结果中的个体目标进行区分。第一人体检测结果中可能会出现多个个体目标相粘连或单个个体目标撕裂的现象,其中粘连是指由于两个及两个以上的个体目标由于距离较近,所得的簇区域粘连在一起,导致计算得到的人体检测结果中两个及两个以上个体目标被视为一个目标的情况,撕裂则是指由于特征的缺失,比如深度图像中人体区域不连通,或人体部分区域深度值变化较大不连续(还包括行人抬手、戴帽子、撑伞等),导致前述步骤中得到的属于同一人体目标的簇可能不止一个,即一个个体目标被视为两个目标的情况。这些误检对于客流相机而言,最终都会影响客流统计精度。
[0086]
并且,粘连拆分模块1041和撕裂合并模块1042对第一人体检测结果进行修正后得到的结果是目标簇(人体区域集合),因此人体检测结果计算单元103还需要重新根据修正后的人体区域集合计算第一人体检测结果,以得到修正后的第一人体检测结果。
[0087]
以粘连拆分为例,请参阅图3-a,图3-a中的左下图为根据人体区域集合计算得到的第一人体检测结果,由于个体目标发生粘连,三个个体目标被检测为了一个目标,这将直接导致客流计数的不准确。图3-a中的右下图为经过粘连拆分模块1041修正后的第一人体检测结果,发生粘连的个体目标被拆分为三个目标,对应真实的行人数量,从而能够实现准确的客流计数。
[0088]
以撕裂合并为例,请参阅图3-b,图3-b中的左图为根据人体区域集合计算得到的第一人体检测结果,其中个体目标发生了撕裂,同一个个体目标被检测为了上下两个目标,这也将导致客流计数的不准确。图3-b中的右图为经过了撕裂合并模块1042修正后的第一人体检测结果,发生撕裂的个体目标被合并为一个目标,对应真实的行人数量,从而能够实现准确的客流计数。
[0089]
其中本技术将目标发生粘连的类型分为两种,并分别给出粘连拆分模块1041相应的拆分处理方案:其一是目标由分开到粘连,对应本技术中的动态粘连,其二是目标一开始就粘连,对应本技术中的静态粘连,下面分别进行描述:
[0090]
一、粘连拆分模块1041对动态粘连进行拆分;
[0091]
可选的,粘连拆分模块1041具体用于:
[0092]
将当前帧的第一人体检测结果与上一帧的第一人体检测结果进行数据关联,判断数据关联结果中是否存在一对多的情况;
[0093]
若是,则确定第一人体检测结果中存在动态粘连目标;
[0094]
根据数据关联结果计算动态粘连目标与对应的关联目标之间的基础区域与待定区域,基础区域为动态粘连目标与对应的关联目标之间的重叠区域,待定区域为动态粘连目标中除去基础区域的剩余区域;
[0095]
确定待定区域中像素的归属,直至待定区域消失。
[0096]
在粘连拆分模块1041针对动态粘连进行拆分时,首先将当前帧的检测结果(包括
包围盒和簇)与上一帧的检测结果进行数据关联,类似多目标跟踪(multiple target tracking)领域的数据关联,若当前场景未发生目标粘连,则相应的数据关联结果应当均为“一对一”的关系;而当目标开始粘连时,数据关联结果中会出现“一对多”的情况。
[0097]
具体的,该数据关联过程中采用iom(intersection over minimum)匹配替代常规的iou(intersection over union)匹配。对于目标a、b,其iom计算公式为:
[0098][0099]
其中,表示目标a、b的重叠面积,sa、sb分别表示目标a、b的面积。具体的,若以目标包围盒进行数据关联,则重叠面积和目标面积均根据目标包围盒来计算;若以目标簇进行数据关联,则相应的重叠面积和目标面积均根据目标簇来计算。
[0100]
粘连拆分模块1041通过确认数据关联结果中是否存在“一对多”的情况,即可判定是否发生目标由分开到粘连的情形,即判定第一人体检测结果中是否存在动态粘连目标。若判断为是,则确定第一人体检测结果中存在动态粘连目标,同时将数据关联结果输出至粘连拆分环节。若判断为否,则确定第一人体检测结果中不存在动态粘连目标,无需进行动态粘连的拆分。
[0101]
具体的,请参阅图4-a,图4-a中d
aprev
、d
bprev
分别表示上一帧的关联目标a、b,d
abcurr
表示当前帧检出的动态粘连目标,d
abcurr
与d
aprev
、d
bprev
这2个目标同时关联,属于“一对多”的情形,粘连拆分模块1041将d
abcurr
拆分成两个目标。
[0102]
粘连拆分模块1041基于上述动态粘连判断过程得到的数据关联结果,对“一对多”的关联项逐个拆分,对于每个“一对多”的关联项,粘连拆分模块1041首先计算动态粘连目标与对应的关联目标之间的重叠区域,即本技术中的基础区域,各基础区域自动归属于对应的关联目标。此外,粘连拆分模块1041还需要计算待拆分区域中除去基础区域之外的剩余区域,即本技术中的待定区域。
[0103]
具体的,请参阅图4-b,图4-b中d
abcurr
与关联目标d
aprev
的重叠区域即为基础区域a,d
abcurr
与关联目标d
bprev
的重叠区域即为基础区域b,基础区域a、b则为d
abcurr
的初步拆分结果,d
abcurr
中除去区域a、b的区域则为待定区域。
[0104]
粘连拆分模块1041再该待定区域进行收缩,直至无待定区域。收缩的过程即为确定待定区域元素/像素归属于哪个目标的过程。在一些具体的实施例中,可以以待定区域边界为限,对基础区域进行区域生长,每次迭代的新增区域即归属为相应的基础区域,直至无待定区域。
[0105]
具体的,请参阅图4-c,图4-c中d
acurr
及d
bcurr
即为动态粘连拆分出的两个目标。
[0106]
需要说明的是,对于拆分后的目标簇,人体检测结果计算单元103还需要重新根据目标簇计算包围盒,并通过人体形位特征约束单元105进一步筛选。
[0107]
二、粘连拆分模块1041对静态粘连进行拆分;
[0108]
可选的,粘连拆分模块具体还用于:
[0109]
判断当前帧的第一人体检测结果中目标的包围盒尺寸比是否大于预设阈值;
[0110]
若目标的包围盒尺寸比大于预设阈值,则进一步判断目标的上部区域是否符合预设头肩特征;
[0111]
若目标的上部区域符合预设头肩特征,则将目标确定为静态粘连目标;
[0112]
计算静态粘连目标中上部区域的积分投影,并根据积分投影确定目标拆分位置;
[0113]
以目标拆分位置上的竖直线作为分割线对静态粘连目标进行拆分。
[0114]
在粘连拆分模块1041针对静态粘连进行拆分时,粘连拆分模块1041首先判断目标包围盒尺寸比大于预设阈值r。其中,该尺寸比具体可以为宽高比或高宽比以及其它尺寸比。若包围盒尺寸比为包围盒宽高比,r的取值通常大于常规单人宽高比。进一步的,粘连拆分模块1041还需要判断该目标的上部区域是否符合预设头肩特征。当上述两个条件均满足时,粘连拆分模块1041才确定第一人体检测结果中存在静态粘连,并将对应的目标确定为静态粘连目标。
[0115]
具体的,请参阅图5-a,粘连拆分模块1041在确定目标的包围盒尺寸比大于预设阈值后,取该目标上部区域作为roi区域,即待分析区域,对于该roi区域计算积分投影,并且求积分投影曲线的波峰、波谷。对于任一波谷p
itrough
,若其左右各有一个波峰p
i-1peak
、p
i+1peak
,,且该波谷p
itrough
到两个波峰p
i-1peak
、p
i+1peak
的水平、竖直间距均符合预设范围,则认为其符合预设头肩特征。简而言之,就是基于积分投影来判断该roi区域是否存在符合“头-肩-头”的规律。进一步的,为了更好地得到波峰、波谷,可以对积分投影曲线进行平滑,比如采用中值滤波+均值滤波,或者采用卡尔曼滤波,具体此处不做限定。
[0116]
对于计算得到的积分投影,即roi区域的积分投影,粘连拆分模块1041将其波谷p
itrough
所在位置,也就是人体“肩部”所在位置作为目标拆分位置,并以该目标拆分位置上的竖直线作为分割线对目标进行拆分,实现静态粘连目标的拆分。
[0117]
请参阅图5-b,图5-b左图为静态粘连目标以及对应的分割线,图5-b右图为静态粘连的拆分结果。
[0118]
进一步,将静态粘连目标一分为二,可以是通过目标拆分位置的竖直线简单地一分两半,也可以在其基础上结合目标特征(比如边缘)以曲线进行分割,具体不做限定。使用竖直线简单进行拆分虽然拆分的形状相对粗糙,但拆分效率高,而且对于客流统计的应用场景而言,主要关注于能准确区分人数,而人体区域形状无需特别精确。
[0119]
需要说明的是,对于拆分后的目标簇,人体检测结果计算单元103还需要重新根据目标簇计算包围盒,并通过人体形位特征约束单元105进一步筛选。
[0120]
需要说明的是,在实际应用中,粘连拆分模块1041优先进行动态粘连拆分,再进行静态粘连拆分,能够使粘连拆分模块1041最大效率实现所有粘连目标的拆分。
[0121]
可选的,撕裂合并模块1042具体用于:
[0122]
对第一人体检测结果中任一两个目标,判断两个目标在竖直方向上是否满足邻近条件;
[0123]
若满足邻近条件,则进一步根据深度值判断两个目标中在上的目标是否比在下的目标距离摄像头更近;
[0124]
若两个目标中在上的目标比在下的目标距离摄像头更近,则确定第一人体检测结果中存在撕裂目标,并将两个目标进行关联;
[0125]
对第一人体检测结果中互相关联的两个目标进行合并。
[0126]
具体的,撕裂合并模块1042对当前帧的第一人体检测结果中任意两个目标,判断两个目标在竖直方向位置是否邻近,撕裂合并模块1042对于目标a(x1,y1,w1,h1)、b(x2,y2,w2,h2),计算其重叠区域左右上下极限:
[0127]
left=max(x1,x2)
[0128]
right=min(x1+w1,x2+w2)
[0129]
top=max(y1,y2)
[0130]
bottom=min(y1+h1,y2+h2);
[0131]
若left<right则继续计算和判断水平重叠比例和竖直邻近比例:
[0132]
ratio1=(rigt-left)/min(w1,w2)
[0133]
ratio2=(bottom-top)/min(h1,h2);
[0134]
若ratiol>tr1且ratio2>tr2,撕裂合并模块l042则判定两个目标满足邻近条件。其中tr1、tr2分别为预设的水平重叠比例阈值和竖直邻近比例阈值。需要说明的是,目标检测领域一般将目标框表示为(x,y,w,h)或者(x1,y1,x2,y2)的形式。本实施例中采用(x,y,w,h):x、y分别表示左上角顶点坐标,w、h表示目标框(矩形框)的宽、高。
[0135]
若两个目标满足上述邻近条件,撕裂合并模块1042则进一步判断目标的上下位置关系,然后根据深度值判断处于上方的目标是否比处于下方的目标距离摄像头更近。若上述两个条件均满足,撕裂合并模块1042则确定该两个目标属于撕裂目标,并将其关联。这是由于对两个竖直方向位置邻近的目标而言,若二者在深度值上符合“上近下远”的特征,则通常为同一个人体目标,属于竖直方向撕裂的情形。主要是因为,客流相机人体检测场景中,人体大多为站姿,从头顶到脚底距相机的距离总体符合递增规律,即“上近下远”,而且在抬手、戴帽、撑伞等场景,这种规律也基本成立。作为竖直方向撕裂的反例,比如两人前后站位,虽然满足竖直方向位置邻近的条件,但由于前后站位,后面的人体比前面的人体距离相机更远,故不满足“上近下远”的条件,故可以被排除。
[0136]
待撕裂合并模块1042对第一检测结果中所有目标进行撕裂判断后,撕裂合并模块1042对互相关联的两个目标簇进行合并。
[0137]
需要说明的是,对于撕裂合并后的目标簇,人体检测结果计算单元103还需要重新根据目标簇计算包围盒,并通过人体形位特征约束单元105进一步筛选。
[0138]
可选的,人体检测结果计算单元103具体包括:聚类模块1031和计算模块1032;
[0139]
聚类模块1031用于通过图像掩膜将画面运动区域以内的像素标记为有效像素,并将画面运动区域以外的像素标记为无效像素,根据图像掩膜和待检测图像对有效像素进行聚类处理得到人体区域集合;
[0140]
计算模块1032用于根据人体区域集合计算第一人体检测结果。
[0141]
具体的,聚类模块1031通过制作一个和待检测图像同等分辨率的图像掩膜用以标记像素是否有效,画面运动区域对应像素标记为有效,其余区域像素标记为无效。进一步,聚类模块1031还可以将图像掩膜的上、下、左、右边界像素都标记为无效,以便在后续执行聚类时避免对每个像素进行边界校验,提高效率。
[0142]
聚类模块1031根据图像掩膜和待检测图像,对所有标记有效的像素进行聚类得到簇的集合,即本技术中的人体区域集合。具体的,聚类处理是指对于任意已在簇中的一个像素a,遍历其邻域像素,对任一有效的邻域像素ni,若ni与a的像素值之差的绝对值小于预设的簇内相似度阈值s,则将ni加入到a所在的簇中,否则新建一个簇并将ni加入其中并继续聚类。
[0143]
进一步,由于聚类会涉及到图像的搜索,在一些具体的实施例中,聚类模块1031可
以采用深度优先搜索(depth-first-search,dfs),也可以采用广度优先搜索(breadth-first-search,bfs)。优选采用广度优先搜索,避免递归且内存消耗小,以便提升计算速度。
[0144]
计算模块1032则遍历聚类模块1031聚类得到的人体区域集合,即簇集合,计算模块1032对每个簇求其aabb包围盒,以之作为该簇的检测框。计算模块1032求aabb包围盒的过程为:遍历簇的所有像素,求得簇中像素x、y坐标最小值、最大值:x
min
、y
min
、x
max
、y
max
,即可确定相应的包围盒矩形,该矩形即为目标检测框,即第一人体检测结果。
[0145]
可选的,人体检测结果计算单元103还包括:输出优化模块1033;
[0146]
输出优化模块1033用于确定人头顶点集合,并根据人头顶点集合生成人头检测框,以人头检测框输出目标人体检测结果。
[0147]
具体的,输出优化模块1033可以进一步在计算模块1032求簇中像素x、y坐标最小值、最大值过程中,同时求得各簇最高点(其高度为y
max
)对应的像素位置,进而得到各簇顶点坐标集合。输出优化模块1033能够以该最高点作为顶点,后续可以其为头顶基准生成小的人头框以替代人体包围盒,这样在多人且粘连的场景中,能够避免输出密集且重叠的检测框,从而改善应用端上的显示效果,改善后的显示效果如图6所示。
[0148]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0149]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0150]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0151]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0152]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
技术特征:1.一种人体检测系统,其特征在于,所述人体检测系统包括:相互耦合的预处理单元、背景建模单元、人体检测结果计算单元和人体检测结果修正单元;所述预处理单元用于对输入的深度图像进行预处理,得到待检测图像;所述背景建模单元用于通过背景建模确定所述待检测图像中的画面运动区域;所述人体检测结果计算单元用于对所述画面运动区域进行聚类处理以确定人体区域集合,并根据所述人体区域集合计算第一人体检测结果;所述人体检测结果修正单元用于对所述第一人体检测结果中的个体目标进行区分,以修正所述第一人体检测结果;所述人体检测结果计算单元还用于对修正后的所述第一人体检测结果进行重定向处理得到目标人体检测结果,并输出所述目标人体检测结果。2.根据权利要求1所述的人体检测系统,其特征在于,所述人体检测系统还包括:人体形位特征约束单元,用于通过预设约束对所述人体检测结果计算单元计算得到的第一人体检测结果进行筛选。3.根据权利要求2所述的人体检测系统,其特征在于,所述人体形位特征约束单元具体包括:人体区域面积约束模块、人体身高约束模块、包围盒尺寸比约束模块和/或边界限位约束模块。4.根据权利要求3所述的人体检测系统,其特征在于,所述人体区域面积约束模块具体用于:通过单人区域最小面积约束及多人粘连区域最大面积约束对所述人体检测结果计算单元计算得到的第一人体检测结果进行筛选;或,通过撕裂区域最小面积约束及多人粘连区域最大面积约束对所述人体检测结果计算单元计算得到的第一人体检测结果进行筛选。5.根据权利要求1所述的人体检测系统,其特征在于,所述人体检测结果修正单元具体包括:粘连拆分模块和/或撕裂合并模块;所述粘连拆分模块用于对所述第一人体检测结果进行粘连拆分以修正所述第一人体检测结果,所述粘连拆分为将所述第一人体检测结果中发生粘连的目标进行拆分的处理;所述撕裂合并模块用于对所述第一人体检测结果进行撕裂合并以修正所述第一人体检测结果,所述撕裂合并为将所述第一人体检测结果中发生撕裂的目标进行合并的处理;所述人体检测结果计算单元具体还用于:重新计算修正后的第一人体检测结果。6.根据权利要求5所述的人体检测系统,其特征在于,所述粘连拆分模块具体用于:将当前帧的第一人体检测结果与上一帧的第一人体检测结果进行数据关联,判断数据关联结果中是否存在一对多的情况;若是,则确定所述第一人体检测结果中存在动态粘连目标;根据所述数据关联结果计算所述动态粘连目标与对应的关联目标之间的基础区域与待定区域,所述基础区域为所述动态粘连目标与所述对应的关联目标之间的重叠区域,所
述待定区域为所述动态粘连目标中除去所述基础区域的剩余区域;确定所述待定区域中像素的归属,直至所述待定区域消失。7.根据权利要求5所述的人体检测系统,其特征在于,所述粘连拆分模块具体还用于:判断当前帧的第一人体检测结果中目标的包围盒尺寸比是否大于预设阈值;若所述目标的包围盒尺寸比大于预设阈值,则进一步判断所述目标的上部区域是否符合预设头肩特征;若所述目标的上部区域符合预设头肩特征,则将所述目标确定为静态粘连目标;计算所述静态粘连目标中上部区域的积分投影,并根据所述积分投影确定目标拆分位置;以所述目标拆分位置上的竖直线作为分割线对所述静态粘连目标进行拆分。8.根据权利要求5所述的人体检测系统,其特征在于,所述撕裂合并模块具体用于:对所述第一人体检测结果中任一两个目标,判断所述两个目标在竖直方向上是否满足邻近条件;若满足所述邻近条件,则进一步根据深度值判断所述两个目标中在上的目标是否比在下的目标距离摄像头更近;若所述两个目标中在上的目标比在下的目标距离摄像头更近,则确定所述第一人体检测结果中存在撕裂目标,并将所述两个目标进行关联;对所述第一人体检测结果中互相关联的两个目标进行合并。9.根据权利要求1至8中任一项所述的人体检测系统,其特征在于,所述人体检测结果计算单元具体包括:聚类模块和计算模块;所述聚类模块用于通过图像掩膜将所述画面运动区域以内的像素标记为有效像素,并将所述画面运动区域以外的像素标记为无效像素,根据所述图像掩膜和所述待检测图像对所述有效像素进行聚类处理得到人体区域集合;所述计算模块用于根据所述人体区域集合计算第一人体检测结果。10.根据权利要求1至8中任一项所述的人体检测系统,其特征在于,所述人体检测结果计算单元还包括:输出优化模块;所述输出优化模块用于确定人头顶点集合,并根据所述人头顶点集合生成人头检测框,以所述人头检测框输出所述目标人体检测结果。11.一种客流相机,其特征在于,所述客流相机设置有如权利要求1至10中任一项所述的人体检测系统。
技术总结本申请公开了一种人体检测系统以及客流相机,用于提升针对深度图像的人体检测效果。本申请人体检测系统包括:相互耦合的预处理单元、背景建模单元、人体检测结果计算单元和人体检测结果修正单元;预处理单元用于对输入的深度图像进行预处理,得到待检测图像;背景建模单元用于通过背景建模确定待检测图像中的画面运动区域;人体检测结果计算单元用于对画面运动区域进行聚类处理以确定人体区域集合,并根据人体区域集合计算第一人体检测结果;人体检测结果修正单元用于对第一人体检测结果中的个体目标进行区分,以修正第一人体检测结果;人体检测结果计算单元还用于对修正后的第一人体检测结果进行重定向处理得到目标人体检测结果。检测结果。检测结果。
技术研发人员:李春 肖兵
受保护的技术使用者:权利要求书2页说明书10页附图7页
技术研发日:2022.06.29
技术公布日:2022/11/1