Uncertainty-Aware Joint Salient Object and Camouflaged Object Detection
Uncertainty-Aware Joint Salient Object and Camouflaged Object Detection
引用格式
[1] Li A , Zhang J , Lv Y , et al. Uncertainty-aware Joint Salient Object and Camouflaged Object Detection[C]// 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2021.
研究的背景
SOD——找出一张图像中最显著的目标,COD——找出一张图像中通过伪装隐藏在环境中的目标,两种任务的目标正好是相反的。然而冰天雪地中的北极熊既可以被分为显著目标也可以被分为伪装目标,因此,这两个任务也是部分正相关的,这就符合了多任务学习的基本假设——不同任务之间存在共享的信息。
作者试图使用对立的信息来同时加强SOD和COD。
SOD的不确定性来自于:一个目标在某人眼中是显著的,在另一人眼中是非显著的。COD的不确定性来自于:伪装目标的边界到底在哪里。因此使用对抗性学习来估计这种不确定性。
使用的方法(创新点)
模型整体思路
将COD数据集中的一个简单正样本作为SOD任务的艰难正样本,作为一种对比级别的数据增强,借此来提升SOD模型的鲁棒性。然后使用相似性衡量模块来明确地建模来自两个任务的对立属性。考虑到两个任务标注时的不确定性,又使用对抗性学习网络来实现高阶相似性度量和网络置信度估计。整个模型有两个亮点:首先使用对立任务进行多任务学习,其次使用GAN来建模不确定性。
数据增强方法
作者认为COD数据集中同时具有显著性和伪装性的样本都可以作为SOD中的困难正样本,来增加模型的鲁棒性。实际操作是用训练好的SOD模型计算MAE,选400张MAE最小的COD数据集图像随机代替SOD数据集中的400张图像。
对立属性建模
- 引入了第三个数据集(连接建模数据集)——PASCAL VOC2007来实现相似性度量和关注区域的分离。
- ResNet50作为backbone来提取特征(参数不一样)。来自SOD的图像可以提取出自己的显著性特征,来自COD的图像可以提取出自己的伪装特征,来自连接建模数据集的图像分别送入两个backbone同时得到其显著性特征和伪装特征。
- 连接建模数据集图像的两种特征同时输入相似性度量模块来判断两种特征的相似性(希望通过这一模块的反馈,让两个backbone分别学会提取显著特征和伪装特征,并捕捉两种任务之间的关系),其loss为两个向量的余弦相似度。
不确定性感知的对抗性学习
SOD的不确定性在于显著性的歧义问题(不同人找到的显著目标不同),COD的不确定性在于标注的困难性(不同人找到的边界不一样)。
预测解码器模块:用于产生特定任务的预测。将特定任务的特征与它们对应的低级别特征整合起来产生预测。在这里一共使用了三个注意力模块:一个残差通道注意力模块来提取精细的特征,双注意力模块来有效地融合高级语义信息和低级结构信息来获取初始预测,全部注意力模块来整合特征。
置信度估计模块:用于估计每个预测的置信度。由五个卷积层组成的全卷积判别器,对于预测输入希望输出全零矩阵,对于gt输入希望输出全1矩阵。
对抗性学习:用于实现鲁棒的模型训练,学习预测解码器模块和置信度估计模块的参数。对于预测解码器模块(生成器)——结构感知loss是加权的交叉熵loss和IoUloss之和,其公式如下所示:
$$
L_{str}\left(Pred,Y\right)=w\times L_{ce}\left(Pred,Y\right)+L_{iou}\left(Pred,Y\right)
$$
其中$w=1+5\times|\left(avg_pool\left(Y\right)-Y\right)|$,$L_{iou}$的定义如下:
$$
L_{iou}=1-\frac{w\times inter+1}{w\times union-w\times inter+1}
$$
其中,$inter=Pred\times Y,union=Pred+Y$,SOD和COD的结构感知loss具有相同的形式:
$$
L_{str}^s=0.5\times[L_{str}\left(G_{init}\left(F_{\alpha_s}\right),Y^s\right)+L_{str}\left(G_{\beta}\left(F_{\alpha_s}\right),Y^s\right)]\\L_{str}^c=0.5\times[L_{str}\left(G_{init}\left(F_{\alpha_c}\right),Y^c\right)+L_{str}\left(G_{\beta}\left(F_{\alpha_c}\right),Y^c\right)]
$$
对抗loss是交叉熵loss,SOD和COD的对抗loss也具有相同的形式:
$$
L_{adv}^s=L_{ce}\left(D_{\gamma}^f\left(G_\beta\left(F_{\alpha_s}\right)\right),1\right)\\L_{adv}^c=L_{ce}\left(D_{\gamma}^f\left(G_\beta\left(F_{\alpha_c}\right)\right),1\right)
$$
对于置信度估计模块(判别器),SOD和COD的判别loss也具有相同的形式。
$$
L_{dis}^s=L_{ce}\left(D_\gamma^f\left(G_\beta\left(F_{\alpha_s}\right)\right),0\right)+L_{ce}\left(D_\gamma^f\left(Y^s\right),1\right)\\L_{dis}^c=L_{ce}\left(D_\gamma^f\left(G_\beta\left(F_{\alpha_c}\right)\right),0\right)+L_{ce}\left(D_\gamma^f\left(Y^c\right),1\right)
$$目标函数:SOD的loss是结构loss和对抗loss之和,COD的loss是结构loss和对抗loss之和,置信度估计模块的loss是两个判别器loss之和。
$$
L_{sod}=L_{str}^s+\lambda_1L_{adv}^s\\L_{cod}=L_{str}^c+\lambda_2L_{adv}^c\\L_{conf}=L_{dis}^s+L_{dis}^c
$$整体训练过程如下图所示:
评估方法
- MAE,F-measure,E-measure,S-measure
其他
- F3Net,AFNet,CSNet,ITSD。