基于颜色特征的图割(Graph Cut)图像分割系统
项目介绍
本项目实现了一个基于图论优化理论的图像分割系统。其核心思想是将图像分割问题转化为数学上的最小割(Minimum Cut)问题。系统将图像的每个像素视为图中的一个节点,并通过构建源点(Source)与汇点(Sink)来代表前景与背景类别。通过综合考虑像素自身的颜色概率分布(数据代价)以及相邻像素间的平稳性(平滑代价),算法利用最大流最小割定理寻找能量函数的全局最优解,从而实现精确的图像轮廓提取。
功能特性
- 自动化图像预处理:系统具备自动缩放功能,针对高分辨率图像进行等比例下采样,以确保计算效率与内存占用之间的平衡。
- 稳健的颜色建模:集成高斯混合模型(GMM)对前景和背景的颜色分布进行统计建模。在缺失相关工具箱时,系统能自动降级为基于欧氏距离的概率估计方案,保证了代码在不同环境下的兼容性。
- 能量函数最小化:通过λ参数调节数据项与平稳项的权重。引入数据项以保证像素分类符合颜色分布,引入平滑项以确保分割边界的连续性,有效抑制孤立噪点。
- 种子点约束机制:支持通过显式标记种子点来施加硬约束(Hard Constraints)。系统将种子点到对应终端节点的边权重设为无穷大,确保用户指定的区域在分割结果中被强制分类。
- 多维度结果可视化:系统提供一站式的可视化展示,包括原始种子点标注图、二值掩码图、提取后的彩色前景目标以及叠加在原图上的绿色分割轮廓线。
实现逻辑
- 图像载入与自适应调整:
系统读取输入的RGB图像并将其转换为双精度浮点数格式。如果图像高度超过300像素,会自动进行下采样,以降低后续图构建的复杂度。
- 种子点掩码初始化:
系统模拟了交互式操作过程,逻辑上将图像的中心矩形区域设定为前景种子点,将图像边缘四周的10像素边界设定为背景种子点。这些种子点作为后续学习颜色模型及构建硬约束的基础。
- 统计模型构建:
提取种子点覆盖区域的像素颜色数据。利用高斯混合模型对这些像素进行拟合,学习前景和背景的概率密度函数(PDF)。对于全图每一个像素,计算其归属于前景和背景的似然概率,并取其负对数作为数据项权重。
- 网络流图构建:
构建一个包含节点总数为(像素数+2)的有向图。
- 节点定义:每个像素为一个节点,外加一个源点S(代表前景)和一个汇点T(代表背景)。
- 邻域边(N-links):在像素间建立4连通邻域关系。
- 终端边(T-links):建立每个像素到S和T的连接。
- 权重分配策略:
- 平滑项:计算水平和垂直方向上相邻像素的颜色差异。差异越小,连接权重越高,表示边界穿过的代价越高,从而促使分割线避开颜色平滑区域。
- 数据项:基于GMM计算的负对数似然概率。同时,对于初始种子点,将其到归属端的权重设为极大值(10的9次方),到另一端的权重设为0。
- 优化求解:
调用高效的最大流算法寻找从S到T的最小割。根据最小割定理,该割集将图中所有节点划分为两个互不相交的集合,与S相连的部分即为最终的分割前景。
- 后处理与渲染:
根据分割结果生成逻辑掩码,并基于该掩码提取彩色前景物体。利用边界跟踪算法提取掩码轮廓,并将其绘制在原始图像上。
关键算法与技术细节
- 高斯混合模型(GMM):采用5个混合组件对RGB三维空间进行建模。通过fitgmdist函数学习复杂分布,并使用正则化值防止协方差矩阵奇异。在回退方案中,使用指数化的像素均值差作为替代概率算子。
- 平滑权重函数:采用公式 w = exp(-diff / (2 * sigma^2)) 进行计算。其中diff是相邻像素在RGB空间的欧氏距离平方。该函数通过指数衰减特性,使得颜色相近的像素点之间具有很强的粘合力。
- 最大流最小割算法:利用内置的digraph对象构建复杂的稀疏矩阵连接,并执行maxflow函数。该算法通过寻找增广路径来确定最小截断容量,能保证在多项式时间内找到能量函数的全局最小值,优于经典的能陷于局部最优的分割算法。
- 拓扑结构:采用4连通图结构,在保证边界平滑效果的同时平衡了边的总数(约为像素数的4倍加2倍终端节点边),从而优化了计算内存空间的使用。
系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 推荐工具箱:Image Processing Toolbox (用于图像读取、处理与展示),Statistics and Machine Learning Toolbox (用于GMM建模)。
- 内存要求:由于使用了稀疏矩阵构建庞大的图结构,建议处理图像尺寸控制在合理范围内。