首页 / 资讯中心 / 文章详情

改进高斯混合模型与图割算法的图像分割毕设实战解析

改进高斯混合模型与图割算法的图像分割毕设实战解析 ★ FEATURED ARTICLE
做图形分割相关的毕设很多同学一上来就选深度学习路线U-Net、DeepLab全家桶往上堆。不是说不行但到了算法创新环节就卡住了——改网络结构没理论深度换 Loss 又容易被视为“调参工程”。相比之下传统方法配合针对性改进反而更容易讲出扎实的故事。我这个项目题目是“基于改进高斯混合模型的图割算法”走的就是这条路。今天把这套体系完整拆开讲一遍从建模原理、改进策略到代码实现、实验对比和调试经验想选类似题目的同学可以直接参考。1. 项目拆解这个毕设到底在做什么1.1 从题目读出来的核心工作先拆标题。“基于改进高斯混合模型的图割算法”三个关键词缺一不可高斯混合模型GMM负责对图像的像素颜色分布建模属于分割问题的“数据项”来源。图割算法Graph Cut负责在给定能量函数的前提下通过最小割/最大流求解像素标签属于“优化”环节。改进这是毕设的差异化和创新点所在也是答辩评委最关注的模块。整个项目的核心链路可以概括成一句话先用改进后的 GMM 描述每个像素属于前景或背景的概率再把这种概率转化为图割能量函数中的数据项最后通过最小割得到前景背景的划分结果。比起纯深度学习方案这种做法的好处是每一步都有明确的数学解释可视化和中间结果非常丰富改进方向也很灵活。对于计算机视觉方向的本科毕设来说工作量适中创新点又容易凸显属于性价比很高的选题。1.2 为什么把 GMM 和图割组合在一起图像分割本质上是给每个像素打标签。这有两条思路一是基于像素本身颜色特征做聚类优点是简单缺点是完全不顾空间关系分割结果往往是碎片化的二是用马尔可夫随机场或图割这类带空间平滑约束的模型来让相邻像素尽量取得相同标签效果好了但缺少对颜色分布的建模能力。GMM 和图割的组合刚好互补。GMM 把颜色分布描述得更精细——一个目标物体往往不只有一种颜色例如一张人像照片里头发是黑色皮肤是偏黄的衣服是蓝色。用单个高斯分布很难同时表达这三种模式但 GMM 可以直接用若干个子高斯分量的加权来覆盖整个颜色空间。而图割的优势在于把“像素和像素之间的关系”也建模进去避免彼此独立的颜色分类产生孤立噪声点。把两者结合时GMM 输出的是单个像素属于前景或背景的概率图割把这些概率当作数据惩罚项同时引入一个平滑项来惩罚相邻像素的标签突变。最终目标函数是带权重的能量最小化问题求得全局最优或近似最优的分割边界。1.3 用毕设标准审视改进点如果是平时练手直接调现成代码跑通就可以但毕设要求整体闭环。从开题报告的角度看你的改进点必须能用一两句话说清楚而且要有对比实验支持。我的改进方向选的是在传统 GMM 估计过程中引入空间位置先验和自适应分量选择机制再把这个概率输出接到图割的能量函数里。具体为什么这么选放在第 3 部分细说。选改进方向是个技术活选不好容易陷入“为改而改”。一个可复用的判断标准是你的改进是否能解决一个明确的问题并且这个问题能在实验中量化出来。如果改进只是把数值从 82.1% 提到 82.4%评委很难看到价值但如果改进解决了过分割、边缘粘连这类可视化问题说服力就强得多。2. 基础铺垫GMM 建模和图割到底怎么配合2.1 GMM 和 EM 估计的基本逻辑高斯混合模型的出发点是假设样本由若干个高斯子分布混合生成。对图像分割场景来说假设前景有 K1 个高斯分量背景有 K2 个高斯分量每个像素的颜色向量等于先从某个高斯分量里选一个按权重再从那个高斯分布里采样得到。设某个像素特征为 x概率密度函数为p(x) Σ_{k1}^{K} π_k · G(x | μ_k, Σ_k)其中 π_k 是第 k 个分量的混合权重满足总和为 1G(x | μ_k, Σ_k) 是均值为 μ_k、协方差矩阵为 Σ_k 的高斯分布。RGB 图像里 x 是一个三维向量所以 Σ_k 是 3×3 的协方差矩阵。求解这些未知参数常用的是期望最大化EM算法。它整个思路是先猜测一组参数然后根据参数计算每个样本属于哪个高斯分量的“后验概率”再用这些后验概率重新估计参数不断迭代直到参数变化足够小。我第一次接触 EM 时觉得绕后来类比成“一个班分成几个兴趣小组”就明白了你先随便分组算每组平均水平和组内差异然后根据这些信息重新调整人员在小组间的分配再算一次新的平均和差异多轮之后分组趋于稳定。EM 做的就是这件事只是把“平均水平”换成了“高斯分布的均值和协方差”把“人距离组中心的远近”换成了“样本对所有分量的后验概率”。2.2 图割的能量函数图割本身不关心输入图像是什么它只需要两样东西数据项data term表达式为 D_p(l_p)表示给像素 p 赋标签 l_p 的代价。这个代价通常用颜色概率的负对数来定义。平滑项smoothness term表达式为 V_{p,q}(l_p, l_q)表示两个相邻像素标签不一致时产生的惩罚。整体能量函数写作E(L) Σ_p D_p(l_p) λ · Σ_{(p,q) ∈ N} V_{p,q}(l_p, l_q)其中 N 是相邻像素对的集合λ 是平滑系数。对二值分割前景1、背景0我们通过构造一个 s-t 网络图每个像素是图中的一个节点源点 s 连到所有像素点像素点也连到汇点 t。边的容量就来自于数据项相邻节点之间的边容量由平滑项决定。最终在图上执行最大流算法最小割的结果就是标签分配的最优解或近似最优解。这个部分理解不透的同学推荐看一个经典例子用最小割切分社交网络中的人际关系或者把一个房子划分成“逃生路线 vs 火源区域”图割的逻辑和这些场景是完全相通的。2.3 GMM 概率如何变成图割的输入训练完前景和背景的 GMM 后对任一像素 x我们可以计算它属于前景的概率 P_f(x) p(x | GMM_前景)属于背景的概率 P_b(x) p(x | GMM_背景)。但图割要求的是代价不是概率所以数据项通常写成负对数似然D_p(前景) -ln P_f(x_p) D_p(背景) -ln P_b(x_p)这个负对数的意义很好理解概率越高损失越小反过来如果一个像素颜色在背景 GMM 里几乎不可能出现那它的背景代价就特别大图割算法就倾向于把它标成前景。注意一个细节两个 GMM 在同一次分割中必须使用相同的分量数吗并不需要。例如前景颜色比较单纯可以只用 3 个分量背景颜色复杂可以用 5 个分量。分量数不同不影响能量函数的构建只在 GMM 估计阶段有区别。3. 改进思路的核心定位问题再解决问题3.1 经典 GMM 在分割任务里的三个短板原版 GrabCut 类算法其实已经把 GMM 和图割结合得很好但用的时候会明显感觉到三个问题。分量数难以确定。传统做法是把前景和背景的分量数都固定成 5 或 8。但图像内容是变化的一个纯色背景可能用 1 个高斯分量就够了一个大面积渐变背景可能需要十几个。分量数设少了颜色分布拟合不准确设多了不仅计算量大还容易过拟合甚至某些分量被分配到零散的闪烁像素上。缺乏空间信息。GMM 是纯颜色模型只考虑像素值不关心像素位置。如果前景和背景颜色相近GMM 会把同色像素归为一类根本分不开如果前景内部颜色分布很散比如树叶被光照影响有亮有暗GMM 又容易把前景拆成碎片。图像区域在空间上是连续的这一先验没有用到。对初始化和噪声敏感。EM 算法本身对初始参数敏感不同的初始化可能收敛到不同的局部最优。图像里的椒盐噪声和强高光也会让协方差矩阵估计受到干扰。我的改进策略就是围绕这三个短板展开的下面逐一说明。3.2 改进一自适应分量选择分量数的选择不能靠猜。一个比较稳妥的办法是引入贝叶斯信息准则BIC来评价不同分量数的模型拟合效果BIC(K) -2 · ln L m · ln N其中 L 是最大似然值m 是模型自由参数个数N 是样本数。对于 GMM自由参数个数等于 K - 1 K · (d d(d1)/2)这里 d 是特征维数RGB 图像即 d 3。实现时让分量数在某个范围内例如 1 到 8搜索每次都用 EM 拟合一次 GMM计算 BIC取最小 BIC 对应的 K。这样做的代价是计算量大一些但好处是分量数不再依赖人工经验。对于毕设而言这本身就是很直观的改进点画一下“BIC 值随分量数变化”的曲线也是很好的结果展示图。当然BIC 对每个图像、每个前景背景都要跑一遍搜索会比较耗时。我实际实现时加了一个上限如果 K 超过 6就不再增加分量因为超出这个数量在 RGB 颜色空间里对分割结果的影响已经非常小没必要继续烧算力。3.3 改进二融合空间位置先验这是整个改进中最核心的一步。做法是在 GMM 输入特征向量里增加空间坐标维度从原来的 RGB 三维特征扩展为 RGB 归一化坐标的五维特征x (r, g, b, αx, αy)其中 x、y 是像素坐标α 是空间权重系数控制位置信息在特征中的重要程度。α 太小则空间信息基本不起作用α 太大则颜色相似性被忽视图像会被强制切成若干空间区域。实践证明 α 取 0.5 到 1.0 之间比较合理具体值可以用网格搜索来确定详细过程见第 4 部分。考虑到 RGB 和坐标的数值尺度差异很大需要先把坐标归一化到 0 到 255 这个范围和 RGB 分量保持一致或者把所有特征统一做标准化。我采用的是后者因为颜色向量也存在光照差异较大的情况统一标准化后各维度的权重更均衡。当然加入空间特征的副作用是协方差矩阵从 3×3 变成 5×5自由参数变多了。但配合自适应分量选择整体模型复杂度还是可控的而且空间约束带来的边缘连续性和区域紧凑性收益非常明显。3.4 改进三更鲁棒的初始化与协方差估计EM 算法对初始值敏感的问题可以通过 K-means 初始化部分解决。基本思路是先用 K-means 把像素聚成 K 类然后用每类的均值和协方差作为 GMM 的初始参数比纯随机初始化稳定得多。这个过程我加了扰动校准调整聚类中心的数量等于预计的 GMM 分量数并将少量随机扰动添加到初始均值上以避免 K-means 结果过于对称导致 EM 收敛速度偏慢。另一个针对噪声的改进是在协方差矩阵对角线上加一个小正则项 εI确保矩阵始终可逆且估计过程数值稳定。实话说这个改动很小但在协方差矩阵接近奇异时非常有用。特别是用空间增强特征后某类像素数量很少协方差矩阵很容易退化这个正则项能直接避免训练过程报错。3.5 完整的改进算法流程整个算法从输入图像到输出分割结果一共七步读取输入图像用户用矩形框或涂鸦方式标记可能的背景区域交互式初分割或者直接用显著性检测结果生成初始前景背景实现全自动化。对背景区域像素提取特征RGB 或增强后的五维特征用 BIC 搜索前景、背景各自的 GMM 分量数。用 K-means 初始化 GMM 参数执行 EM 迭代获得前景、背景两个 GMM 模型。对图像全图每个像素计算它在两个 GMM 下的似然概率转换成负对数形式的图割数据项。构造平滑项设置平滑系数 λ 和颜色惩罚带宽通常基于图像梯度。在 s-t 网络上用最大流算法求最小割得到初始分割标签。进入迭代优化阶段将分类置信度不高且靠近分割边界的像素重新输入 GMM 更新参数重复步骤 3 至 6一般迭代 2 到 3 轮后边界趋于稳定输出最终结果。第三步到第七步是一个闭环这是借鉴了 GrabCut 的迭代思想用当前分割结果重新训练颜色模型再用新模型重新分割反复逼近局部最优。这么做能明显改善分割边界的准确性。4. 实现细节与参数调节代码能落地的关键4.1 环境准备与依赖我的整个项目基于 Python 3.9核心依赖为 OpenCV、NumPy、Scikit-learn 和 PyMaxflow。PyMaxflow 是处理最小割问题的库接口比较简单安装方式如下pip install numpy opencv-python scikit-learn pymaxflow如果不想用 PyMaxflow也可以选择用 OpenCV 自带的 GrabCut API 来替代图割优化步骤但那样的话就没办法完全体现自己在图割层面的工作而且参数定制空间也受限。毕设角度我更建议直接用 PyMaxflow 或 C 版本的 maxflow 库因为你能清楚地展示构造图的过程可以和后面的能量函数分析呼应起来。4.2 GMM 估计核心代码先写一个用于估计 GMM 的函数。注意这里我分装了三个版本标准 GMM、带 BIC 自适应的 GMM、带空间特征的 GMM。代码层面尽量保持接口一致方便后面做对比实验。import numpy as np from sklearn.mixture import GaussianMixture def fit_pixel_gmm(pixels, n_components_max8): 根据 BIC 选择最优高斯分量数的 GMM 拟合。 pixels: shape (N, 3) 的 RGB 像素集合 返回: 拟合好的 GaussianMixture 对象、选择的分量数、BIC 值 best_model None best_k 1 best_bic np.inf for k in range(1, n_components_max 1): model GaussianMixture( n_componentsk, covariance_typefull, max_iter200, n_init5, reg_covar1e-5, init_paramskmeans ) model.fit(pixels) bic model.bic(pixels) if bic best_bic: best_bic bic best_model model best_k k return best_model, best_k, best_bic这个函数的核心只有 BIC 搜索那一段。有一个小细节n_init5表示 EM 会尝试 5 次不同的随机初始化最后保留似然值最高的一次。这样虽然前期耗时变长了但能极大减少“随机初始化把结果带到奇怪局部最优”的可能。4.3 带空间先验的特征扩展空间增强版本只需要在前面的函数里把像素矩阵扩成五维def build_spatial_feature(img_rgb, alpha0.7): 构造带空间位置信息的五维特征。 输入: img_rgb 是 H x W x 3 的 RGB 图像 输出: 特征矩阵 shape (H*W, 5)前三维是颜色后两维是归一化坐标 h, w, _ img_rgb.shape x_map, y_map np.meshgrid(np.arange(w), np.arange(h)) # 把所有维度归一到 0-1 r img_rgb[:, :, 0].astype(np.float32) / 255.0 g img_rgb[:, :, 1].astype(np.float32) / 255.0 b img_rgb[:, :, 2].astype(np.float32) / 255.0 x_norm x_map.astype(np.float32) / w y_norm y_map.astype(np.float32) / h # alpha 控制空间坐标的相对权重 feat np.dstack(( r, g, b, alpha * x_norm, alpha * y_norm )).reshape(-1, 5) return feat需要说明的是我在代码里直接用alpha * 归一化坐标来控制空间权重等价于在最终距离度量里给空间维度多乘一个系数。如果进一步想做得精细一些可以在拟合 GMM 之前先对特征做整体标准化效果也类似但调参时不如 alpha 直观。4.4 图割构造核心代码图割部分的代码直接决定了最终分割质量。我用 PyMaxflow 构造图import maxflow from scipy.spatial import cKDTree def graph_cut_segment(img_rgb, prob_fg, prob_bg, smooth_lambda20.0, sigma5.0): prob_fg / prob_bg: shape (H, W) 概率矩阵分别表示前景和背景概率 返回: 0/1 标签矩阵值为 1 表示前景 h, w, _ img_rgb.shape g maxflow.Graph[float]() node_ids g.add_grid_nodes((h, w)) # 数据项负对数值映射到边的容量 eps 1e-6 for i in range(h): for j in range(w): cost_fg -np.log(max(prob_fg[i, j], eps)) cost_bg -np.log(max(prob_bg[i, j], eps)) g.add_tedge(node_ids[i, j], cost_fg, cost_bg) # 平滑项相邻像素颜色差越大惩罚越小 structure np.zeros((3, 3), dtypenp.int32) structure[1, 0] 1 # 上 structure[1, 2] 1 # 下 structure[0, 1] 1 # 左 structure[2, 1] 1 # 右 # 预计算归一化颜色差作为平滑权重的分母 color_weight np.zeros((h, w)) img_float img_rgb.astype(np.float32) for di, dj in [(-1, 0), (1, 0), (0, -1), (0, 1)]: shifted np.roll(img_float, shiftdi, axis0) shifted np.roll(shifted, shiftdj, axis1) color_weight np.sqrt(np.sum((img_float - shifted) ** 2, axis2)) color_weight np.clip(color_weight, 0, None) # edges 容量平滑系数 / (1 颜色距离)颜色距离越大越可能被切开 for i in range(h): for j in range(w): if i 0: diff np.sqrt(np.sum((img_float[i, j] - img_float[i-1, j]) ** 2)) cap smooth_lambda * np.exp(-diff / sigma) g.add_edge(node_ids[i, j], node_ids[i-1, j], cap, cap) if j 0: diff np.sqrt(np.sum((img_float[i, j] - img_float[i, j-1]) ** 2)) cap smooth_lambda * np.exp(-diff / sigma) g.add_edge(node_ids[i, j], node_ids[i, j-1], cap, cap) g.maxflow() labels g.get_grid_segments(node_ids) labels labels.reshape((h, w)).astype(np.uint8) return labels关于代码细节要提醒几点数据项边的容量我直接用了负对数概率。实际实验中概率值经常会非常接近 0如果不做eps裁剪负对数会直接变成无穷大导致 maxflow 数值不稳定。平滑项用了高斯核函数alpha * exp(-|颜色差| / sigma)。颜色差越大平滑惩罚越小这符合直觉物体边界处颜色变化大应该允许分割线经过。smooth_lambda是整场分割里最重要的参数。lambda 太大分割结果会非常平滑但细节容易被抹掉lambda 太小分割结果会被噪声带着跑。一般取值范围 5 到 50需要根据具体图片调。4.5 参数调节的实操心得整条链路里需要调的参数主要有四个GMM 分量数上限、空间权重 alpha、平滑系数 lambda、光滑项带宽 sigma。我的调节顺序是先固定 sigma 和 alpha单把 lambda 从 5 开始往上试观察分割结果是否出现碎片化或者区域过分平滑。在此基础上再调整 alphaalpha 太小会看到同一物体被颜色相近的背景“侵蚀”alpha 太大则会看到过于块状的分割结果连手指这种细长结构都会被切断。最后调 sigma它影响边界位置一般从 5 开始查。有一个偷懒但有效的经验在一张 800×600 图上alpha 调到 0.7、lambda 调到 20、sigma 调到 5作为起始参数绝大多数场景结果都不会太离谱。如果效果不好再针对具体图像微调。5. 实验结果评估与对比分析5.1 数据集与评价指标我用的是公开分割数据集中的三个类别子集包含人像、动物和户外场景图片每张都已配好二值标注。评价指标选三个IoU交并比预测分割与真实标注的交集面积除以并集面积越接近 1 越好。F1-score综合考虑精确率和召回率。像素准确率Pixel Accuracy, PA分类正确的像素数占总像素数的比例。这三个指标各有侧重。IoU 对边界误差敏感F1 对类别不平衡相对稳健PA 是最直观的性能描述。答辩时可以三张图表一起给出展示改进前后全面对比。5.2 定性结果三组有代表性的对比我挑了三类典型图像分别代表 GMM 容易犯错的场景。第一类是前景背景颜色相近的图。标准 GMM 直接把颜色相近的区域合并了分割边界向内“侵蚀”了一大块改进后的带空间特征 GMM 明显保有完整的空间连续性边界基本贴近真实轮廓。第二类是前景内部颜色多样性的图比如一只颜色斑驳的猫。标准 GMM 把猫身上的各个色块当成不同目标分割结果出现大量“空洞”改进版本通过空间先验把同一连通区域内的不同颜色拉在了一起。第三类是背景纹理复杂的户外图。标准 GMM 的边缘充满了细小孤立点改进版本因为在图割平滑项和 GMM 初始化上都做了优化边缘碎块大幅减少。最后一张图片我在迭代第 2 轮时手动截了一个中间分割结果图可以看到边界不断向真实轮廓收敛的过程。这个可视化对答辩非常加分能直观说明“迭代式分割”的优势。5.3 定量结果改进前后的数字对比统计整个数据集上的平均指标算法配置IoU (%)F1 (%)PA (%)标准 GMM 图割72.3479.8189.52自适应分量 图割76.1183.2991.87自适应分量 空间特征 图割81.2587.3394.02自适应分量 空间特征 迭代优化 图割83.7889.0695.31从数据里能直接看出改进是逐层递进的。仅加入自适应分量IoU 提升了约 3.8 个百分点再加空间特征提升了约 5.1 个百分点最后加入迭代优化又提升了约 2.5 个百分点。这个阶梯式结果很适合做成答辩图表比只放一个最终精度数字有说服力得多。当然要诚实指出改进也带来了一些额外开销由于 BIC 搜索和空间特征增加了维度平均单张图片分割耗时从 0.42 秒增加到 1.13 秒。在正式报告里我还专门对比了算法在不同分辨率下的耗时曲线证明性能开销整体可控。6. 常见问题与调试实录6.1 EM 迭代不收敛或警告协方差矩阵奇异这个在加入空间特征后特别常见。因为五个维度的数值尺度不一致协方差矩阵很容易在 EM 早期变成奇异矩阵。我的排查顺序是先检查特征是否做了标准化确认reg_covar1e-5是否有设置如果还不行把n_init提高到 10 再试。大部分情况下加上正则项和标准化就解决问题了。6.2 分割结果出现大量碎片碎片通常来自三个方面平滑系数 lambda 太小。这个调节起来最直观对应图像上表现为一大块连通区域被错误分隔成许多小块。前景 GMM 分量数过多。当 BIC 选择的分量数偏大时模型容易把噪声拟合成独立高斯分量。解决方法是给分量数范围加一个硬上限或者对分量权重设置一个最小阈值删除权重过小的分量。迭代次数过多。超过 3 轮以后分割结果通常不会继续变好反而会轻微退化因为每轮迭代都在放大前置结果的误差。还有一个容易被忽略的问题我用 OpenCV 读取图像时默认是 BGR 通道顺序如果不转换成 RGB颜色维度的语义就和想象中不同这在图像前背景颜色都比较鲜艳时误差特别明显。转换方式很简单img_rgb cv2.cvtColor(img, cv2.COLOR_BGR2RGB)。6.3 图割效果非常模糊边界总往一边偏这种“整体偏移”现象通常是数据项概率没有正常区分开或者平滑项权重过度。优先检查前景背景两个 GMM 的似然值分布打印全图每个像素的前景概率直方图如果大量像素的概率集中在一个非常窄的区间说明 GMM 对颜色区分度不足这时候应该调高 alpha 空间权重或调整分量数上限。如果直方图分布正常但边界依然模糊那就是 lambda 太大。lambda 会把边界“拉直”当目标外形弯曲时这种强制平滑就会把边界整体往里推。6.4 运行速度慢如何处理大图BIC 搜索 空间特征 图割在 1920×1080 图上跑一轮大约需要 4 到 6 秒多次迭代后总耗时更长。处理办法是缩小输入分辨率来做分割再把标签上采样回原图。这个策略在触摸真实应用时非常有用分割边缘细节主要靠局部颜色一致性保证分辨率降低一半对 IoU 影响通常小于 1%速度却可以减少到原来的四分之一。如果还想进一步提速可以把像素特征聚类到 256 个超像素中心用超像素中心作为 GMM 拟合的样本再把概率映射回原图。这也是一个可以写进论文的“工程优化点”。6.5 常见问题速查表现象可能原因优先排查手段EM 报警协方差奇异特征未标准化 / 需要正则启用 reg_covar特征归一化分割碎片过多平滑系数太小 / 分量数过大调大 lambda限制分量数上限边界整体偏移数据项区分不足 / lambda 过大查看概率直方图调 alpha运行过慢图像过大 / BIC 搜索范围过宽降采样限制最大分量数输出图通道异常BGR 与 RGB 未转换用 cvtColor 转成 RGB7. 个人经验总结这套项目做完我最深刻的体会是传统视觉方法不是“过时”而是“需要好的故事线”。改进 GMM 加图割本质上是概率建模和组合优化的结合它每一步都有数学依据便于在论文或毕设答辩里展开讲而不是像深度网络那样把原因淹在数以百万计的参数里。给后来者几条具体建议第一改进点不要贪多。我的三个改进里自适应分量、空间特征、迭代优化每个都能单独讲清楚。如果你赶时间只做“空间特征 图割”这一个改进也足够撑起整个毕设。好的毕设不一定改得多但一定演得透。第二实验设计和参数调节过程一定要记录。我在做 lambda 网格搜索的时候顺手保存了每组参数的 IoU 和结果图后来这些都成了论文实验部分的素材比答辩前临时补实验强太多。第三不要忽略失败案例。我的数据集里有两张图改进后效果反而变差一张是高度透明的玻璃杯一张是极其复杂的小树枝。这些失败案例放在论文里反而增加了可信度说明你理解了方法适用边界在哪里。如果后续想往更深的方向走可以考虑把空间特征扩展成超像素级的上下文特征或者用深度学习为 GMM 提供初始参数。核心思路不变保持 GMM 的可解释性用更丰富的信息来源改善建模精度同时继续用图割保证像素标签的空间一致性。这个方向我自己跑了很久依然觉得有很多可以挖的点。
阅读完成 · 觉得有帮助?
咨询建站