显著性检测
1. 显著性检测的定义与任务
显著性检测的目标是从图像中自动识别出最吸引人类视觉注意力的区域(显著区域),通常以概率图(Saliency Map)的形式输出,表示每个像素属于显著区域的概率。
关键特点:
主观性:显著性依赖于人类视觉感知,不同人对同一图像的关注点可能不同。
动态性:显著性可能随时间或上下文变化(如视频中的运动目标)。
应用场景:
图像编辑:自动抠图(如背景虚化)。
广告设计:优化视觉焦点(如将产品放在显著区域)。
视频分析:关键帧提取、镜头切换决策。
自动驾驶:快速识别道路上的关键障碍物。
2. 传统方法
基于统计的特征对比
局部对比度:计算像素与周围区域的亮度/纹理差异(如Dogachius算法)。 频域分析:通过傅里叶变换检测高频细节(如边缘和纹理)。
局限性:依赖预设阈值,对复杂场景适应性差。
生物启发的模型
Itti-Koch模型: 模仿人类视觉系统的侧向抑制机制,通过多尺度滤波器(亮度、颜色、方向)生成显著性图。
流程:特征提取 → 通道间竞争 → 上下文整合。 Bruce-Liu模型:
结合亮度、对比度和纹理特征,通过非线性组合生成显著性图。
基于聚类的方法
Mean-Shift聚类:迭代寻找局部密度峰值,标记显著区域。
局限性:计算复杂度高,对噪声敏感。
3. 深度学习方法
两阶段模型
* SALICON:
特征提取:使用ResNet获取多尺度特征。
预测头:全连接层生成显著性图,结合图像级分类损失(提升全局一致性)。
优势:在公开数据集(如MIT-Salient)上达到SOTA性能。
* DFPN(Deep Feature Pyramid Network):
结合FPN多尺度特征融合,解决小物体显著性检测问题。
单阶段模型
* C3Det:基于CenterNet思想,直接预测显著区域的中心点和半径,简化后处理。
优势:速度与精度均衡(FPS=120)。
* ViT-Sal:Vision Transformer直接处理图像块,通过自注意力建模全局依赖。
挑战:需大规模预训练数据(如ImageNet)。
弱监督与自监督学习
* 基于对比学习的模型:
通过生成对抗网络(GAN)模拟人类标注(如SalGAN),减少标注依赖。
自监督预训练:
利用图像修复任务(如MAE)生成伪显著性标签。
4. 关键技术
多尺度特征融合
FPN(Feature Pyramid Network):融合不同层级特征(如P3/P4/P5),捕捉小物体显著性。
PANet(Path Aggregation Network):横向连接增强特征传递效率。
注意力机制
Cross-Attention:在Transformer模型中,动态匹配查询(Query)与键值(Key/Value)。
CBAM(Convolutional Block Attention Module):同时建模通道和空间注意力。
数据增强
几何变换:随机旋转、缩放、裁剪(保持显著性区域完整性)。
色彩扰动:调整亮度、对比度、饱和度(模拟光照变化)。
Mixup:混合两张图像的显著性图,提升模型鲁棒性。
5.评价指标
指标 | 定义 | 计算公式/说明 |
---|---|---|
AUC(Area Under Curve) | 显著性图与真实标注的曲线下面积(IoU阈值从0到1)。 | 反映模型对显著性区域的排序能力。 |
mAP(Mean Average Precision) | 在不同 IoU 阈值下(0.5~0.95)计算精度均值。 | 评估模型对显著区域定位的准确性。 |
SSIM(Structural Similarity Index) | 测量显著性图与真实图的结构性相似性。 | 评估输出图的质量(如边缘连续性)。 |
F1-Score | 精确率(Precision)与召回率(Recall)的调和平均。 | 综合衡量模型性能。 |
6.代表模型与工具
模型 | 框架 | 特点 | 适用场景 |
---|---|---|---|
SALICON | PyTorch | 两阶段设计,结合图像分类损失 | 静态图像显著性检测 |
C3Det | PyTorch | CenterNet变体,直接预测区域中心 | 实时视频分析 |
ViT-Sal | PyTorch | Vision Transformer,全局注意力 | 高分辨率图像 |
SalGAN | TensorFlow | GAN生成显著性图,无需标注数据 | 数据稀缺场景 |
DFPN | PyTorch | FPN多尺度特征融合 | 医学影像显著性检测 |