U-Net 与 Mask R-CNN 都能输出像素级结果,但问题设置不同:前者常用于像素类别预测,后者为每个检测对象输出独立掩码。先问“要给像素分类,还是要把同类对象分开”,再看结构,更容易理解两者。
两篇论文的身份
U-Net 由 Olaf Ronneberger、Philipp Fischer、Thomas Brox 于 2015 年提出。Mask R-CNN 由 Kaiming He、Georgia Gkioxari、Piotr Dollár、Ross Girshick 于 2017 年提出,arXiv v3 修订于 2018 年。本文是概念学习整理,不是论文全文翻译或复现实验。
U-Net:上下文与定位信息共同参与预测
收缩路径逐步提取特征、扩大感受野,扩张路径逐步恢复空间分辨率;上采样特征与收缩路径对应层的高分辨率特征拼接,让上下文与局部定位信息结合。
原版使用有效卷积,拼接前需要裁剪对齐,输出尺寸不必等于输入尺寸。后续改用 padding 的实现不能直接套用原图尺寸。论文还讨论重叠分块、镜像边界和数据增强,以处理大图及有限标注样本。U-Net 结构与训练
学习时可逐层核对分辨率、通道数和融合方式。跳跃连接不是一句“保留全部细节”,两路特征在空间上能否对齐才是具体问题。
Mask R-CNN:为对象增加掩码分支
Mask R-CNN 在 Faster R-CNN 上增加掩码分支:类别与边界框回答“是什么、在哪里”,掩码回答“这个实例占了哪些像素”。同一类别的对象仍有独立身份。
像素预测对位置偏差敏感。RoIAlign 避免区域特征提取中的坐标量化,用插值获取采样值,改善位置对齐。FPN 可作为特征提取方案的一部分,但“使用 FPN”并不等于实例分割。Mask R-CNN 方法
掩码分支按类别做二值掩码预测,把类别判断与每个像素的掩码判断分开;不是简单把全部实例像素放进一次统一的类别 Softmax。
任务、损失和指标不要混用
两只相邻的猫都标成“猫”,是语义类别信息;分别标出猫 A 和猫 B,才包含实例身份。实际能否分开接触对象,仍取决于标注、输出表示及后处理,不由名称保证。
Dice、IoU 是重叠度指标,Dice 也可构造损失,但原始 U-Net 训练章节描述的是像素级 Softmax 与带权交叉熵,不能写成“原版用 Dice loss”。Mask AP 还依赖匹配、阈值和评测协议,脱离条件的数字不能比较。
这两篇适合一起思考“定位信息如何保留”。不同任务、不同数据集的成绩,不足以判断哪个模型普遍更好。