CamoTeacher:玩转半监督伪装物体检测,双一致性动态调整样本权重 | ECCV 2024
论文提出了第一个端到端的半监督伪装目标检测模型
CamoTeacher
。为了解决半监督伪装目标检测中伪标签中存在的大量噪声问题,包括局部噪声和全局噪声,引入了一种名为双旋转一致性学习(DRCL
)的新方法,包括像素级一致性学习(PCL
)和实例级一致性学习(ICL
)。DRCL
帮助模型缓解噪音问题,有效利用伪标签信息,使模型在避免确认偏差的同时可以获得充分监督。广泛的实验验证了CamoTeacher
的优越性能,同时显著降低了标注要求。来源:晓飞的算法工程笔记 公众号
论文: CamoTeacher: Dual-Rotation Consistency Learning for Semi-Supervised Camouflaged Object Detection
Introduction
伪装物体检测(COD
)旨在识别在其环境中完全融入的物体,包括动物或具有保护色彩并具有融入周围环境能力的人造实体,这一任务由于低对比度、相似纹理和模糊边界而变得复杂。与一般物体检测不同,COD
受到这些因素的挑战,使得检测变得格外困难。现有的COD
方法严重依赖于大规模的像素级注释数据集,其创建需要大量的人力和成本,从而限制了COD
的进展。
为了缓解这一问题,半监督学习作为一种有希望的方法出现,利用标记和未标记数据。然而,由于复杂的背景和微妙的物体边界,其在COD
中的应用并不直接。半监督学习在COD
中的有效性受到伪标签中存在的大量噪声的严重影响,伪标签的噪声有两种主要类型:像素级噪声,表明在单个伪标签内的变化,以及实例级噪声,显示不同伪标签之间的变化。这种区分是至关重要的,因为它指导了如何改进伪标签质量以提高模型训练的方法。(1
)像素级噪声的特点是在伪标签的各个部分内部的标注不一致。如图1a
中所示,在第一行中,壁虎的尾部在视觉上比头部更难以识别。由SINet
生成的伪标签在其尾部区域中的准确性较低(由红色框标出)。这一观察结果强调了对伪标签内的所有部分统一处理的不当性。(2
)实例级噪声指的是不同伪标签之间噪声水平的变化。如图1a
所示,第三行的伪标签与第二行相比不太准确,因为第三行中的伪装对象更难以检测。这些差异表明每个伪标签对模型训练的贡献是不同的,强调了需要对整合伪标签信息采取细致差异的方法。
为了解决在没有未标记GT
的数据的情况下评估伪标签噪声的挑战,论文提出了基于两个旋转视图的像素级不一致性和实例级一致性的两种新策略。具体来说,对于像素级噪声,论文观察到通过比较两个旋转视图的伪标签计算出的像素级不一致性,可以反映相对于GT
的实际误差,如图2a
所示。这种关系显示了不同部分之间平均像素级不一致性与平均绝对误差(MAE
)之间的正相关性,如图2b
的折线所示。因此,具有较高像素级不一致性的区域更容易出现不准确性,表明在训练过程中需要减弱这些区域的重要性。
对于实例级噪声,跨旋转视图具有更大相似性的伪标签展示了更低的噪声水平,如图3a
所示。伪标签和GT
计算的SSIM
之间的实例级一致性与正相关性进一步支持了这一观察结果,如图3b
所示。因此,表现出更高实例级一致性的伪标签可能具有更高质量,并应在学习过程中优先考虑。
通过这些观察结果,论文提出了一种名为CamoTeacher
的半监督伪装物体检测框架,该框架结合了一种名为Dual-Rotation Consistency Learning
(DRCL
)的新方法。具体而言,DRCL
通过两个核心组件来实现其策略:像素级一致性学习(PCL
)和实例级一致性学习(ICL
)。PCL
通过考虑不同旋转视图之间的像素级不一致性,创新地为伪标签中的不同部分分配可变权重。同时,ICL
根据实例级一致性调整各个伪标签的重要性,实现细致、噪声感知的训练过程。
论文采用SINet
作为基础模型来实现CamoTeacher
,并将其应用于更经典的伪装物体检测(COD
)模型,即基于CNN
的SINet-v2
和SegMaR
,以及基于Transforme
的DTINet
和FSPNet
。在四个COD
基准数据集(即CAMO
,CHAMELEON
,COD10K
和NC4K
)上进行了大量实验,结果显示CamoTeacher
不仅在与半监督学习方法相比方面达到了最先进的水平,而且与已建立的全监督学习方法相媲美。具体来说,如图1b
所示,仅使用了20%
的标记数据,它几乎达到了在COD10K
上全监督模型的性能水平。
论文的贡献可以总结如下:
引入了第一个端到端的半监督伪装物体检测框架
CamoTeacher
,为未来半监督伪装物体检测的研究提供了一个简单而有效的基准。为解决半监督伪装物体检测中伪标签中大量噪声的问题,提出了
Dual-Rotation Consistency Learning
(DRCL
),其中包括Pixel-wise Consistency Learning
(PCL
)和Instance-wise Consistency Learning
(ICL
),允许自适应调整不同质量伪标签的贡献,从而有效利用伪标签信息。在
COD
基准数据集上进行了大量实验,相较于完全监督设置,取得了显著的改进。
Methodology
Task Formulation
半监督伪装物体检测旨在利用有限的标记数据训练一个能够识别与周围环境无缝融合的物体的检测器。由于物体与背景之间的对比度较低,这个任务本身具有挑战性。给定一个用于训练的伪装物体检测数据集 \(D\) ,含 \(M\) 个标记样本的标记子集表示为 \(D_L=\{x_i^{l}, y_i\}_{i=1}^{M}\) ,含 \(N\) 个未标记样本的未标记子集表示为 \(D_U=\{x_i^{u}\}_{i=1}^{N}\) ,其中 \(x_i^{l}\) 和 \(x_i^{u}\) 表示输入图像, \(y_i\) 表示标记数据的相应注释掩码。通常, \(D_L\) 只占整个数据集 \(D\) 的很小一部分,这突出了 \(M \ll N\) 的半监督学习场景。对于 \(M \ll N\) 的强调,强调了半监督学习中的挑战和机遇:通过利用未标记数据 \(D_U\) 尚未发掘的潜力来提升检测能力,而这远远超过了标记子集 \(D_L\) 。
Overall Framework
如图4
所示,采用Mean Teacher
作为初步方案,以实现端到端的半监督伪装物体检测框架。该框架包含两个具有相同结构的COD
模型,即教师模型和学生模型,分别由参数 \(\Theta_t\) 和 \(\Theta_s\) 参数化。教师模型生成伪标签,然后用于优化学生模型。整体损失函数 \(L\) 可以定义为:
L = L_s + \lambda_u L_u ,
\end{equation}
\]
其中, \(L_s\) 和 \(L_u\) 分别表示有监督损失和无监督损失, \(\lambda_u\) 是平衡损失项的无监督损失权重。按照经典的COD
方法,使用二元交叉熵损失 \(L_{bce}\) 用于训练。
在训练过程中,采用弱数据增强 \(\mathcal{A}^w(\cdot)\) 和强数据增强 \(\mathcal{A}^s(\cdot)\) 策略的组合。弱数据增强应用于有标记数据以减轻过拟合,而无标记数据在强数据增强下经历各种数据扰动,以创造同一图像的不同视角。有监督损失 \(L_s\) 的定义如下:
L_s = \frac{1}{M} \sum\limits^{M}_{i=1} L_{bce}(F(\mathcal{A}^w(x_i^l);\Theta_s), y_i) ,
\end{equation}
\]
其中, \(F(\mathcal{A}(x_i);\Theta)\) 表示模型 \(\Theta\) 对第 \(i\) 张图像在增强 \(\mathcal{A}(\cdot)\) 下的检测结果。对于无标记的图像,首先应用弱数据增强 \(\mathcal{A}^w(\cdot)\) ,然后将其传递给教师模型。这一初始步骤对于在不显著改变图像核心特征的变化下生成可靠的伪标签 \(\widehat{y_i}\) 至关重要。这些伪标签作为学生模型的一种软监督形式。接下来,相同的图像经过强数据增强 \(\mathcal{A}^s(\cdot)\) 后传递给学生模型。这个过程引入了更高层次的变异性和复杂性,模拟更具挑战性的条件,以适应学生模型。学生模型基于这些经过强增强的图像生成预测 \(p_i\) ,利用伪标签 \(\widehat{y_i}\) 作为无标记数据学习的指导。可以将其形式化为:
\widehat{y_i} = F(\mathcal{A}^w(x_i^u);\Theta_t), \ p_i = F(\mathcal{A}^s (\mathcal{A}^w(x_i^u));\Theta_s) .
\end{equation}
\]
因此,无监督损失 \(L_u\) 可以表示为:
L_u = \frac{1}{N} \sum\limits^{N}_{i=1} L_{bce}(p_i, \widehat{y_i}).
\end{equation}
\]
最后,学生模型通过总损失 \(L\) 进行密集训练,该损失包含了半监督框架中有监督和无监督学习的两个方面。这种方法确保学生模型从有标记和伪标记数据中受益,提高其检测能力。同时,教师模型通过指数移动平均(EMA
)机制进行系统更新,有效地提取学生知识并防止噪音干扰,具体表述为:
\Theta_t \leftarrow \eta \Theta_t + (1 - \eta)\Theta_s ,
\end{equation}
\]
其中, \(\eta\) 是一个超参数,表示保留的比例。
Dual-Rotation Consistency Learning
由于物体的伪装性质,伪标签中包含大量噪音,直接使用它们来优化学生模型可能会损害模型的性能。为解决这个问题,最直观的一个可能方法是设置一个固定的高阈值来过滤高质量的伪标签,但这会导致召回率较低,并使得难以充分利用伪标签的监督信息。为此,论文提出了双旋转一致性学习(DRCL
),以动态调整伪标签的权重,减少噪音的影响。
对图像 \(x_i\) 进行两个独立的随机旋转,其中 \(x_i\) 在之前已进行了翻转和随机调整大小,得到两个不同的旋转视图 \(x_i^{r_1}\) 和 \(x_i^{r_2}\) 。
x_i^{r_1} = R(\mathcal{A}^w(x_i), \theta_1), \ x_i^{r_2} = R(\mathcal{A}^w(x_i), \theta_2),
\end{equation}
\]
其中, \(x_i^{r} = R(x_i, \theta)\) 表示将输入图像 \(x_i\) 旋转 \(\theta\) 度。将获得的旋转视图输入到教师模型中,得到相应的预测值,即 \(\widehat y_i^{r} = F(x_i^{r}; \Theta_t)\) 。随后,对预测值进行 \(-\theta\) 的相反旋转,使其返回到原始的水平方向,得到 \(\widehat y_i^{h_1}\) 和 \(\widehat y_i^{h_2}\) ,以便在不同的旋转视图下计算预测不一致性。
\widehat y_i^{h_1} = R(\widehat y_i^{r_1}, -\theta_1), \ \widehat y_i^{h_2} = R(\widehat y_i^{r_2}, -\theta_2).
\end{equation}
\]
请注意,旋转会引入黑色的边界区域,这些区域不参与DRCL
的计算过程。
由于伪标签的不同区域和不同伪标签之间的噪声水平不同,引入PCL
和ICL
动态调整不同像素在伪标签内部和各个伪标签之间的贡献。
Pixel-wise Consistency Learning
在像素级别上对水平预测 \(\widehat y_i^{h_1}\) 和 \(\widehat y_i^{h_2}\) 进行减法运算,得到像素级别的不一致性 \(\Delta_i\) 。
\Delta_i = | \widehat y_i^{h_1} - \widehat y_i^{h_2} |.
\end{equation}
\]
不同视图之间的像素级不一致性 \(\Delta_i\) 反映了伪标签的可靠性。然而,在两个旋转视图的预测值都接近0.5
的情况下, \(\Delta_i\) 无法有效区分它们。这些预测表现出高度的不确定性,意味着不能明确将它们分类为前景或背景,并且很可能代表嘈杂的标签。因此,有必要通过降低它们的权重来减弱它们的影响。因此,计算水平预测值 \(\widehat y_i^{h}\) 的平均值,
\widehat y_i^{h} = avg ( \widehat y_i^{h_1} , \widehat y_i^{h_2} ),
\end{equation}
\]
其中, \(avg(\cdot, \cdot)\) 表示计算两个像素级别输入的平均值,并使用其与0.5
的L2
距离作为调整权重的一个组成部分。
因此,根据不同旋转视图之间的像素级别不一致性,推导出像素级别一致性权重 \(\omega_i^{pc}\) ,如下所示:
\omega_i^{pc} = (1 - \Delta_i^{\alpha})||\widehat y_i^{h} - \mu||_2^2 ,\label{wlc}
\end{equation}
\]
其中, \(\alpha\) 是一个超参数, \(\mu=0.5\) 。这个动态的像素级一致性权重 \(\omega_i^{pc}\) 会给与不同旋转视图间预测一致的区域分配更高的权重,而对于预测不一致的区域则分配较小的权重。
总而言之,将PCL
损失函数 \(L_u^{PC}\) 表述为:
\label{unsup_loss}
\begin{split}
L_u^{PC} &= \frac{1}{N} \sum\limits^{N}_{i=1} \omega_{i}^{pc} L_{bce}(p_{i}, \widehat {y}_{i}^{r_1}) \\
&= - \frac{1}{NHW} \sum\limits^{N}_{i=1} \sum\limits^{H \times W}_{j=1} \omega_{i, j}^{pc} [\widehat {y}_{i, j}^{r_1}\log p_{i, j} \\
& \quad \quad \quad \quad \quad \quad + (1 - \widehat {y}_{i, j}^{r_1})\log (1-p_{i, j})] ,
\end{split}
\end{equation}
\]
自适应地调整每个像素的权重,以确保对学生模型进行全面监督,同时避免带来偏见。
Instance-wise Consistency Learning
不同图像之间的伪装程度会有所不同,导致伪标签质量在图像之间存在显著变化。平等地对待所有伪标签是不合理的。不幸的是,对于未标记的图像,评估伪标签质量是具有挑战性的,因为没有可用的GT
标签。论文呢观察到两个旋转视图的实例一致性和伪标签质量之间存在正相关,由SSIM
量化。基于此,引入ICL
来调整具有不同质量的伪标签的贡献。将实例级一致性权重 \(\omega_i^{ic}\) 表示如下:
\omega_i^{ic} = (SSIM( \widehat y_i^{h_1} , \widehat y_i^{h_2} ))^{\beta},
\end{equation}
\]
其中, \(\beta\) 是一个超参数,用于调整实例级一致性和伪标签质量之间的分布关系。
使用交并比(IoU
)损失作为实例级限制,因此,ICL
损失可以表示为:
\begin{split}
L_{u}^{IC} &= \frac{1}{N} \sum\limits^{N}_{i=1} \omega_i^{ic} L_{iou}( p_i , \widehat y_i^{r_1} ) \\
&= \frac{1}{NHW} \sum\limits^{N}_{i=1} \sum\limits^{H \times W}_{j=1} \omega_i^{ic} \Bigg ( 1 - \frac{ p_{i, j} \widehat {y}_{i,j}^{r_1} }{ p_{i,j} + \widehat {y}_{i, j}^{r_1} - p_{i,j} \widehat y_{i, j}^{r_1} } \Bigg ).
\end{split}
\end{equation}
\]
因此,最终的总损失 \(L\) 由三个部分组成:有监督损失 \(L_s\) ,PCL
损失 \(L_u^{LC}\) 和ICL
损失 \(L_u^{GC}\) ,可以表示为:
L = L_s + \lambda_u^{pc} L_u^{PC} + \lambda_{u}^{ic} L_u^{IC},
\end{equation}
\]
其中, \(\lambda_u^{pc}\) , \(\lambda_{u}^{ic}\) 是超参数。
Experiment
Experiment Settings
Dataset
在四个基准数据集CAMO
、CHAMELEON
、COD10K
和NC4K
上评估了CamoTeacher
模型。在CAMO
数据集中,共有2500
张图像,包括1250
张伪装图像和1250
张非伪装图像。CHAMELEON
数据集包含76
张手动注释图像。COD10K
数据集由5066
张伪装图像、3000
张背景图像和1934
张非伪装图像组成。NC4K
是另一个包含4121
张图像的大规模COD
测试数据集。根据先前的工作中的数据划分,使用COD10K
的3040
张图像和CAMO
的1000
张图像作为实验的训练集。剩余的图像来自这两个数据集,被用作测试集。在训练过程中,采用了半监督分割的数据划分方法。我们从训练集中随机采样了1%
、5%
、10%
、20%
和30%
的图像作为有标签的数据,剩余的部分作为无标签的数据。
Evaluation Metrics
参考先前的工作,在COD
中使用了6
个常见的评估指标来评估我们的CamoTeacher
模型,包括S-measure
( \(S_{\alpha}\) )、加权F-measure
( \(F_{\beta}^w\) )、平均E-measure
( \(E_{\phi}^m\) )、最大E-measure
( \(E_{\phi}^x\) )、平均F-measure
( \(F_{\beta}^m\) )和平均绝对误差( \(M\) )。
Implementation Details
提出的CamoTeacher
模型使用PyTorch
进行实现。采用SINet
作为COD
模型的基线。使用带有动量0.9
的SGD
优化器和多项式学习率衰减,初始学习率为0.01
,来训练学生模型。训练周期设置为40
个周期,其中前10
个周期为burn-in
阶段。批量大小为20
,有标签数据和无标签数据的比例为1
:1
,即每个批次包含10
个有标签和10
个无标签的图像。在训练和推断过程中,每个图像被调整为 \(352 \times 352\) 的大小。通过EMA
方法更新教师模型,动量 \(\eta\) 为0.996
。弱数据增强包括随机翻转和随机缩放,而强数据增强涉及颜色空间转换,包括Identity
、Autocontrast
、Equalize
、Gaussian blur
、Contrast
、Sharpness
、Color
、Brightness
、Hue
、Posterize
、Solarize
,从这个列表中随机选择最多3
个。
Results
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】
CamoTeacher:玩转半监督伪装物体检测,双一致性动态调整样本权重 | ECCV 2024的更多相关文章
- 利用opencv进行移动物体检测
进行运动物体检测就是将动态的前景从静态的背景中分离出来.将当前画面与假设是静态背景进行比较发现有明显的变化的区域,就可以认为该区域出现移动的物体.在实际情况中由于光照阴影等因素干扰比较大,通过像素直接 ...
- 小样本利器1.半监督一致性正则 Temporal Ensemble & Mean Teacher代码实现
这个系列我们用现实中经常碰到的小样本问题来串联半监督,文本对抗,文本增强等模型优化方案.小样本的核心在于如何在有限的标注样本上,最大化模型的泛化能力,让模型对unseen的样本拥有很好的预测效果.之前 ...
- 小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现
小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现 上一章我们聊了聊通过一致性正则的半监督方案,使用大量的未标注样本来提升小样本模型的泛化能力.这一章我们结合FG ...
- 实用,小物体检测的有监督特征级超分辨方法 | ICCV 2019
论文提出新的特征级超分辨方法用于提升检测网络的小物体检测性能,该方法适用于带ROI池化的目标检测算法.在VOC和COCO上的小物体检测最大有5~6%mAP提升,在Tsinghua-Tencent 10 ...
- OSVOS 半监督视频分割入门论文(中文翻译)
摘要: 本文解决了半监督视频目标分割的问题.给定第一帧的mask,将目标从视频背景中分离出来.本文提出OSVOS,基于FCN框架的,可以连续依次地将在IMAGENET上学到的信息转移到通用语义信息,实 ...
- OpenCV学习 物体检测 人脸识别 填充颜色
介绍 OpenCV是开源计算机视觉和机器学习库.包含成千上万优化过的算法.项目地址:http://opencv.org/about.html.官方文档:http://docs.opencv.org/m ...
- 物体检测算法 SSD 的训练和测试
物体检测算法 SSD 的训练和测试 GitHub:https://github.com/stoneyang/caffe_ssd Paper: https://arxiv.org/abs/1512.02 ...
- 转-------基于R-CNN的物体检测
基于R-CNN的物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187029 作者:hjimce 一.相关理论 本篇博文主要讲解2014 ...
- 深度学习笔记之基于R-CNN的物体检测
不多说,直接上干货! 基于R-CNN的物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187029 作者:hjimce 一.相关理论 本 ...
- Detectron系统实现了最先进的物体检测算法https://github.com/facebookresearch/Detectron
,包括Mask R-CNN. 它是用Python编写的,支持Caffe2深度学习框架. 不久前,FAIR才开源了语音识别的工具wav2letter,戳这里看大数据文摘介绍<快讯 | Facebo ...
随机推荐
- Java 代码实现POST/GET请求
方式一 package com.cyb.util; import java.io.BufferedReader; import java.io.DataOutputStream; import jav ...
- FairMOT复现报错存档
FairMOT复现 使用pip命令单独安装Cython包即可 修改下载的cython-bbox包里的setup.py里的代码 将#extra_compile_args=['-Wno-cpp'], 修改 ...
- adorner 使用示例
模块介绍 adorner 是一个现代轻量级的 Python 装饰器辅助模块. 目前该模块仅实现了 4 个类,对应着 4 个功能:制造装饰器.执行计时.函数缓存.捕获重试. 仓库地址:https://g ...
- 网络基础 Modbus协议学习总结
协议简介 Modbus协议,首先从字面理解它包括Mod和Bus两部分,首先它是一种bus,即总线协议,总线就意味着有主机,有从机,这些设备在同一条总线上. Modbus支持单主机,多个从机,最多支持2 ...
- odoo 开发入门教程系列-基本视图
在上一章中已经看到,odoo能够为给定模型生成默认视图.实际上,默认视图对于业务应用程序来说是不可接受的.相反,我们至少应该以逻辑的方式组织各个字段. 视图是在带有操作和菜单的XML文件中定义的.它们 ...
- BCLinux 8.2安装配置图解教程--龙蜥社区国产移动云系统
社区镜像下载地址:https://openanolis.cn/download 安装参考地址:https://www.osyunwei.com/archives/13017.html 1安装系统 界面 ...
- P5665 [CSP-S2019] 划分
思路: 首先求出 \(a\) 的前缀和数组 \(s\). 考虑动态规划,令 \(dp_{i,j}\) 表示以 \(i\) 结尾,末尾有 \(j\) 个为一组的最小答案,则状态转移方程为: \[dp_{ ...
- wordpress站点转移
title: wordpress站点转移 date: 2024/7/13 11:11:11 tag: linux学习 categories: wordpress建设 description: 搭建后的 ...
- 【Java】图片上传逻辑
后台逻辑: 后台服务,用Dubbo框架作为一个文件微服务 package cn.ymcd.aisw.service; import cn.ymcd.aisw.dto.RpcResult; /** * ...
- 【Java】【常用类】Comparable 可比较接口 Comparator 比较器接口
我们需要对对象进行排序,但是对象不是像基本类型的那样,是具体的数值 如果要对对象比较,需要实现两个接口的任意一个即可 Comparable 可比较接口 Comparator 比较器接口 String包 ...