论文提出了第一个端到端的半监督伪装目标检测模型
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 D D ,含 M M M 个标记样本的标记子集表示为 D L = { x i l , y i } i = 1 M D_L=\{x_i^{l}, y_i\}_{i=1}^{M} DL={xil,yi}i=1M ,含 N N N 个未标记样本的未标记子集表示为 D U = { x i u } i = 1 N D_U=\{x_i^{u}\}_{i=1}^{N} DU={xiu}i=1N ,其中 x i l x_i^{l} xil 和 x i u x_i^{u} xiu 表示输入图像, y i y_i yi 表示标记数据的相应注释掩码。通常, D L D_L DL 只占整个数据集 D D D 的很小一部分,这突出了 M ≪ N M \ll N M≪N 的半监督学习场景。对于 M ≪ N M \ll N M≪N 的强调,强调了半监督学习中的挑战和机遇:通过利用未标记数据 D U D_U DU 尚未发掘的潜力来提升检测能力,而这远远超过了标记子集 D L D_L DL 。
Overall Framework
如图4
所示,采用Mean Teacher
作为初步方案,以实现端到端的半监督伪装物体检测框架。该框架包含两个具有相同结构的COD
模型,即教师模型和学生模型,分别由参数
Θ
t
\Theta_t
Θt 和
Θ
s
\Theta_s
Θs 参数化。教师模型生成伪标签,然后用于优化学生模型。整体损失函数
L
L
L 可以定义为:
L = L s + λ u L u , \begin{equation} L = L_s + \lambda_u L_u , \end{equation} L=Ls+λuLu,
其中,
L
s
L_s
Ls 和
L
u
L_u
Lu 分别表示有监督损失和无监督损失,
λ
u
\lambda_u
λu 是平衡损失项的无监督损失权重。按照经典的COD
方法,使用二元交叉熵损失
L
b
c
e
L_{bce}
Lbce 用于训练。
在训练过程中,采用弱数据增强 A w ( ⋅ ) \mathcal{A}^w(\cdot) Aw(⋅) 和强数据增强 A s ( ⋅ ) \mathcal{A}^s(\cdot) As(⋅) 策略的组合。弱数据增强应用于有标记数据以减轻过拟合,而无标记数据在强数据增强下经历各种数据扰动,以创造同一图像的不同视角。有监督损失 L s L_s Ls 的定义如下:
L s = 1 M ∑ i = 1 M L b c e ( F ( A w ( x i l ) ; Θ s ) , y i ) , \begin{equation} 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} Ls=M1i=1∑MLbce(F(Aw(xil);Θs),yi),
其中, F ( A ( x i ) ; Θ ) F(\mathcal{A}(x_i);\Theta) F(A(xi);Θ) 表示模型 Θ \Theta Θ 对第 i i i 张图像在增强 A ( ⋅ ) \mathcal{A}(\cdot) A(⋅) 下的检测结果。对于无标记的图像,首先应用弱数据增强 A w ( ⋅ ) \mathcal{A}^w(\cdot) Aw(⋅) ,然后将其传递给教师模型。这一初始步骤对于在不显著改变图像核心特征的变化下生成可靠的伪标签 y i ^ \widehat{y_i} yi 至关重要。这些伪标签作为学生模型的一种软监督形式。接下来,相同的图像经过强数据增强 A s ( ⋅ ) \mathcal{A}^s(\cdot) As(⋅) 后传递给学生模型。这个过程引入了更高层次的变异性和复杂性,模拟更具挑战性的条件,以适应学生模型。学生模型基于这些经过强增强的图像生成预测 p i p_i pi ,利用伪标签 y i ^ \widehat{y_i} yi 作为无标记数据学习的指导。可以将其形式化为:
y i ^ = F ( A w ( x i u ) ; Θ t ) , p i = F ( A s ( A w ( x i u ) ) ; Θ s ) . \begin{equation} \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} yi =F(Aw(xiu);Θt), pi=F(As(Aw(xiu));Θs).
因此,无监督损失 L u L_u Lu 可以表示为:
L u = 1 N ∑ i = 1 N L b c e ( p i , y i ^ ) . \begin{equation} L_u = \frac{1}{N} \sum\limits^{N}_{i=1} L_{bce}(p_i, \widehat{y_i}). \end{equation} Lu=N1i=1∑NLbce(pi,yi ).
最后,学生模型通过总损失
L
L
L 进行密集训练,该损失包含了半监督框架中有监督和无监督学习的两个方面。这种方法确保学生模型从有标记和伪标记数据中受益,提高其检测能力。同时,教师模型通过指数移动平均(EMA
)机制进行系统更新,有效地提取学生知识并防止噪音干扰,具体表述为:
Θ t ← η Θ t + ( 1 − η ) Θ s , \begin{equation} \Theta_t \leftarrow \eta \Theta_t + (1 - \eta)\Theta_s , \end{equation} Θt←ηΘt+(1−η)Θs,
其中, η \eta η 是一个超参数,表示保留的比例。
Dual-Rotation Consistency Learning
由于物体的伪装性质,伪标签中包含大量噪音,直接使用它们来优化学生模型可能会损害模型的性能。为解决这个问题,最直观的一个可能方法是设置一个固定的高阈值来过滤高质量的伪标签,但这会导致召回率较低,并使得难以充分利用伪标签的监督信息。为此,论文提出了双旋转一致性学习(DRCL
),以动态调整伪标签的权重,减少噪音的影响。
对图像 x i x_i xi 进行两个独立的随机旋转,其中 x i x_i xi 在之前已进行了翻转和随机调整大小,得到两个不同的旋转视图 x i r 1 x_i^{r_1} xir1 和 x i r 2 x_i^{r_2} xir2 。
x i r 1 = R ( A w ( x i ) , θ 1 ) , x i r 2 = R ( A w ( x i ) , θ 2 ) , \begin{equation} 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} xir1=R(Aw(xi),θ1), xir2=R(Aw(xi),θ2),
其中, x i r = R ( x i , θ ) x_i^{r} = R(x_i, \theta) xir=R(xi,θ) 表示将输入图像 x i x_i xi 旋转 θ \theta θ 度。将获得的旋转视图输入到教师模型中,得到相应的预测值,即 y ^ i r = F ( x i r ; Θ t ) \widehat y_i^{r} = F(x_i^{r}; \Theta_t) y ir=F(xir;Θt) 。随后,对预测值进行 − θ -\theta −θ 的相反旋转,使其返回到原始的水平方向,得到 y ^ i h 1 \widehat y_i^{h_1} y ih1 和 y ^ i h 2 \widehat y_i^{h_2} y ih2 ,以便在不同的旋转视图下计算预测不一致性。
y ^ i h 1 = R ( y ^ i r 1 , − θ 1 ) , y ^ i h 2 = R ( y ^ i r 2 , − θ 2 ) . \begin{equation} \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} y ih1=R(y ir1,−θ1), y ih2=R(y ir2,−θ2).
请注意,旋转会引入黑色的边界区域,这些区域不参与DRCL
的计算过程。
由于伪标签的不同区域和不同伪标签之间的噪声水平不同,引入PCL
和ICL
动态调整不同像素在伪标签内部和各个伪标签之间的贡献。
在像素级别上对水平预测 y ^ i h 1 \widehat y_i^{h_1} y ih1 和 y ^ i h 2 \widehat y_i^{h_2} y ih2 进行减法运算,得到像素级别的不一致性 Δ i \Delta_i Δi 。
Δ i = ∣ y ^ i h 1 − y ^ i h 2 ∣ . \begin{equation} \Delta_i = | \widehat y_i^{h_1} - \widehat y_i^{h_2} |. \end{equation} Δi=∣y ih1−y ih2∣.
不同视图之间的像素级不一致性
Δ
i
\Delta_i
Δi 反映了伪标签的可靠性。然而,在两个旋转视图的预测值都接近0.5
的情况下,
Δ
i
\Delta_i
Δi 无法有效区分它们。这些预测表现出高度的不确定性,意味着不能明确将它们分类为前景或背景,并且很可能代表嘈杂的标签。因此,有必要通过降低它们的权重来减弱它们的影响。因此,计算水平预测值
y
^
i
h
\widehat y_i^{h}
y
ih 的平均值,
y ^ i h = a v g ( y ^ i h 1 , y ^ i h 2 ) , \begin{equation} \widehat y_i^{h} = avg ( \widehat y_i^{h_1} , \widehat y_i^{h_2} ), \end{equation} y ih=avg(y ih1,y ih2),
其中,
a
v
g
(
⋅
,
⋅
)
avg(\cdot, \cdot)
avg(⋅,⋅) 表示计算两个像素级别输入的平均值,并使用其与0.5
的L2
距离作为调整权重的一个组成部分。
因此,根据不同旋转视图之间的像素级别不一致性,推导出像素级别一致性权重 ω i p c \omega_i^{pc} ωipc ,如下所示:
KaTeX parse error: Undefined control sequence: \label at position 90: …} - \mu||_2^2 ,\̲l̲a̲b̲e̲l̲{wlc} \end{equa…
其中, α \alpha α 是一个超参数, μ = 0.5 \mu=0.5 μ=0.5 。这个动态的像素级一致性权重 ω i p c \omega_i^{pc} ωipc 会给与不同旋转视图间预测一致的区域分配更高的权重,而对于预测不一致的区域则分配较小的权重。
总而言之,将PCL
损失函数
L
u
P
C
L_u^{PC}
LuPC 表述为:
KaTeX parse error: Undefined control sequence: \label at position 19: …egin{equation} \̲l̲a̲b̲e̲l̲{unsup_loss} \b…
自适应地调整每个像素的权重,以确保对学生模型进行全面监督,同时避免带来偏见。
不同图像之间的伪装程度会有所不同,导致伪标签质量在图像之间存在显著变化。平等地对待所有伪标签是不合理的。不幸的是,对于未标记的图像,评估伪标签质量是具有挑战性的,因为没有可用的GT
标签。论文呢观察到两个旋转视图的实例一致性和伪标签质量之间存在正相关,由SSIM
量化。基于此,引入ICL
来调整具有不同质量的伪标签的贡献。将实例级一致性权重
ω
i
i
c
\omega_i^{ic}
ωiic 表示如下:
ω i i c = ( S S I M ( y ^ i h 1 , y ^ i h 2 ) ) β , \begin{equation} \omega_i^{ic} = (SSIM( \widehat y_i^{h_1} , \widehat y_i^{h_2} ))^{\beta}, \end{equation} ωiic=(SSIM(y ih1,y ih2))β,
其中, β \beta β 是一个超参数,用于调整实例级一致性和伪标签质量之间的分布关系。
使用交并比(IoU
)损失作为实例级限制,因此,ICL
损失可以表示为:
L u I C = 1 N ∑ i = 1 N ω i i c L i o u ( p i , y ^ i r 1 ) = 1 N H W ∑ i = 1 N ∑ j = 1 H × W ω i i c ( 1 − p i , j y ^ i , j r 1 p i , j + y ^ i , j r 1 − p i , j y ^ i , j r 1 ) . \begin{equation} \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} LuIC=N1i=1∑NωiicLiou(pi,y ir1)=NHW1i=1∑Nj=1∑H×Wωiic(1−pi,j+y i,jr1−pi,jy i,jr1pi,jy i,jr1).
因此,最终的总损失
L
L
L 由三个部分组成:有监督损失
L
s
L_s
Ls ,PCL
损失
L
u
L
C
L_u^{LC}
LuLC 和ICL
损失
L
u
G
C
L_u^{GC}
LuGC ,可以表示为:
L = L s + λ u p c L u P C + λ u i c L u I C , \begin{equation} L = L_s + \lambda_u^{pc} L_u^{PC} + \lambda_{u}^{ic} L_u^{IC}, \end{equation} L=Ls+λupcLuPC+λuicLuIC,
其中, λ u p c \lambda_u^{pc} λupc , λ u i c \lambda_{u}^{ic} λuic 是超参数。
Experiment
Experiment Settings
在四个基准数据集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%
的图像作为有标签的数据,剩余的部分作为无标签的数据。
参考先前的工作,在COD
中使用了6
个常见的评估指标来评估我们的CamoTeacher
模型,包括S-measure
(
S
α
S_{\alpha}
Sα )、加权F-measure
(
F
β
w
F_{\beta}^w
Fβw )、平均E-measure
(
E
ϕ
m
E_{\phi}^m
Eϕm )、最大E-measure
(
E
ϕ
x
E_{\phi}^x
Eϕx )、平均F-measure
(
F
β
m
F_{\beta}^m
Fβm )和平均绝对误差(
M
M
M )。
提出的CamoTeacher
模型使用PyTorch
进行实现。采用SINet
作为COD
模型的基线。使用带有动量0.9
的SGD
优化器和多项式学习率衰减,初始学习率为0.01
,来训练学生模型。训练周期设置为40
个周期,其中前10
个周期为burn-in
阶段。批量大小为20
,有标签数据和无标签数据的比例为1
:1
,即每个批次包含10
个有标签和10
个无标签的图像。在训练和推断过程中,每个图像被调整为
352
×
352
352 \times 352
352×352 的大小。通过EMA
方法更新教师模型,动量
η
\eta
η 为0.996
。弱数据增强包括随机翻转和随机缩放,而强数据增强涉及颜色空间转换,包括Identity
、Autocontrast
、Equalize
、Gaussian blur
、Contrast
、Sharpness
、Color
、Brightness
、Hue
、Posterize
、Solarize
,从这个列表中随机选择最多3
个。
Results
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】