基于Itti视觉显著性模型的感兴趣区域自动提取系统
项目介绍
本项目是一个基于MATLAB实现的视觉显著性检测系统,完整复现了经典的Itti-Koch-Niebur显著性模型。该系统模拟了灵长类动物的早期视觉注意机制,能够以“自下而上”的方式自动分析图像中的输入信息。通过计算亮度、颜色和方向特征的显著性,系统生成全局显著性图(Saliency Map),并利用赢家通吃(WTA)和返回抑制(IOR)机制,模拟人眼在观察图像时的注意力转移路径,自动按优先级提取感兴趣区域(ROI)。
功能特性
- 多特征融合机制:综合了亮度(Intensity)、红/绿与蓝/黄对立颜色(Color)、以及四个角度的方向(Orientation)特征。
- 多尺度高斯金字塔:构建深度为8层的高斯金字塔,在不同分辨率下模拟视觉感受野。
- 中心-周边差分算法:利用Center-Surround机制计算特征图,模拟视网膜神经节细胞的侧抑制作用。
- 智能归一化策略:实现了特定的归一化算子,通过局部极大值与全局最大值的差异来加权,有效抑制背景噪声,突出显著目标。
- 动态注意力模拟:包含完整的赢家通吃(WTA)决策与返回抑制(IOR)逻辑,能够生成可视化的注视点扫描路径。
- 健壮的图像输入处理:内置图像读取容错机制,若指定图像不存在,能够自动生成包含红、绿、蓝几何色块的合成测试图像进行演示。
系统要求
- MATLAB R2016b 或更高版本
- Image Processing Toolbox(图像处理工具箱)
- Computer Vision Toolbox(用于绘图和可视化标注)
使用方法
- 启动MATLAB,将当前目录切换至项目所在文件夹。
- 直接运行主函数。
- 系统将自动执行以下流程:
* 尝试读取默认图像(peppers.png),如未找到则生成测试图。
* 调整图像尺寸以优化计算效率(默认最大边长归一化至256像素)。
* 提取特征并计算显著性。
* 弹出结果窗口,展示原图、分量醒目图(亮度/颜色/方向)、最终显著性图以及注意力转移轨迹。
算法实现细节
本项目核心逻辑严格遵循Itti模型架构,具体实现流程如下:
1. 图像预处理与特征提取
- 尺寸归一化:为了模拟标准Itti模型的处理尺度并保证计算速度,输入图像被调整为最大边长256像素。
- 亮度通道:计算RGB图像的平均值得到亮度图 I。
- 颜色通道:基于红-绿、蓝-黄的对立色理论,构建R、G、B、Y四个颜色通道。代码中特别实现了负值整流(设为0),确保特征值的非负性。
- 方向通道:通过构建Gabor滤波器,生成0度、45度、90度、135度四个方向的特征响应。特别地,代码对亮度金字塔的每一层都进行了Gabor卷积处理。
2. 高斯金字塔构建
系统调用辅助函数为亮度、颜色通道及方向通道构建高斯金字塔,最大深度设定为8层。每一层均通过高斯平滑和下采样(1/2)生成。
3. 中心-周边差分(Center-Surround)
- 尺度选择:定义中心尺度 c 为 {2, 3, 4},周边尺度 s = c + delta,其中 delta 为 {3, 4}。
- 特征图计算:
*
亮度特征图:计算不同尺度下亮度图的绝对差值。
*
颜色特征图:计算 (R-G) 与 (G-R)、(B-Y) 与 (Y-B) 在跨尺度下的差值,模拟双拮抗细胞机制。
*
方向特征图:计算各个角度在跨尺度下的差值。
- 所有差分操作前,较小尺度的图像会被插值放大至目标尺度(统一为金字塔第4层大小)。
4. 归一化与融合
- 特定归一化算子 N(.):实现了一个加权归一化函数,该函数不仅将数值归一化到[0, 1],还计算(全局最大值 - 局部极大值均值)的平方作为权重。这种机制能有效增强具有少数强峰值的特征图,同时抑制包含大量相似峰值的特征图(即抑制纹理背景)。
- 醒目图生成:将同一特征裂变出的多张特征图归一化后相加,分别生成亮度醒目图、颜色醒目图和方向醒目图。
- 全局综合:将三个通道的醒目图再次归一化并取平均,生成最终的显著性图(Saliency Map),并进行了高斯平滑处理以优化视觉效果。
5. 注意力转移模拟(WTA + IOR)
- 赢家通吃(WTA):在显著性图中寻找灰度值最大的位置作为当前的注视点(Fixation Point)。
- 返回抑制(IOR):一旦某个位置被选中,系统会在该位置周围生成一个“抑制盘”(反向高斯分布),将显著性图上对应区域的数值大幅降低。这模拟了生物视觉不会长时间盯着同一显著点看的特性,迫使注意力转移到下一个显著性次高的区域。
- 代码默认模拟5次注视点转移,并在结果图中按顺序标记连接。
关键函数说明
buildGaussianPyramid
输入原图和层数,通过循环执行“高斯模糊+隔点采样”操作,输出一个包含多尺度图像的元胞数组。
imgResize
封装了MATLAB的图像缩放函数,统一使用双线性插值或双三次插值,用于解决特征图跨尺度运算时的尺寸匹配问题。
createGaborKernel
根据指定的角度、波长、相位和高斯包络标准差,手动构建二维Gabor滤波器核,用于提取纹理和边缘的方向特征。
mapNormalization
即文献中的 N(.) 算子。核心逻辑在于计算全局最大值与非零局部极大值均值之间的差异,以此差异的平方作为权重系数,对特征图进行非线性增强。
simulateAttention
接收显著性图,执行迭代循环。每次循环找到最大值坐标记录为ROI,并在显著性图中对该坐标周围区域乘以衰减系数(模拟抑制),最后在背景图上绘制扫描路径和顺序编号。