05 计算机视觉进阶本域第 5 篇
语义分割
给每个像素上色:不是画框,而是填色本
定义
语义分割为图像中的每个像素分配一个类别标签,输出一张与原图同尺寸的类别图。它回答的是「每个像素属于什么」,从而给出物体精确的轮廓,而不只是粗略的矩形框。
直观理解
检测用矩形框圈出「那里有只猫」,分割则把猫的每一根轮廓毛边都描出来。如果说检测是在照片上画方框,分割就是给照片填色本——每个像素都要决定自己属于哪种颜色。
分割任务的层级:是否区分同类个体,是语义、实例与全景分割的分水岭
语义分割在 PASCAL VOC 2012 上的 mIoU 演进:从全卷积的 FCN 到空洞卷积与编解码结合
工作原理
- 01
三种分割的分野
语义分割只标类别(所有「人」同色),实例分割还要区分个体(人 A 与人 B 不同色),全景分割则把两者合一——可数对象按实例、背景区域按语义。
- 02
全卷积网络与上采样
把分类网络末端的全连接换成卷积,得到保留空间结构的特征图;再用转置卷积或插值恢复到原分辨率。分割由此从「整图分类」变成「逐像素分类」。
- 03
U-Net 的跳连
编码器逐步下采样获取语义,解码器逐步上采样恢复细节;跳连把编码器的浅层高分辨率特征直接接到解码器对应层,弥补下采样丢失的边界信息——这在数据稀缺的医学分割中尤其关键。
- 04
Mask R-CNN:检测 + 掩码分支
在 Faster R-CNN 上并行增加一个逐像素掩码分支,对每个候选框输出一个二值掩码,从而顺带得到实例分割,是检测框架的一次优雅扩展。
关键公式
IoU = |A ∩ B| / |A ∪ B| , mIoU = mean over classesU-Net 的对称结构:编码器一路下采样,解码器一路上采样,跳连把两端的同分辨率特征接起来
应用场景
- 医学影像:器官与病灶轮廓勾画
- 自动驾驶:可行驶区域与车道线分割
- 遥感制图:地表覆盖分类
- 图像编辑:抠图、背景替换、人像分割
常见误区
- 语义分割不区分同类个体。两个人紧挨在一起只会是同一块「人」区域,要分开必须用实例分割。
- 逐像素准确率会被背景主导。当一片天空占了大半,全预测成天空也能拿到很高的准确率,因此更常用 mIoU 而非像素准确率。
- 边界永远是最难的部分。下采样越多语义越准但边界越糊,上采样与跳连始终在语义与细节之间权衡。
关键术语
- 语义 / 实例 / 全景分割
- 类别 → 类别 + 个体 → 二者统一
- 转置卷积
- 一种上采样操作,分割解码器常用
- 跳连
- 把浅层高分辨率特征送入深层,保住边界细节
- mIoU
- 每一类 IoU 的平均值,分割的主指标