赞
踩
SINet-v2整体设计思想与SINet类似,即将伪装目标分割任务分成搜索和识别两个阶段。首先,通过深层的高级特征学习对象的语义信息,生成粗略的特征图;然后,再通过特征融合的方式细化粗略特征,精确分割出伪装对象。主要改进之处在于,SINet-v2只聚合最深三层的特征,引入邻居连接解码器(NCD)和组反转注意力(GRA)两个模块大大提升了模型效果。
整体网络结构主要包括三个模块:
Res2Net相比ResNet计算负载不增加,特征提取能力更强。二者区别如下图所示,通俗的理解,就是将原来的resnet中间的 3 × 3 3 \times 3 3×3卷积换成了右侧红色部分。
经过1x1卷积之后,将特征图分成4部分。第一部分线路很简单, x 1 x_1 x1不做处理,直接传到 y 1 y_1 y1;第二部分线路, x 2 x_2 x2经过3x3卷积之后分为两条线路,一条继续向前传播给 y 2 y_2 y2,另一条传到 x 3 x_3 x3,这样第三条线路就获得了第二条线路的信息;第三条线路、第四条线路,以此类推。
使用Res2Net替代ResNet对图像特征进行提取,得到一组特征 f k , k ∈ { 1 , 2 , 3 , 4 , 5 } f_k, k \in \lbrace 1,2,3,4,5 \rbrace fk,k∈{1,2,3,4,5},每个特征 f k f_k fk的分辨率分别是 H 2 k × W 2 k , k ∈ { 1 , 2 , 3 , 4 , 5 } \frac{H}{2^k} \times \frac{W}{2^k}, k \in \lbrace 1,2,3,4,5 \rbrace 2kH×2kW,k∈{1,2,3,4,5}
与SINet中的RF模块保持一致,通过一组不同膨胀率的膨胀卷积,模仿人类视觉系统中不同大小的分组感受野。
由于低级特征往往空间分辨率因较大而消耗更多的计算资源,但是对于性能的贡献很小,因此在v2中只聚合了三个最深层的特征。
在聚合多层特征时粗在两个关键问题:
使用邻居连接函数修改SINet中的部分解码器组件(PDC)解决这些问题。
高级特征虽然有更好的语义强度和定位精度,但是会为目标对象引入噪声,使边缘模糊。因此使用邻居连接的方法兼顾语义特征和底层特征。
由于全局位置图 C 6 C_6 C6来自三个最深的特征层,只能捕捉伪装对象相对粗略的位置,忽略了结构和纹理细节。为了解决这一问题,引入反向注意力机制,通过关注对象区域之外的背景区域,来加强对伪装对象边缘特征的提取。
如下图所示,通过 s i g m o i d sigmoid sigmoid和反向操作获得反向注意力引导 r 1 k r_1^k r1k。
为了更有效地利用反向注意力先验,使用了分组引导的操作。主要包含两个步骤:
PraNet中候选特征直接与反向注意先验相乘,有可能导致两个问题:
相比之下,分组引导操作可以在后续细化过程之前明确地分离出引导先验特征和候选特征。
将反向注意力引导和分组引导与残差学习过程相结合,称之为GRA模块。由于多级细化可以提高性能,所以将多个GRA模块结合起来,通过不同深度的特征层逐步细化粗略预测。
总的来说,每个GRA模块有三个残差学习步骤:
GRA结构如下图所示。
损失函数可表示为:
L = L I O U W + L B C E W L=L^W_{IOU}+L^W_{BCE} L=LIOUW+LBCEW
其中 L I O U W L^W_{IOU} LIOUW和 L B C E W L^W_{BCE} LBCEW代表加权的IOU和二元交叉熵损失,参考F3Net。与在分割任务中广泛采用的标准IoU损失不同, L I O U W L^W_{IOU} LIOUW增加了难以分辨的像素的权重,以突出其重要性。此外,与标准BCE损失相比, L B C E W L^W_{BCE} LBCEW更关注难以分辨的像素,而不是为所有像素分配相等的权重。
def structure_loss(pred, mask):
"""
loss function (ref: F3Net-AAAI-2020)
"""
weit = 1 + 5 * torch.abs(F.avg_pool2d(mask, kernel_size=31, stride=1, padding=15) - mask)
wbce = F.binary_cross_entropy_with_logits(pred, mask, reduce='none')
wbce = (weit * wbce).sum(dim=(2, 3)) / weit.sum(dim=(2, 3))
pred = torch.sigmoid(pred)
inter = ((pred * mask) * weit).sum(dim=(2, 3))
union = ((pred + mask) * weit).sum(dim=(2, 3))
wiou = 1 - (inter + 1) / (union - inter + 1)
return (wbce + wiou).mean()
在源代码中,加权损失实际上是在标准损失的基础上,利用gt生成了一个权重参数weit,其数学表达式如下:
w e i t = 1 + 5 × ∣ ∑ m , n ∈ A i , j g m n s ∑ m , n ∈ A i , j 1 − g i j s ∣ weit = 1+5 \times \lvert \frac{\sum_{m,n \in A_{i,j}}g_{mn}^s}{\sum_{m,n \in A_{i,j}}1} - g_{ij}^s \rvert weit=1+5×∣∑m,n∈Ai,j1∑m,n∈Ai,jgmns−gijs∣
其中 g i j s g_{ij}^s gijs表示 ( i , j ) (i,j) (i,j)位置的真值(1对应前景,0对应背景), A i j A_{ij} Aij表示 ( i , j ) (i,j) (i,j)周围的像素。
我们取几个特殊值讨论。假设 g m n s g_{mn}^s gmns均为0, g i j s g_{ij}^s gijs均为1,相当于当前像素为前景,而周围像素均为背景,是一个小目标,应该给予高权重。类似的,如果 g m n s g_{mn}^s gmns均为0, g i j s g_{ij}^s gijs也均为0,表明当前位置与周围位置均为背景,此时对应着一个低权重。所以加权损失会给小目标和边缘像素分配更高的权重,权重越高对损失函数求导后梯度也就越大,模型参数也就对小目标和边缘像素更加关注。对权重进行可视化如下:
在这里,我们对三个侧输出(即 C 3 C_3 C3、 C 4 C_4 C4和 C 5 C_5 C5)和全局输出 C 6 C_6 C6进行监督。每个输出都被上采样(例如 C 3 u p C_3^{up} C3up)到与gt相同的大小。因此,所提出的SINet的总损失函数可以表示为:
L t o t a l = L ( C 6 u p , G ) + ∑ i = 3 i = 5 L ( C i u p , G ) L_{total}=L(C_6^{up},G)+\sum_{i=3}^{i=5}L(C_i^{up},G) Ltotal=L(C6up,G)+i=3∑i=5L(Ciup,G)
源代码如下,其中loss_init代表 ∑ i = 3 i = 5 L ( C i u p ) \sum_{i=3}^{i=5}L(C_i^{up}) ∑i=3i=5L(Ciup),loss_final代表 L ( C 6 u p ) L(C_6^{up}) L(C6up)。
def train(train_loader, model, optimizer, epoch, save_path, writer): """ train function """ try: for i, (images, gts) in enumerate(train_loader, start=1): ··· loss_init = structure_loss(preds[0], gts) + structure_loss(preds[1], gts) + structure_loss(preds[2], gts) loss_final = structure_loss(preds[3], gts) loss = loss_init + loss_final loss.backward() ··· ··· except KeyboardInterrupt: ···
SINet-v2整体思路与SINet大体一致,在特征融合、注意力机制和损失函数上做了改进。其中吸引我的地方,
一是分组的反向注意力机制。
由于浅层中的低级特征保留了构建对象边界的空间细节,而深层中的高级特征保留了定位对象的语义信息,所以在上一版本中SINet利用深层特征层 X 3 X_3 X3、 X 4 X_4 X4作为注意力,将深层的语义信息融入保留了边界信息的浅层特征层 X 2 X_2 X2中。实际上,一方面作为浅层特征层的 X 2 X_2 X2的尺寸是原图的1/8,分辨率较大导致训练过程中参数量较多;另一方面, X 2 X_2 X2对于浅层边界特征没有进行任何增强处理,对于边界和细小目标特征的学习并不理想。
通过分组的反向注意力操作,既学习哪些像素属于前景,又学习哪些像素属于背景,将二者结合从而突出了边缘像素和一些模型难以分类的像素。
二是损失函数的设计。
在标准的IOU和二元交叉熵损失函数的基础上,增加了权重因子,使得边缘像素获得更大的权重,距离边缘越远,权重越小,从而使得模型更加关注边缘和细小目标。
疑问及实验:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。