一种结合密度估计的拥挤场景行人检测方法
技术领域
本发明涉及一种行人检测方法,具体涉及一种结合密度估计的拥挤场景行人检测方法。
背景技术
行人检测在智能驾驶、监控安保、运动分析、客流分析等方面有着非常广泛的应用。在 现实生活中,行人拥挤的场景较为常见,如地铁候车区、机场候机大厅、马路行人道等。拥 挤场景下,行人会相互交叠,这会使得行人目标检测器难以准确区分每个行人实例的边界, 增加了神经网络提取行人特征的难度。同时,行人检测会有非极大值抑制后处理环节,在拥 挤的场景下较难确定合适的非极大值抑制阈值,过大的阈值会导致误检测增多,降低了准确 率,而过小的阈值则会导致正确的行人检测框被抑制,降低了回归率。解决拥挤场景下的行 人检测问题能为后续的下游任务提供更为准确的信息,具有重要的应用价值。
目前在拥挤场景下进行行人检测的方法基本有两种:
(1)基于部分检测的方法分别检测行人的各个部分,最后通过组合同一个行人的各个 检测框得到最后的行人检测结果,这种方法将行人检测拆分成多个子检测模块,使得网络无 法学习到整体的行人特征,且这种方法通常需要复杂的后处理步骤;
(2)基于改进非极大值抑制的行人检测方法通过预测图像中人群局部密度或者预测可 视目标框,进而使用额外的信息改进非极大值抑制,但这种方法只能优化行人检测中的非极 大值抑制部分,无法优化网络提取行人特征的效果。
发明内容
本发明提供一种结合密度估计的拥挤场景行人检测方法,目的在于优化行人特征提取的 同时改进非极大值抑制方法,从而提升拥挤场景下行人检测效果。
为实现上述目的,本发明的技术方案为:
一种结合密度估计的拥挤场景行人检测方法,包括:
采集图像,点标注图像中行人头部位置,框标注图像中行人区域形成边界框;
搭建卷积神经网络行人检测模型,所搭建的行人检测模型包括用于提取图像特征的骨干 网络模块、用于估计人群密度的密度估计模块、用于得出行人分类结果S和回归结果B的行 人检测模块,通过骨干网络模块提取所述图像的特征图F,将骨干网络模块提取的特征图F 与密度估计模块输出的预测密度图D1/8进行软连接从而得到新的特征图I作为行人检测模块 的输入,通过行人检测模块得到分类结果S和回归结果B;
用预测密度图D1/8经过双线性插值获得人群密度图D,基于所述人群密度图D及所述回 归结果B,动态计算非极大值抑制阈值;
将全部边界框基于所述非极大值抑制阈值进行非极大值抑制,得到行人检测结果。
所述骨干网络模块使用VGG16模型,VGG16模型在ImageNet数据集上进行预训练,之后去除网络最后的softmax分类层以及全连接层,作为骨干网络,且分别在stage3、stage4、 stage5输出尺寸大小为原图1/8、1/16、1/32的特征图。
所述密度估计模块输出预测密度图D1/8的方式进一步包括:将stage4的特征图经过卷积 核3*3,步长为2的反卷积得到大小为原图1/8的特征图,将stage5的特征图经过两次卷积 核为2,步长为2的反卷积得到大小为原图1/8的特征图,并与stage3输出的特征图进行拼 接,得到新的特征图之后经过两层3*3卷积,得到预测密度图D1/8。
所述软连接的方式进一步包括:将预测密度图D1/8与大小为原图1/8、1/16、1/32的特征 图进行软连接,软连接公式为In=fn((1+Rn(D1/8))×Fn),从而得到特征图I1、I2、I3作为行人检 测模块输入,其中,n为自然数,fn是步长为2n-1的3*3卷积,Rn作用是使得D1/8与Fn尺寸 一致。
所述行人检测模块使用PANNET结构,分类损失使用交叉熵损失,回归损失使用L2损 失,其输入为特征图I,输出为分类结果S和回归结果B。
行人检测模块采用特征金字塔结构,输入是多个不同尺度的特征图,骨干网络输出相应 尺寸的多个特征图,将预测密度图D1/8放缩成相应的尺寸并与相应大小的特征图进行软连接。
所述拥挤场景行人检测方法还包括:根据图像标注生成对应的密度图Dgt,训练卷积神经 网络行人检测模型时,使用生成的密度图Dgt作为密度估计模块的监督信号,计算密度估计 损失,使用框标注和点标注作为行人检测模块的监督信号,计算行人检测损失,神经网络最 终损失是两者的加权损失,当模型收敛时保存模型参数,用所保存模型参数对模型进行参数 设定。
计算密度估计损失的方式进一步包括:使用密度图D
gt作为预测密度图D
1/8的真实值,密 度估计损失为
式中N为D
gt像素点总数。
动态计算非极大值抑制阈值的方式进一步包括:结合密度图D,根据公式动态计算非极 大值抑制阈值,所述公式为:
式中,t为局部区域人数,计算方式为:
wmin=max(wl-0.5wl,0)
wmax=min(wr+0.5wr,W)
hmin=max(ht-0.5ht,0)
hmax=min(hb+0.5hb,H)
t=sum(D[wmin:wmax,hmin:hmax])
其中,sum为逐像素求和操作,即对行人预测框扩大之后对该区域的密度图求和得出行 人预测框邻近区域的人数,wl,wr,ht,hb为行人检测模块边界框回归结果,W、H为设定值。
非极大值抑制阶段重建得分函数为:
其中,iou(a,b)作用是求取a和b的交并比,M为当前得分最高的预测框,bi为其余预 测框,Q(x)=1-x。
本发明将人群密度估计与行人检测结合起来,使用密度图作为软注意力机制提升了行人 检测器提取特征的能力,提高了拥挤场景下行人检测算法的准确率,同时,结合密度图对非 极大值抑制方法进行改进,提高了拥挤场景下行人检测算法的召回率。因本发明相较于现有 的行人检测方法,只加入了一个轻量级的密度估计模块,故本发明在少量增加神经网络计算 量的同时提升了拥挤场景下行人检测算法的效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依 照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易 懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术 人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。 而且在整个附图中,用相同的参考符号表示相同的台件。
在附图中:
图1示出了本发明的实施流程图;
图2示出了本发明的软连接示意图;
图3为本发明的电子设备的结构示意图;
图4为本发明的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例 性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。 相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传 达给本领域的技术人员。
如图1所示,本实施例的拥挤场景行人检测方法,包括以下步骤:
S1、通过摄像头采集图像,使用点标注方式标注行人头部位置,使用矩形框标注方式标 注行人区域形成边界框。
S2、根据图像标注生成对应的密度图Dgt。
S3、搭建卷积神经网络行人检测模型,所搭建的行人检测模型包括用于提取图像特征的 骨干网络模块、用于估计人群密度的密度估计模块、用于得出行人分类结果S和回归结果B 的行人检测模块,将骨干网络模块提取的特征图F与密度估计模块输出结果D1/8进行软连接, 得到新的特征图I作为行人检测模块的输入,最后通过行人检测模块得到分类结果S和回归 结果B。
具体而言,在S3中,通过骨干网络模块提取S1中图像的特征图,其中骨干网络模块使 用VGG16模型,VGG16模型在ImageNet数据集上进行预训练,之后去除网络最后的softmax 分类层以及全连接层,作为骨干网络,且分别在stage3、stage4、stage5输出尺寸大小为原图 1/8、1/16、1/32的特征图。
然后通过密度估计模块,将S1中stage4的特征图经过卷积核3*3,步长为2的反卷积 得到大小为原图1/8的特征图,将S1中stage5的特征图经过两次卷积核为2,步长为2的反 卷积得到大小为原图1/8的特征图,并与stage3输出的特征图进行拼接,得到新的特征图之 后经过两层3*3卷积,得到预测密度图D1/8,使用S2中生成的密度图Dgt作为预测密度图D1/8的真实值,密度估计损失为:
式中N为Dgt像素点总数。
接着,将预测密度图D1/8与大小为原图1/8、1/16、1/32的特征图进行软连接,软连接流 程如图2所示,软连接公式为In=fn((1+Rn(D1/8))×Fn),n为自然数。
其中,fn是步长为2n-1的3*3卷积,Rn作用是使得D1/8与Fn尺寸一致。如f1为步长为1的3*3卷积,padding方式为SAME模式,f2为步长为2的3*3卷积,padding方式为SAME 模式,f3为步长为4的3*3卷积,padding方式为SAME模式,padding为卷积过程中的补 充操作,SAME模式代表卷积之前会对特征图进行补充操作,使卷积核遍历过程中能恰好覆 盖整个特征图。
最终得到特征图I1、I2、I3作为行人检测模块输入。
所述行人检测模块具体使用PANNET结构(由Path Aggregation Network forInstance Segmentation提出),分类损失使用交叉熵损失,回归损失使用L2损失,其输入为特征图I, 输出为分类结果S和回归结果B。
训练卷积神经网络行人检测模型时,使用S2生成的密度图作为密度估计模块的监督信 号,计算密度估计损失,使用S1中得到的矩形框标注和点标注作为行人检测模块的监督信 号,计算行人检测损失,神经网络最终损失是两者的加权损失,当模型收敛时保存模型参数。
用所保存模型参数对模型进行参数设定,将待测试的图像输入到训练好的模型中,得到 预测密度图D1/8,以及行人分类结果S和回归结果B。其中,D1/8说明神经网络输出尺寸大 小为原图1/8。
进一步地,D1/8经过Resize操作(双线性插值)后得到和原图尺寸一致的人群密度图D。
S4、结合密度图D,根据公式动态计算非极大值抑制阈值。
具体而言,动态阈值公式为:
式中,t为局部区域人数,计算方式为:
wmin=max(wl-0.5wl,0)
wmax=min(wr+0.5wr,W)
hmin=max(ht-0.5ht,0)
hmax=min(hb+0.5hb,H)
t=sum(D[wmin:wmax,hmin:hmax])
其中,sum为逐像素求和操作,即对行人预测框扩大之后对该区域的密度图求和得出行 人预测框邻近区域的人数,wl,wr,ht,hb为行人检测模块边界框回归结果,W、H为设定值。
非极大值抑制阶段重建得分函数为:
其中,iou(a,b)作用是求取a和b的交并比,M为当前得分最高的预测框,bi为其余预 测框,Q(x)=1-x。
S5、所有符合条件的边界框经过非极大值抑制之后,得到最后的行人检测结果。
优选地,在S3中,行人检测模块采用特征金字塔结构,输入是多个不同尺度的特征图, 骨干网络也会输出相应尺寸的多个特征图,需要将生成的密度图D1/8放缩成相应的尺寸并与 相应大小的特征图进行软连接。
本发明结合密度估计的方法,在已有的行人检测框架下额外采用行人头部点标注作为监 督信号,生成人群密度图,并且将生成的人群密度图作为软注意力机制与行人检测框架骨干 网络生成的特征图结合,输入到后续的分类、回归网络,提升行人检测准确率。在非极大值 抑制阶段,结合生成的人群密度图,动态确定非极大值抑制的阈值,提升行人检测召回率。
需要说明的是:
本实施例所用的方法,可转化为可存储于计算机存储介质中的程序步骤及装置,通过被 控制器调用执行的方式进行实施。
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通 用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是 显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言 实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实 施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可 以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技 术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面 对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、 或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本 发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要 求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体 实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发 明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并 且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件 组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除 了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说 明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者 设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘 要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包 括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内 并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都 可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件 模块实现,或者以它们的组合实现。本发明还可以实现为用于执行这里所描述的方法的一部 分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发 明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信 号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图3示出了根据本发明一个实施例的电子设备的结构示意图。该电子设备传统上 包括处理器31和被安排成存储计算机可执行指令(程序代码)的存储器32。存储器32可以 是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的 电子存储器。存储器32具有存储用于执行实施例中的任何方法步骤的程序代码34的存储空 间33。例如,用于程序代码的存储空间33可以包括分别用于实现上面的方法中的各种步骤 的各个程序代码34。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存 储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图4所述的计算机可读存储介质。该计算机可读存储介质可以具有与图3的电子设备中的存储器32类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元存储有用于执行根据本发明的方法步骤的程序代码41,即可以由诸如31之类的处理器读取的程序代码, 当这些程序代码由电子设备运行时,导致该电子设备执行上面所描述的方法中的各个步骤。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术 人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位 于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利 要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。 本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举 了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。 单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。