图像分割完整概念解析

图像分割(Image Segmentation)是计算机视觉(Computer Vision)中最重要的任务之一,它可以认为是目标检测(Object Detection)的进一步升级

如果把整个计算机视觉的发展过程串起来,你会发现它们之间是层层递进的:

text 复制代码
图像分类(Classification)
        │
        ▼
目标检测(Detection)
        │
        ▼
实例分割(Instance Segmentation)
        │
        ▼
全景分割(Panoptic Segmentation)
        │
        ▼
开放词汇分割(Open Vocabulary)
        │
        ▼
SAM时代(Prompt Segmentation)

今天我会按照**"为什么需要 → 基本概念 → 各种分割任务 → 模型发展 → 原理 → Loss → 评价指标 → 实际工程"**这条路线系统讲一遍。


第一章 为什么需要图像分割

假设有这样一张图片:

复制代码
+------------------------------------+
|                                    |
|          一只猫坐在草地上            |
|                                    |
+------------------------------------+

如果是分类(Classification):

输出:

复制代码
Cat

只知道:

这是猫。

不知道猫在哪里。


如果是目标检测(Detection)

输出:

复制代码
┌────────────┐
│    Cat     │
└────────────┘

得到:

复制代码
类别
位置

也就是:

复制代码
Cat

Bounding Box

但是:

复制代码
##################
#                #
#      猫        #
#                #
##################

框里面还有:

复制代码
背景
草地
尾巴外面

框非常粗糙。

很多任务需要知道:

每一个像素是不是猫。

于是:

出现了图像分割。


第二章 什么叫图像分割

一句话:

给图片中的每一个像素进行分类。

例如:

原图:

复制代码
□□□□□□
□□猫□□□
□□猫□□□
□□猫□□□
□□□□□□

输出Mask:

复制代码
000000
001100
001100
001100
000000

这里:

复制代码
1 = 猫

0 = 背景

所以:

分割最终输出的是:

Mask(掩码)

而不是Box。


Mask是什么?

就是:

和原图一样大的二维矩阵。

例如:

图片:

复制代码
640×640

Mask也是:

复制代码
640×640

每个像素:

复制代码
0

或者

1

或者:

复制代码
0
1
2
3
...

表示类别。


第三章 图像分割有哪些类型

这是最重要的一章。

很多人把这些搞混。

其实只有四种。


第一种 Semantic Segmentation(语义分割)

最简单。

例如:

复制代码
两只猫

输出:

复制代码
111111
111111

111111
111111

所有猫:

都是:

复制代码
类别=Cat

不区分:

复制代码
猫A

猫B

所以:

语义分割回答的是:

哪些像素属于猫?

不是:

哪只猫?

例如:

复制代码
背景:

0

猫:

1

狗:

2

天空:

3

整个Mask:

复制代码
333333333

000111110

000111110

222222220

只有类别。


应用:

道路分割

医学

土地分割

卫星遥感


代表模型:

  • FCN
  • U-Net
  • DeepLab
  • PSPNet

第二种 Instance Segmentation(实例分割)

实例分割就是:

Detection+

Semantic Segmentation

例如:

复制代码
两只猫

输出:

复制代码
Cat 1

Mask1

Cat 2

Mask2

也就是说:

每一只猫:

都有自己的Mask。

例如:

复制代码
11110000

11110000

00002222

00002222

这里:

复制代码
1 = 第一只猫

2 = 第二只猫

所以:

实例分割输出的是:

复制代码
类别

Box

Mask

三样东西。


代表模型:

  • Mask R-CNN
  • YOLACT
  • SOLO
  • YOLOv8
  • YOLO11

第三种 Panoptic Segmentation(全景分割)

这是:

Semantic

Instance

结合。

例如:

图片:

复制代码
天空

树

路

汽车

人

其中:

复制代码
天空

树

路

属于:

Stuff(不可数)

而:

复制代码
人

汽车

属于:

Thing(可数)

Panoptic:

要求:

复制代码
背景全部分类

目标全部区分实例

例如:

复制代码
天空
天空
天空

树
树

汽车1

汽车2

道路
道路

代表模型:

  • Panoptic FPN
  • Mask2Former

第四种 Prompt Segmentation(SAM时代)

这几年最火。

代表:

  • Segment Anything Model
  • SAM 2

以前:

输入:

复制代码
图片

输出:

复制代码
Mask

现在:

输入:

复制代码
图片

+

Prompt

Prompt可以是:

点:

复制代码

框:

复制代码
□□□□□

文字:

复制代码
dog

甚至:

另一张Mask。

然后:

SAM自动分割。

这就是Prompt Segmentation。


第四章 图像分割的发展历史

复制代码
2015

FCN
↓

2017

U-Net

↓

PSPNet

↓

DeepLab V3

↓

Mask R-CNN

↓

YOLACT

↓

SOLO

↓

Mask2Former

↓

SAM

↓

SAM2

↓

Grounded-SAM

↓

YOLO11-Seg

其中:

真正改变整个行业的是:

  • U-Net(医学)
  • Mask R-CNN(实例分割)
  • Segment Anything Model(基础模型时代)

第五章 图像分割的核心原理

本质上:

分割就是:

复制代码
Dense Prediction(密集预测)

检测:

预测:

复制代码
几十个框

分割:

预测:

复制代码
几十万个像素

例如:

640×640图片:

复制代码
640×640

=

409600

个像素

每一个像素:

都要预测类别。

所以:

输出:

复制代码
409600次分类

因此:

最后一层通常输出:

复制代码
H

×

W

×

Classes

例如:

复制代码
640

×

640

×

20

表示:

每个像素:

20分类。


第六章 Instance Segmentation 是怎么做出来的

例如:

YOLO11 Seg。

除了检测头:

复制代码
Box

Class

Confidence

还增加:

复制代码
Mask Head

Mask Head输出:

复制代码
32维Prototype

然后:

每个目标:

预测:

复制代码
32个Mask Coefficient

最终:

复制代码
Mask

=

Prototype

×

Coefficient

得到:

实例Mask。

所以:

YOLO不是直接预测640×640Mask。

而是:

预测:

复制代码
Prototype

+

Coefficient

速度非常快。


第七章 常见Loss

分割Loss很多。

最经典:


BCE Loss

逐像素分类。

例如:

复制代码
预测:

0.9

GT:

1

计算Binary Cross Entropy。


Dice Loss

医学最常见。

公式思想:

复制代码
Overlap越大

Loss越小

Dice:

复制代码
2×Intersection

------------------

Prediction+GT

优点:

类别不平衡非常稳定。


IoU Loss

Mask IoU:

复制代码
Intersection

/

Union

越来越多模型直接优化Mask IoU。


Focal Loss

解决:

复制代码
背景

>>

目标

的问题。


Dice + BCE

医学里几乎标配。


第八章 常见评价指标

最重要:


Pixel Accuracy

像素准确率:

复制代码
预测正确像素

/

全部像素

简单。

但是:

背景很多时:

没有意义。


IoU

复制代码
Mask

交集

/

并集

最经典。


mIoU

Mean IoU。

所有类别:

IoU平均。

这是:

语义分割第一指标。


Dice

医学第一指标。

很多论文:

直接:

Dice=95%。


AP

实例分割:

也是:

复制代码
AP50

AP75

mAP

和检测类似。


第九章 图像分割的数据集

经典数据集:

数据集 任务 类别数
PASCAL VOC 语义分割 21
Cityscapes 自动驾驶 19
ADE20K 场景解析 150
COCO 实例分割 80
LVIS 长尾实例分割 1200+

第十章 图像分割在工业中的应用

图像分割已经广泛应用于多个行业:

行业 典型任务
医疗 肿瘤、器官、病灶分割
自动驾驶 道路、车道线、车辆、行人分割
遥感 建筑、农田、河流、森林分割
工业检测 划痕、裂纹、焊缝、缺陷分割
农业 作物、杂草、果实分割
机器人 抓取目标、场景理解
AR/VR 人像抠图、背景替换
电商 商品抠图、虚拟试穿

总结:一张图理解图像分割体系

text 复制代码
图像分类
    │
    ▼
知道是什么
    │
    ▼
目标检测
    │
    ▼
知道是什么 + 在哪里(Box)
    │
    ▼
语义分割
    │
    ▼
知道每个像素属于什么类别
    │
    ▼
实例分割
    │
    ▼
知道每个像素属于哪一个具体目标
    │
    ▼
全景分割
    │
    ▼
整个场景所有像素都有语义,所有目标都有实例ID
    │
    ▼
SAM / Prompt Segmentation
    │
    ▼
通过点、框、文本等提示即可分割任意目标