A014-基于resnet和unet的图像显著性预测
导出时间:2025/12/16 16:39:41
1、题目:图像显著性预测
数据文件
- 训练数据集(共1600幅待检测图像及1600幅对应的显著图):以jpg格式存储在3-Saliency-TrainSet.zip中。
- 测试数据集(共400幅待检测图像及400幅对应的显著图):以jpg格式存储在3-Saliency-TestSet.zip中。
每个数据集中,待检测图像为人眼直接观察的彩色图像,保存在Stimuli文件夹;对应的显著图(即ground truth)为相同尺寸的灰度图像,颜色越亮的区域代表显著性越强,保存在FIXATIONMAPS文件夹。考虑到图像内容可能对结果产生影响,每个数据集都包括20种不同类型的图像,存放在20个文件夹中(如Action,Affective,Art……),因此分析结果时,既可以给出总体性能,又可以按类型进行分析。
性能指标
主观指标:预测显著图与ground truth显著图主观上对比。
客观指标:相关系数(CC)、KL散度(指标函数在metric.py文件中,可直接调用,内有使用说明),或其他衡量显著性图像相似程度的指标等。
2、项目说明
项目在做的是一个典型的计算机视觉回归型任务:图像显著性预测(Image Saliency Prediction
一、任务本质(你在解决什么问题)
图像显著性预测的目标是:
给定一张自然彩色图像,预测人类在观察这张图像时最可能注视(关注)的空间位置分布。
换句话说:
让模型学会“人会先看哪里”。
这不是分类、不是检测,而是一个像素级连续值预测问题。
二、输入与输出(模型在学什么映射)
1️⃣ 输入(Input)
- 一张 RGB 彩色图像
- 形状:
3 × H × W - 内容:人眼直接观察的自然图像(Action / Art / Affective 等 20 类)
2️⃣ 输出(Output)
- 一张 显著图(Saliency Map)
- 形状:
1 × H × W - 含义:
- 每个像素是一个连续值(0~1)
- 数值越大 → 人类越可能注视该位置
这张输出图不是二值的,而是概率密度/强度图。
三、监督学习方式(模型怎么学)
Ground Truth 是什么?
- 数据集中给的
FIXATIONMAPS:- 灰度图
- 来源通常是多名被试的眼动轨迹(eye fixation)统计后平滑得到
- 越亮的地方 = 更多人/更长时间注视
学习范式
这是一个**有监督学习(Supervised Learning)**任务:
模型通过最小化 预测显著图 与 真实显著图 之间的差异来训练。
四、你这份代码具体在做什么
1️⃣ 模型层面
用的是:
ResNet34 编码器 + U-Net 解码器的全卷积网络(FCN)
模型结构本质是:
- Encoder:理解“图像里是什么”(语义、物体、中心)
- Decoder:恢复空间分辨率,输出像素级显著性强度
输出通过
sigmoid:
- 保证显著值 ∈ [0, 1]
2️⃣ 损失函数(训练目标)
训练时用的是组合损失:
- L1 Loss: 让预测显著图整体形状接近 GT
- KL Divergence: 把显著图当作“注意力分布”,约束概率意义一致性
本质上你在优化:
“预测图在数值和分布上都要像人类注视热图”
3️⃣ 评价指标(不是分类准确率)
你用的指标是显著性领域的标准指标:
✅ CC(Correlation Coefficient)
- 衡量预测图与 GT 的线性相关性
- 越大越好(理论上 ∈ [-1, 1],实际多为正)
✅ KL 散度(Kullback–Leibler)
- 衡量两张显著图“分布差异”
- 越小越好
- 0 表示完全一致
这正是老师给你的作业要求里的客观指标。
五、按“20 类图像”分析的意义
数据集按
Action / Art / Affective / … 分成 20 类,目的是让你分析:
- 模型在不同语义场景下是否稳定?
- 哪些类型更容易预测人类注意力?
- 人物动作类 → 通常更集中
- 风景/艺术类 → 注意力更分散
你代码里已经支持:
- 总体 CC / KL
- 按类别分别统计 CC / KL
这在实验报告中是一个明显加分点。
六、一句话总结(答辩/报告可直接用)
本项目研究的是图像显著性预测任务,目标是利用深度学习模型从自然图像中预测人类视觉注意力分布。模型以彩色图像为输入,输出与人类眼动统计显著图一致的连续显著性热图,并通过相关系数(CC)和 KL 散度等指标对预测结果进行客观评估,同时支持按图像语义类别进行性能分析。