当前位置: 首页 > news >正文

图像分割模型演进史:从FCN到SAM

图像分割模型输出发展史

FCN │ ▼ U-Net │ ▼ DeepLab │ ▼ Mask R-CNN │ ▼ YOLACT │ ▼ YOLOv8/YOLO11 Seg │ ▼ SAM

可以看到:

前三个属于

直接输出像素分类(Dense Prediction)

后面几个属于

先预测目标,再生成Mask

这是两种完全不同的思路。


第一种:FCN

网络输出

假设:

输入

640×640×3

假设数据集有

3类

例如:

背景 猫 狗

那么FCN最后输出:

640 × 640 × 3

为什么?

因为:

每个Pixel都要预测:

属于背景? 属于猫? 属于狗?

所以:

每一个Pixel输出:

3个数

例如:

第100行200列:

输出:

[0.01,0.98,0.01]

表示:

背景:1% 猫:98% 狗:1%

最后:

argmax()

得到:

于是:

Mask:

111111 111111

所以:

FCN真正输出的是:

每个Pixel的类别概率(Logits)

不是Mask。

Mask只是:

argmax(logits)

得到的。


输出Tensor

(B,C,H,W)

例如:

(1,3,640,640)

这里:

B=batch C=类别数

第二种:U-Net

很多人认为:

U-Net输出Mask。

其实:

不是。

U-Net输出:

也是:

(B,C,H,W)

例如:

二分类:

(1,1,512,512)

为什么只有1?

因为:

只有:

前景 背景

不需要输出两个通道。

例如:

某Pixel:

0.92

表示:

前景概率92%

最后:

prob>0.5

得到:

Mask

如果:

四分类:

背景 肝脏 脾脏 肾脏

输出:

(1,4,512,512)

每个Pixel:

[0.1,0.7,0.1,0.1]

最后:

argmax()

得到:

肝脏

所以:

U-Net输出:

不是Mask。

而是:

Pixel Classification Logits


第三种:DeepLabV3+

DeepLab和U-Net几乎一样。

输出:

(B,C,H,W)

例如:

VOC:

21类

输出:

(1,21,513,513)

每一个Pixel:

输出:

21个类别分数

然后:

Softmax ↓ Argmax ↓ Mask

所以:

DeepLab也是:

Dense Prediction。


第四种:Mask R-CNN

这里开始完全变了。

因为:

它不是:

预测整张Mask。

而是:

每一个目标预测一个Mask。


Mask R-CNN输出:

实际上有:

四个Head:

Class Head Box Head Mask Head Score Head

其中:

Mask Head输出:

例如:

检测到了:

3个目标

那么:

Mask输出:

(3,80,28,28)

为什么?

80:

COCO类别。

28×28:

Mask大小。

例如:

第一只狗:

输出:

Dog:28×28

不是:

640×640。

最后:

再:

ROI Align

Upsample

得到:

原图大小Mask。


所以:

Mask R-CNN真正输出:

不是整张Mask。

而是:

每个ROI的小Mask


第五种:YOLACT

YOLACT更有意思。

它:

根本不预测Mask。

它输出:

两个东西。


第一个:

Prototype

例如:

(138,138,32)

什么意思?

就是:

预测:

32张基础Mask。

例如:

Mask1 Mask2 Mask3 ... Mask32

第二个:

Coefficient

每一个目标:

输出:

32

例如:

[0.3,0.2,...]

最后:

Prototype × Coefficient

得到:

Mask。

所以:

YOLACT输出:

不是Mask。

而是:

Prototype + Coefficient


第六种:YOLOv8 Seg / YOLO11 Seg

YOLO也是:

继承YOLACT。

输出:

两部分。


第一部分:

Detection:

Boxes Classes Scores

第二部分:

Prototype:

(32,160,160)

第三部分:

每个目标:

Mask Coefficient:

32

最终:

Mask=Proto @ Coeff

例如:

Proto:32×160×160

目标:

Coeff:32

最后:

得到:

160×160

再:

Upsample:

640×640

所以:

YOLO:

真正输出:

Boxes Classes Scores Proto Coeff

不是Mask。


第七种:SAM

SAM更加不同。

SAM输出:

三个东西。

第一:

Mask

例如:

(3,256,256)

为什么:

3?

SAM默认:

输出:

三个候选Mask。

第二:

IoU Prediction

例如:

[0.98,0.85,0.61]

表示:

三个Mask:

谁最好。

第三:

Low Resolution Logits

例如:

256×256

方便:

下一轮Prompt。

所以:

SAM输出:

Masks IoU Scores Low-res Logits

不是:

只有Mask。


所有模型输出对比

模型网络直接输出Tensor Shape(示例)后处理得到
FCNPixel Logits(B,C,H,W)argmax → Mask
U-NetPixel Logits(或前景概率)(B,C,H,W)(B,1,H,W)sigmoid/softmax → Mask
DeepLabV3+Pixel Logits(B,C,H,W)argmax → Mask
Mask R-CNNROI Mask Logits(N,C,28,28)(训练)或每实例(N,1,28,28)(推理)上采样 + 粘贴回原图
YOLACTPrototype + Coefficient(H,W,K)+(N,K)线性组合 → Mask
YOLO11Detection + Prototype + CoefficientProto(K,h,w),Coeff(N,K)Proto × Coeff → 上采样 → Mask
Segment Anything Model多个 Mask Logits + IoU 评分Masks + Scores + Logits选择最佳 Mask

你会发现两个时代

把所有模型归纳一下,其实只有两大类:

第一类:Dense Prediction(逐像素预测)

代表模型:

  • FCN
  • U-Net
  • DeepLabV3+

共同特点:

输出: (B, C, H, W) ↓ Softmax / Sigmoid ↓ Mask

网络直接对每一个像素进行分类。


第二类:Mask Generation(生成 Mask)

代表模型:

  • Mask R-CNN
  • YOLACT
  • YOLO11
  • Segment Anything Model

共同特点:

检测目标 / 接收 Prompt ↓ 生成实例级 Mask ↓ 得到最终 Mask

网络不直接输出整张图的像素类别图,而是围绕目标实例或提示生成对应的 Mask。


http://www.jsqmd.com/news/1116563/

相关文章:

  • 直流电机静音PWM控制方案与实现
  • 每一轮对话都触发长期记忆存储,会不会导致存储空间爆炸?怎么优化?
  • 线控制动技术攻坚:从机械制动到电子控制,重构汽车制动安全逻辑
  • AI算力大爆发:2026年我们真的需要那么多芯片吗?
  • Boss-Key老板键终极指南:一键隐藏Windows窗口的完整解决方案
  • AI 生成的代码有 Bug 怎么办?我总结了 5 个排查技巧(附真实案例)
  • WSL2端口冲突解决方案与SpringBoot开发优化
  • 中俄跨境拼箱物流的系统化管控
  • 面试必问!ArrayList与LinkedList底层原理+区别详解,看完彻底吃透
  • 6DoF运动跟踪与IIM-42652 IMU实战指南
  • 终极Potrace指南:从位图到矢量的专业转换完全教程
  • 直流有刷电机驱动方案与TC78H653FTG应用详解
  • 为什么选择这个开源纽约市交通数据分析平台?3个独特价值解析
  • Mind Elixir思维导图导出工具:5分钟掌握所有格式转换技巧
  • STC3115与PIC18F85J10的电池管理系统设计与优化
  • LTC6904与MK60DN512VLQ10实现高精度方波脉冲生成方案
  • 技术写作在AI时代的重要性:为什么程序员应该坚持写博客
  • 从零部署与调优OWASP CRS:构建开源WAF核心防线实战指南
  • SPI EEPROM与PIC18F86J55嵌入式数据存储优化方案
  • 第 21 讲:安全、权限、成本与上线
  • 5小时写完论文的实操指南,用ChatGPT写论文全面攻略
  • AI编码时代最后的安全防线(仅限首批内测团队开放):动态可靠性评分引擎v1.0技术解密
  • 第一章Netty,NIO零拷贝详细实现代码
  • 收放板机的“多面手”——一台设备如何适配多种板件规格
  • NAFNet图像恢复终极指南:如何用AI让模糊照片变清晰
  • 即触 AI PPT:从文档到PPT,用这个工具就够了
  • AI智能体与本地大模型集成:Hermes+Codex自动化工作流部署指南
  • ICM-42605运动追踪芯片在工业自动化中的应用
  • 6DoF IMU原理与应用:从硬件选型到数据融合
  • ICM-42605六轴IMU与PIC18F2515实现高精度姿态追踪