人群定位是人群分析中的1个子任务,其目的是预测每个实例的位置。传统的基于密度的方法只能进行粗略预测,而基于分割/检测的方法无法处理极其密集的场景和大范围尺度变化的人群。为此,提出一种用于人群定位的端到端且简单的框架,称为独立实例图分割(Independent Instance Map segmentation,IIM)。
论文:https://arxiv.org/abs/2012.04164
代码:https://github.com/taohan10200/IIM
下图显示4种传统标签和所提出的IIM标签。IIM具有更好的独立性和规模。
一. 方法
IIM的人群定位框架如下图所示。
首先,利用Confidence Predictor 预测给定图片人群区域的置信度。然后,Binarization Module将置信图输出为二值图。最后,检测分割图中的连通分量以输出包括头部中心的框。
1.Confidence Predictor
有2种流行的网络被用作置信度预测器 (CP)。
•VGG-16+FPN:使用VGG-16作为主干,并利用特征金字塔网络FPN来编码多尺度特征。
•HRNet-W48:1种高分辨率网络,具有强大的特征表示能力。
2.Threshold Encoder
提出2种方案来对CP的输出进行二值化:图像级和像素级二值化模块(简称“IBM”和“PBM”)。
•IBM:应用 1 × 1 卷积层和全局平均池化 (GAP) 来输出单个值作为二值化层的可学习阈值。
•PBM:不同尺度的头部的置信度分布有很大不同。利用PBM产生像素级阈值图。具体配置如下: Conv:3×3,PReLU;Conv: 3×3,PReLU;Conv:3×3,PReLU;Avgpool: 15×15; Conv:1×1,Avgpool:15×15, Sigmoid。为了覆盖较大的空间感受野并节省内存,将输入特征的大小调整为原始大小的 1/8。此外,在最后2个卷积层之后,应用步长为1的 15×15平均池化来平滑输出。
为了避免网络波动,限制Sigmoid激活函数的输出范围。提出压缩Sigmoid,将输出约束在(0.2,0.7)之间,其公式为:
3.Binarization Module
:为了根据图像内容进行阈值更新,进一步提出了二值化模块(Binarization Module,BM),该模块由Threshold Encoder 和Binarization Layer组成。前者对图像的特征图进行编码并生成单个值或图。后者利用该值/图对置信图进行二值化并输出实例图。
根据特征图 (通常从主干网络中提取)输出置信图 I 的阈值预测。
特征F可以通过参数为θ的阈值编码器映射到阈值T。
阈值T可以有2种形式,可以是标量或大小与输入I相同的矩阵。这2种阈值表达方式分别对应了固定阈值与逐像素级阈值。固定阈值对于1张图片为固定标量值,像素级阈值对于每1个像素点处具有不同的阈值。
对于示意图来说,存在用于二值化层的2个输入:欠分割图像I和阈值T。阈值学习器threshold learner 中的参数 θ 可以通过梯度下降来优 化,如下所示:
其中β是阈值编码器的学习率。假设输入 I 由置信预测器confidence predictor(参数 θ) 输出,则 θ 更新公式如下:
上面2个公式表明:阈值编码器和置信度预测器起着相反的作用。置信度编码器希望使目标区域具有较高的置信度,而背景区域具有较低的置信度。阈值学习器力求使目标区域具有低阈值,而背景区域具有高阈值。通过这种方式,可以尽可能地过滤背景噪声,并且可以保留低置信度前景(例如微小尺度和大规模头部)进行定位。由于这2个任务是对抗的,因此在主干和阈值学习器之间添加梯度分离操作。
4.Binarization Layer
:给定输入,其中的每个像素范围是[0,1];对应的目标2值图像
,值为0或1。Binarization Layer的目标是学习1个阈值T对输入图像进行分割,使其输出图像O尽可能接近目标图像G。
二值化层β的前向过程定义如下
其中阈值T是要学习的参数。这个前向过程是不可微的,因为它是一个比较运算。因此,不可能自动计算T的梯度。这里定义1个类似的数学模型来模拟O和T之间的关系,其中输出O仅与T有关系。
假设I 满足2个条件
1)
2)
累积分布函数 与 T 的关系如下
其中 表示I中的像素值小于T的概率。
为了学习阈值 T ,将输出O 中的所有像素求和为1个标量,以便计算反向损失传播。
根据学习速率α,更新阈值T,公式如下
其中L(ŷ, y)是衡量输出OF与目标G之间距离的损失函数。可以是简单的L1损失或其他距离测量函数。