【学习笔记:IIM:Learning Independent Instance Maps for CrowdLocalization】

概述

IIM(Independent Instance Map segmentation)独立实例地图分割,被用于人群定位领域。特点如下:

  1. 端到端框架(end to end)
  2. 每个实例是不重叠的。通过将人群分割成独立的连通分量,获得位置和人群计数(分别为中心和分量的数目)
  3. 创新点:提出可微分二值化模块:(BM)
  • 针对不同图像自适应地学习阈值图,以更准确地检测每个实例;
  • 使用二进制预测和标签的损失直接训练模型。
  1. 主要方法:遵循启发式分支,并利用连通分量分割进行人群定位

数据

本文中所使用的数据类型为独立实例映射(Independent Instance Map),每个实例不重叠
在这里插入图片描述
在这里插入图片描述
其中images文件夹下为真实图片,masks文件夹包含了每张图片对应的独立实例,展示如下:

原图在这里插入图片描述
NWPU-Crowd :是目前最大和最具挑战性的开源人群数据集。它包含标头点和框标签。共有5109张图片和2133238个注释实例。
Shanghai Tech :包含两个子集:A部分有482张图像,共241677个实例,B部分包含716张图像,包括88,488个标记的头。
UCF-QNRF :是一个密集的人群数据集,由1535张图像组成,共有1251642个实例。
FDST :由13个不同场景中捕获的100个视频组成。它包含15000个帧,共有394081个头,包括点和框标签。

方法

首先对人群场景中的头部区域进行置信度预测。图像或像素级二值化模块将置信度图分割成独立的实例图。在推断期间,阈值模块为每个置信图在线预测阈值。最后,通过检测4个连通分量,得到每个独立实例区域的框和中心。在这里插入图片描述

二值化层

在这里插入图片描述
二值化层的目标是学习阈值T以分割输入图像,使得其输出图像O尽可能接近目标图像G。
对于输入I,输出O,二值化层B给出如下定义:

其中阈值T是要学习的参数。这个前向过程是不可微的,因为它是一个比较运算。因此,不可能自动计算T的梯度。这里我们定义了一个类似的数学模型来模拟二进制输出O和T之间的关系,其中输出仅与T有关系。
假设I ∈ RH×W满足两个条件:

  1. H × W → ∞ H ×W → ∞ H×W;
  2. I ( i , j ) ∼ U ( 0 , 1 ) I(i,j)\sim U(0,1) IijU01,均匀分布

那么,从概率统计的角度来看,累积分布函数FI(i,j)(T)与T的关系如下:

其中 P ( I ( i , j ) < T ) P(I(i,j)<T) PIij<T表示I中的像素值小于T的概率。

损失与反向传播

为了计算反向传播的损失,论文中将输出图像O中的所有像素求和为标量,并进行归一化,定义yˆ:

根据上述公式推导,易知y^与阈值T的关系有:

可以看出y ^和阈值T是线性运算,y ^对T的导数值为1。为了使真实标签与预测值具有同样的形式,将G定义为:
在这里插入图片描述
即将真实数据中所有点的像素值相加并进行归一化
根据学习速率α,更新阈值T,公式如下:
在这里插入图片描述
L ( y ˆ , y ) L(yˆ, y) L(yˆ,y)是真实值G与输出O之间的损失函数,可以选择为 L 1 l o s s L1loss L1loss或者其他。

二值化模块

为了使阈值根据图像内容进行更新,文章根据上述二值化层进一步提出了二值化模块(BM),该模块由阈值编码器和二值化层组成。

  • 阈值编码器:对图像的特征图进行编码并生成单个值或图
  • 二值化层:利用该值/图来二值化置信度图并输出实例图

作为阈值编码器,特征F可以由具有参数Θ的阈值编码器映射到阈值T:

在此公式中,阈值T可以有两种形式,可以是标量或大小与输入I相同的矩阵。这两种阈值表达方式分别对应了固定阈值与逐像素级阈值。固定阈值对于一张图片为一固定标量值,像素级阈值对于每一个像素点处具有不同的阈值。
在这里插入图片描述
在这里插入图片描述
对于示意图来说,存在用于二值化层的两个输入:欠分割图像I和阈值T。对于阈值编码器,T的每个像素处的导数为-1。这意味着当梯度流到阈值编码器时,梯度将被反转阈值T。因此,阈值学习器中的参数Θ可以通过如下的梯度下降来优化:
在这里插入图片描述
其中β是阈值编码器的学习速率。除了优化阈值编码器之外,可以用二进制预测和标签来计算硬损失,并且进行从输入I到置信度图的预测网络的反向传播(例如,置信度预测器)。与阈值编码器不同,置信度预测器的梯度具有与损失L(y,y)相同的符号。假设输入I由具有参数θ的置信度预测器输出,θ利用学习速率γ更新为:
在这里插入图片描述
阈值编码器和置信度预测器起对抗作用。置信度编码器希望使目标区域具有较高置信度,背景区域具有较低置信度。阈值学习器力求使目标区域具有低阈值,而背景区域具有高阈值。通过这种方式,可以尽可能多地滤除背景噪声,并且可以保留低置信度前景,如小尺度和大尺度头部,用于定位。由于这两个任务是对抗的,我们在主干网络结构(卷积层)和阈值学习器之间添加梯度分离操作。

框架建立

置信图预测器(CP)

我们希望通过检测连接组件来实现人群定位,因此使用高分辨率特征表示的主干网络结构来提取特征。论文中,有两种流行的网络被用作置信度预测器:

  1. VGG-16 + FPN,其使用VGG-16作为骨干并利用特征金字塔网络来编码多尺度特征;
  2. HRNet-W48,一种高分辨率网络,具有强大的视觉识别特征表示能力

阈值编码器(TE)

两种方法: 这里,提出了两种方案来二值化置信图预测器(CP)的输出:图像级和像素级二值化模块(简称“IBM”和“PBM”)。IBM和PBM分别使用单个值和映射对预测进行二进制化。
为了从图像内容学习阈值,设计了阈值编码器(TE),其输入等于原始特征图乘置信度图: F : = I ⨀ F F := I \bigodot F F:=IF 使用预测的置信图进行哈达玛积(即形状相同的矩阵对应位置的元素相乘)以过滤背景噪声。

IBM:在IBM中,应用1 × 1卷积层和全局平均池化(GAP)来输出单个值作为二值化层的可学习阈值。
PBM:IBM只能对于一张输入图像只能学习到一个特定阈值,但不同尺度的头部的置信度分布是非常不同的。因此,PBM中的阈值编码器(TE)被提出以产生像素级阈值图,其由具有PReLU的四个卷积层和具有步长为1的两个大内核平均池化组成。配置如下所示:

Conv:3×3PReLU; Conv:3×3PReLU; Conv:3×3PReLU;Avgpool(平均池化):15 ×15; Conv:1×1,Avgpool(平均池化):15×15,Sigmoid

在PBM的TE中,为了覆盖大的空间感受野并保存存储器,输入特征被调整为原始尺寸的1/8。此外,在最后两个卷积层之后,应用步长为1的15 × 15平均池化来平滑输出。

压缩Sigmoid :在实验中,TE可能会在阈值图中产生一些很低(小于0.1)或很高(接近1)的值,这使得网络很容易波动。此外,高阈值导致头部区域中的许多空洞。因此,为了限制Sigmoid激活函数的输出范围。提出了压缩Sigmoid,将输出约束在(0.2,0.7)之间,其公式为:
在这里插入图片描述

  • 在得到阈值图之后,它将与置信度图一起被馈送到二值化层。然后二值化层产生分割图。最后,通过检测连通区域,得到独立实例的盒和中心。

损失函数

在该框架中涉及两个损失函数:

置信图学习损失函数
置信图学习是一个回归问题,MSELoss(均方误差)可以很好地训练它

阈值映射学习损失函数
阈值映射学习也是一个回归问题,阈值范围为(0.2,0.7).因此,L1损失函数被应用于等式中的
L(y^,y)用于训练阈值学习器。除此之外,该目标函数为置信度预测器提供梯度。

总结

总的来说,IIM运行的流程为:

  1. 原图进入置信度预测器(参数为 θ θ θ),可选择 H R − n e t HR-net HRnet V G G − 16 + F P N VGG-16 + FPN VGG16+FPN,得到置信度图为 I ( x , y ) I(x,y) I(x,y),尺寸与原图大小相同
  2. 置信度图与原图对应位置元素相乘,得到 F : = I ⨀ F F := I \bigodot F F:=IF,作为阈值编码器的输入
  3. 输入数据 F : F : F:进入阈值编码器后经过具有 P R e L U PReLU PReLU的四个卷积层和池化层后,得到逐像素的阈值图 T ( x , y ) T(x,y) T(x,y)
  4. 阈值图 T ( x , y ) T(x,y) T(x,y)和置信度图 I ( x , y ) I(x,y) I(x,y)同时进入二值化层,对置信度图进行二值化并输出实例图 O ( x , y ) O(x,y) O(x,y)
  5. 将输出实例图与真实图转化成标量后进行计算损失,损失函数采用 L 1 l o s s L1loss L1loss,用于训练阈值编码器,不要忘记在二值化层的梯度反转
  6. 使用 M S E L o s s MSELoss MSELoss训练置信度预测器

模型评估

本文中在模型评估时使用的Instance-level Precision(准确率)、Recall(召回率)和F1-measure(F1值)是用于评估二分类模型性能的常用指标
准确率(Precision)衡量了模型预测为正例的样本中有多少是真正的正例。准确率可以通过以下公式计算:
P r e c i s i o n = T P T P + F P Precision= \frac{TP}{TP+FP} Precision=TP+FPTP

其中,TP表示真阳性(True Positives),FP表示假阳性(False Positives)。准确率越高,模型预测为正例的样本中真正的正例越多。

召回率(Recall)衡量了模型能够正确预测出多少真正的正例。召回率可以通过以下公式计算:
R e c a l l = T P T P + F N Recall= \frac{TP}{TP+FN} Recall=TP+FNTP

其中,TP表示真阳性(True Positives),FN表示假阴性(False Negatives)。召回率越高,模型能够正确预测出更多的真正的正例。

F1值(F1-measure)是准确率和召回率的加权调和平均值,综合考虑了模型的准确性和召回能力。F1值可以通过以下公式计算:
F 1 = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l F1= \frac{2\cdot Precision\cdot Recall}{Precision+Recall} F1=Precision+Recall2PrecisionRecall

F1值的取值范围为0到1,值越高表示模型的性能越好。

方法对比

三个经典的人群定位方法和IIM在四个数据集上的性能:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值