王老师有一张全班合影。要把照片整理进成长手册,她有两种做法:第一种是拎起油漆桶,把照片里所有小朋友刷成红色、所有椅子刷成绿色——画面瞬间变得“分类清晰”,但你看不出谁是哪位小朋友;第二种做法,是给每个小朋友单独做一张透明姓名牌——小雅、沫沫、浩浩,一张张叠在合影上,每个孩子都有自己的身份。前一种做法,对应深度学习里的语义分割;后一种做法,对应实例分割。两者都是像素级分割任务,区别只在一句话:语义分割回答“这个像素是什么类别”,实例分割回答“这个像素属于哪一个个体”。这背后牵动着输出形式、评价指标、算法结构和工程成本的一系列不同。读完这篇,你会像给幼儿园老师选整理方案一样,快速判断自己的项目该用语义分割,还是实例分割。

岗位关联

对 AI 从业者最大的价值,是建立“任务选型”直觉:看懂分割论文里的 mIoU 与 mAP、分清 FCN 与 Mask R-CNN 的定位,在图像分割项目里少走弯路。

目录
  1. 可视化演示
  2. 任务定义
  3. 输出形式
  4. 评价指标
  5. 算法之路
  6. 应用场景
  7. 选型指南
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

对比语义分割与实例分割的像素级分类差异,展示同类别不同实例的区分能力、IoU/mAP评估指标及FCN/U-Net架构特点,支持两种分割模式切换。

本节配有交互动效(进入视口后自动加载,约 3KB)。

语义分割 vs 实例分割:核心区别 语义分割:同类像素同色,不区分实例 实例分割:每个实例独立ID+边界框 IoU = |A∩B| / |A∪B| 语义分割评估用mIoU,实例分割评估用mAP;SAM模型支持零样本通用分割。

任务定义

王老师是幼儿园小班的班主任,她有一张全班合影。为了把照片整理进成长手册,她有两种思路:第一种是拎起油漆桶,把所有小朋友刷成红色、所有椅子刷成绿色——画面整齐,但每个孩子“面目模糊”;第二种是先刷色,再给每个小朋友贴一张写有名字的胸牌——小雅、沫沫、浩浩,每个人都是独一无二的。这两种思路,正是语义分割与实例分割最直白的雏形。

在深度学习里,这两种做法都属于“像素级分割”任务:模型要对照片里的每个像素点做判断。区别在于判断的粒度:语义分割的回答是“这个像素属于哪个类别”,实例分割的回答是“这个像素属于哪一个物体个体”。前者只关心“是不是人”,后者关心“是第几个人、是谁”。两者都要为整张图输出密集的像素级结果,这与“整图一个标签”的图像分类、“一个矩形框”的目标检测有着本质的层级差异。

具体来说,语义分割将图像划分为若干个类别区域,输出与输入等尺寸的标签图,每个位置的数值代表该像素的类别编号。实例分割则要额外建模“个体归属”,同类别的两个物体即使紧紧挨着,也要被当成两个独立实例。工程里经常把任务层级画成金字塔:图像分类在最顶层,目标检测在中间层,语义分割和实例分割共同占据“逐像素”这一层,只不过实例分割要求更细的颗粒度。

所以语义分割的“产出”是一张上了颜色的分类地图;实例分割则要像老师给小朋友贴名字一样多走一步,让每一个同类个体都有自己的身份。这一步之差,决定了后面所有的技术选型。

yi,j=arg⁡max⁡c pi,j,ci=1,…,H, j=1,…,Wy_{i,j}=\arg\max_{c}\ p_{i,j,c}\qquad i=1,\ldots,H,\ j=1,\ldots,W
这句公式像老师给每个像素开一次“喊话会”:把候选类别逐个喊一遍,哪个类别被喊得最响(概率最大),这个像素就归它。
  1. 下标 $i,j$像素在图像中的位置,就像合影里第几排第几个小朋友。
    i=1,…,H,j=1,…,Wi=1,\ldots,H,\quad j=1,\ldots,W
  2. 概率 $p_{i,j,c}$模型认为位置 $(i,j)$ 的像素属于类别 $c$ 的把握,取值在 0 到 1 之间。
    0≤pi,j,c≤10 \le p_{i,j,c} \le 1
  3. $\arg\max_c$在所有 $C$ 个候选中挑出概率最大的那个类别。
    arg⁡max⁡c pi,j,c\arg\max_{c}\ p_{i,j,c}
  4. 标签 $y_{i,j}$把挑出的类别编号作为该像素的最终归属,整张图逐点执行后拼成类别图。
    yi,j∈{1,2,…,C}y_{i,j} \in \{1,2,\dots,C\}

输出形式

同样整理一张合影,交到老师手里的“作品”外形完全不同。语义分割交回来的是“一张已经涂好色的整图”,整片天空一块蓝,整块草地一片绿;实例分割交回来的则是“一沓透明姓名卡片”,叠在合影上,每一张透明卡片上只有一个小朋友的轮廓。打开代码看输出,这两种形态的差异非常直观。

语义分割的输出通常是一张类别标签图:任意像素的取值是一个类别编号。三颗并排放在果盘里的苹果,语义分割结果中所有苹果像素都是同一个编号“苹果”;即使两颗苹果中间隔着一根香蕉、在图上形成了两块不相连的区域,它们依然共用同一个类别标签,没有任何机制告诉你“这是苹果 A、那是苹果 B”。

实例分割的输出则是一个实例列表,列表里每一项代表一个独立对象,包含类别、置信度和一张二值掩码。掩码与原图等大,值为 1 表示该像素属于当前实例,值为 0 表示不属于。同一类别的不同实例掩码互不重叠,但同一张图里可以同时存在多个类别的多个实例。这种“类别 + 个体”的双层结构,是它与语义分割在数据结构上最根本的分水岭。

把两种输出并排放在屏幕上,读者一眼就能看出差别:语义分割是一张“满涂”的色块图,实例分割是“一张原图 + 若干独立 mask 图层”。记住这个画面,就记住了两种任务的输出本质。

mk=(ck, bk)bk∈{0,1}H×Wm_k = (c_k,\ b_k)\qquad b_k \in \{0,1\}^{H\times W}
一个实例 $m_k$ 相当于“姓名牌 + 透明卡片”:类别 $c_k$ 写在牌上,掩码 $b_k$ 是那张印着一个人轮廓的透明卡片。
  1. 实例编号 $k$这是第几个实例对象,比如“第 2 颗苹果”。
    k=1,2,…,Nk=1,2,\ldots,N
  2. 类别 $c_k$这个实例属于预定义类别集合中的哪一类,比如“苹果”。
    ck∈{1,…,C}c_k \in \{1,\ldots,C\}
  3. 掩码 $b_k$一张 $H\times W$ 的 0/1 矩阵,1 的位置拼起来就是该实例的轮廓。
    bk∈{0,1}H×Wb_k \in \{0,1\}^{H\times W}
  4. 整体结构一个实例 = 类别信息 + 掩码,多个这样的实例组成列表,就是完整输出。
    {m1,m2,…,mN}\{m_1, m_2, \dots, m_N\}

评价指标

整理完照片,老师得知道自己整理得好不好,于是需要一把“评分尺子”。语义分割要看“涂色的边界贴不贴合真实物体”,实例分割还要看“每张姓名牌有没有贴对人、有没有漏贴”。两者各用各的评分体系:语义分割看 mIoU,实例分割看 mAP。

语义分割最常用的指标是 mIoU(平均交并比)。对每一个类别,把模型预测为该类别的像素集合和真实标注的集合做对比:两者交集越大、并集越小,说明涂色越准。把所有类别的得分求平均,就是模型在整张图上的综合成绩。

实例分割的常用指标 mAP 则来自目标检测的评估思路。模型先把预测出的实例按置信度从高到低排序,再逐档计算精确率(找出的结果里有多少是正确的)和召回率(真实的实例里有多少被找到了),画出一条 PR 曲线;曲线下的面积就是 AP,所有类别的 AP 平均得到 mAP。这里“找到一个实例”的判定标准是:该实例的掩码与某个真实实例掩码的 IoU 超过阈值(如 0.5)。

所以以后读论文时,看到 mIoU 就知道这是语义分割任务的“打分表”,看到 mAP 就知道这是实例分割任务的“打分表”。前者像一场“涂色贴合度考试”,后者像一场“认人考试”,两把尺子不能混着用。

mIoU=1C∑c=1C∣Pc∩Gc∣∣Pc∪Gc∣mIoU = \frac{1}{C}\sum_{c=1}^{C} \frac{|P_c \cap G_c|}{|P_c \cup G_c|}
精确率与召回率像一对欢喜冤家:AP 高分意味着老师既要找到每一个小朋友,又别把椅子当成小朋友。
  1. 召回率 $r$横坐标,衡量“真实实例中有多少比例被找了出来”。
    r=TPTP+FNr = \frac{TP}{TP+FN}
  2. 精确率 $p$纵坐标,衡量“找出来的结果里有多少是正确的实例”。
    p=TPTP+FPp = \frac{TP}{TP+FP}
  3. 积分把 PR 曲线下的面积累加,代表整体识别质量。
    ∫01p(r) dr\int_0^1 p(r)\, dr

算法之路

整理照片的工具,也随着技术进化不断换代。最早解决语义分割的“大刷子师傅”叫 FCN(全卷积网络),它把分类网络末尾的全连接层换成卷积与上采样,模型不再只能输出一个类别概率,而是能输出一张与输入同尺寸的“着色图”。

语义分割的典型模型大多走“编码器-解码器”路线。U-Net 像一个先压缩再解压的信使:编码器把图片逐层浓缩成紧凑的语义表达,解码器再把细节一步步还原回原尺寸;DeepLab 则用空洞卷积扩大感受野,相当于把刷子的齿距拉大,一次覆盖更大范围,同时把边缘轮廓处理得更细腻。

实例分割的代表模型是 Mask R-CNN,它走“先圈人、再做胸牌”的两阶段路线。第一阶段用区域提议网络(RPN)圈出可能包含物体的候选框,第二阶段对每个候选框同时做三件事:分类——判断框里是什么;框回归——把框边界贴得更紧;掩码分支——在框内逐像素输出该实例的轮廓。检测与分割被整合进同一个框架,这也是“检测加掩码”这种设计范式名称的由来。

对比两条技术路线可以发现一个规律:语义分割的模型结构通常更“轻”,编码器-解码器一条路走到底;实例分割天生要同时处理“检测定位”和“像素分割”两件事,结构更重、计算量更大。这也解释了为什么在同等精度下,实例分割模型往往更慢、更难部署。

L=Lcls+Lbox+LmaskL = L_{cls} + L_{box} + L_{mask}
三份“作业”一起打分:圈得对不对、框得准不准、轮廓抠得细不细,三科成绩相加作为总损失。
  1. $L_{cls}$分类单项损失,判断候选框里的物体属于哪个类别。
    Lcls=−log⁡pcL_{cls} = -\log p_c
  2. $L_{box}$框回归损失,让预测框坐标尽量接近真实框。
    Lbox=smoothL1(b^−b)L_{box} = \text{smooth}_{L1}(\hat{b}-b)
  3. $L_{mask}$掩码损失,在框内逐像素做二分类,决定哪些像素属于当前实例。
    Lmask=−1m∑i=1myilog⁡y^iL_{mask} = -\frac{1}{m}\sum_{i=1}^{m} y_i \log \hat{y}_i
  4. 相加三项损失加权相加,训练时一起反向传播优化。
    L=Lcls+Lbox+LmaskL = L_{cls} + L_{box} + L_{mask}

应用场景

王老师整理合影只是生活的一角。现实中,自动驾驶、医疗影像、零售机器人都在“整理”自己的照片,选哪种分割方式,取决于要回答的问题是什么。

在自动驾驶感知中,系统需要把道路、车辆、行人从画面中分离。如果只用语义分割,前方并排的两辆车会连成一片“车辆”色块,规划模块很难判断该避让哪一辆。改用实例分割后,每辆车都有独立的掩码和 ID,感知系统可以逐辆跟踪、判断相对距离、规划避让路线。

医疗影像里,肺结节筛查和器官勾画通常是按类别处理的——医生只关心“这片区域是不是结节、范围有多大”,语义分割就足够。但如果临床需要统计“肺里有几个结节、每个分别多大”,就必须对每个结节单独建掩码,这时实例分割登场。

零售与机器人领域也一样。货架上摆着十几瓶同款饮料,机械臂要抓“最上面那一瓶”:检测框只能给一个粗略位置,语义分割分不清两瓶紧挨着的可乐;实例分割输出每个瓶子的独立掩码,机器人才能精准抓取指定商品。相册软件的“人像归类”也是同一逻辑:要把同一个人的照片自动整理到一起,需要实例级的身份区分。

问题问"是什么类别"→语义分割问题问"是哪一个个例"→实例分割\text{问题问"是什么类别"} \rightarrow \text{语义分割}\qquad \text{问题问"是哪一个个例"} \rightarrow \text{实例分割}
这行式子没有复杂计算,却是整个选型决策的灵魂:先确定问题落在哪个层面,再选对应的工具。

选型指南

整理合影之前,先想清楚用途。园长说“统计一下有多少个孩子”,那语义分割刷一遍色就完工;老师说“我要把浩浩的照片挑出来做成长册”,那就必须实例分割。工程选型同理,问题定义决定工具选择。

决策时可以从四个角度逐一检查。第一,任务目标:只需要类别归属,语义分割;需要计数、跟踪或对单个对象独立操作,实例分割。第二,数据与标注成本:语义标注是按类别画区域即可;实例标注要逐对象描边并编号,工作量通常是语义标注的数倍。第三,精度与速度权衡:实例分割结构更重,在边缘设备或实时场景要谨慎评估;轻量语义分割更容易满足帧率要求。第四,混合策略:工程上常先用轻量语义分割快速理解场景,再对关键类别区域运行实例分割,兼顾速度与个体感知。

说到底,两种任务没有高下之分,只取决于你的“合影”要回答什么。如果只是刷色,别用数倍标注成本去做姓名牌;如果需要点名,也别指望统一涂色能说出每个孩子的名字。先想清楚问题,再选工具,就是这篇内容最想传达的一句话。

AI 应用场景

自动驾驶感知

阶段:模型推理与多目标跟踪

解决的问题:传统语义分割只能得到“车辆”的大片色块,并排的两辆车在输出上连成一体,无法判断该避让哪一辆。实例分割为每辆车生成独立掩码与 ID,使感知系统能把“车”这个类别拆成“车 A、车 B”,逐辆跟踪并规划避让路线。

具体案例:某自动驾驶团队的感知模块用 Mask R-CNN 检测前向视野中的车辆实例,再配合卡尔曼跟踪器输出每辆车的速度与航向角,实现在高速汇入场景中安全变道。

医学影像病灶分割

阶段:数据标注与模型训练

解决的问题:医生看 CT 时主要关心“这片区域是不是病灶、边界在哪”,同类区域不需要逐个区分,语义分割以更低的标注成本完成器官与病灶的类别勾画。

具体案例:某肺结节辅助诊断系统用 U-Net 对 CT 切片做语义分割,将“肺结节区域”从背景中分离,再计算区域面积供医生参考;当需要逐结节统计数量时,系统才切换到实例分割。

零售机器人抓取

阶段:部署与实时推理

解决的问题:货架上多瓶同款饮料紧挨着,检测框只能给坐标、语义分割不区分个体,机械臂无法确定“抓哪一瓶”。实例分割输出每件商品的独立掩码,机器人可以按掩码中心点精准抓取指定目标。

具体案例:智能分拣机器人用实例分割识别传送带上的每件商品,机械臂只抓取“编号为 3 的那瓶可乐”,实现柔性订单分拣。

Python 演示

python54 行
"""Simulate the output difference between semantic and instance segmentation."""import numpy as np  def flood_fill(mask, labels, sy, sx, obj_id):    """Four-connected flood fill from (sy, sx)."""    stack = [(sy, sx)]    labels[sy, sx] = obj_id    while stack:        y, x = stack.pop()        for dy, dx in ((-1, 0), (1, 0), (0, -1), (0, 1)):            ny, nx = y + dy, x + dx            if 0 <= ny < mask.shape[0] and 0 <= nx < mask.shape[1]:                if mask[ny, nx] and labels[ny, nx] == 0:                    labels[ny, nx] = obj_id                    stack.append((ny, nx))  def label_instances(binary):    """Label each connected component as an independent instance."""    labels = np.zeros_like(binary)    obj_id = 0    for y in range(binary.shape[0]):        for x in range(binary.shape[1]):            if binary[y, x] and labels[y, x] == 0:                obj_id += 1                flood_fill(binary, labels, y, x, obj_id)    return labels  def main():    # Build a small 12x24 image: three separated rectangles are three persons    img = np.zeros((12, 24), dtype=np.int32)    img[2:9, 2:6] = 255    # person A    img[2:9, 10:14] = 255  # person B    img[2:9, 18:22] = 255  # person C     # Semantic segmentation: any non-background pixel is label 1 (person)    semantic = np.where(img > 0, 1, 0)    # Instance segmentation: each connected component gets its own id    instances = label_instances(img > 0)     print("original image:")    print(img)    print("\nsemantic segmentation output:")    print(semantic)    print("\ninstance segmentation output:")    print(instances)    print("semantic classes:", np.unique(semantic).tolist())    print("instance count:", len(np.unique(instances)) - 1)  if __name__ == "__main__":    main()
目的:用一张由三个不相连矩形组成的“合影”小图,直观展示语义分割把所有“人”像素统一标为 1、实例分割通过连通域标记把三个人分别标成 1/2/3 的过程。
  1. semantic = np.where(img > 0, 1, 0)语义分割只判断“是不是人”,所有非背景像素统一标为 1,三个矩形在输出中共享同一个类别编号。
  2. instances = label_instances(img > 0)实例分割要把每个连通的人形分别编号,相当于给每个独立个体发一张胸牌。
  3. binary[y, x] and labels[y, x] == 0只有当前像素属于“人”且还没被标记过才向四周扩展,确保一个实例不会吞掉另一个实例。
  4. obj_id += 1每发现一个新的连通区域就分配一个新编号,这正是“人 1、人 2、人 3”的由来。

常见误区

误区实例分割输出信息更丰富,能做语义分割的所有事,那直接全用实例分割不就好了?反正“更高级”。

正解两者是不同目标下的工具,不是同一条赛道的不同名次。分类归组的任务用语义分割又快又省;需要区分个体、计数或单独操作对象时才值得用实例分割。盲目上实例分割,意味着更高的标注成本、更慢的推理和更长的调参周期。

为何常见:实例分割的输出看起来包含语义信息,容易让人误以为它是“语义分割的超集”,忽略了工程成本和任务匹配度。

误区把语义分割输出的同类像素做连通域分析,数一下有几十个连通块,不就能知道图里有多少个苹果吗?

正解语义分割的训练目标里根本没有“实例归属”这一项。两颗紧挨着的苹果在标签图上会连成一个连通区域,计数自然不准;即便碰巧分开,也只是巧合。实例分割专门建模实例归属,计数能力来自实例级别的监督,不能用语义输出硬猜。

为何常见:连通域计数在物体间隔足够大的简单场景下偶尔有效,让初学者误以为可以白嫖实例分割的能力。

误区检测框已经很准了,把框稍微缩一缩不就是实例分割了吗?两者应该差不多。

正解检测只输出矩形框,框内包含大量背景像素,遇到遮挡或需要精细轮廓的场景不够用;实例分割输出逐像素掩码,把框内的背景精确剔除。Mask R-CNN 确实脱胎于 Faster R-CNN 检测框架,但掩码分支带来了本质不同的输出粒度。

为何常见:实例分割模型常以检测算法为骨架,看起来只是“检测加了个分支”,容易让人忽略掩码分支在数据和损失函数上的全新要求。

误区都是给像素涂上类别颜色,标注工具里也都是画多边形,区别不大。

正解语义标注只需对每个类别画区域;实例标注必须把同一类别下的每个对象分别描边并逐一编号(person_1、person_2…)。一个场景里若有 20 个人,实例标注就要画 20 个独立多边形并维护编号,标注成本往往是语义标注的数倍。

为何常见:在标注工具界面上两者都表现为“刷色/画框”,不亲自做一批数据很难体会到实例级编号带来的管理成本。

误区要么整个任务用语义分割,要么整个任务用实例分割,两者互斥。

正解工程上可以级联使用——先用轻量语义分割快速理解整体场景,再只对感兴趣区域(如车辆、行人)运行实例分割获取个体信息;全景分割方法甚至把语义与实例统一在同一个框架里输出。

为何常见:论文为了对比清晰常把两种任务分开讲解,学习者容易把“概念上的区别”误解为“使用上的互斥”。

面试题

Q1. 语义分割的核心任务是什么?

单选题 · easy

  • A.给整张图像打一个类别标签
  • B.用矩形框标出物体位置
  • C.为每个像素分配一个类别标签← 正确答案
  • D.把不同人的脸部区域扣除

答案:C。选项 A 是图像分类,B 是目标检测,D 是人脸相关任务。语义分割要对每个像素给出类别标签,就像给照片里每个像素发一张“类别胸牌”,故选 C。

Q2. 语义分割与实例分割最关键的区别是?

单选题 · easy

  • A.语义分割更快、实例分割更慢
  • B.实例分割能区分同类别的不同个体← 正确答案
  • C.语义分割输出的是灰度图像
  • D.实例分割不需要像素级标注

答案:B。核心区别在“个体”粒度:语义分割把三只羊都标成“羊”,实例分割还能分出羊 1、羊 2、羊 3。速度差异是结果而非定义,语义分割不一定输出灰度图,实例分割同样需要像素级标注。

Q3. mIoU 指标衡量的是什么?

单选题 · mid

  • A.预测框与真实框的重叠程度
  • B.预测掩码与真实掩码各类平均交并比← 正确答案
  • C.模型训练时迭代的总轮数
  • D.预测结果中前景像素的占比

答案:B。mIoU 先按类别计算预测像素集合与真实像素集合的交并比,再取平均,相当于检查“涂色贴合度”。A 是检测框的匹配方式,C 是训练轮次,D 是前景占比,都与 mIoU 无关。

Q4. 场景中有三只羊站在一起,语义分割会把它们标成什么?

单选题 · mid

  • A.输出羊1、羊2、羊3三个独立类别
  • B.所有羊像素归为同一羊类别← 正确答案
  • C.用三个框框住每只羊的位置
  • D.这三只羊会被当作背景滤除

答案:B。语义分割的类别集合是预先定义好的,“羊1、羊2”不是类别,所有羊像素共享同一个“羊”标签。C 是检测输出,D 是错误结果。三只羊彼此不被区分,这正是语义分割与实例分割的分水岭。

Q5. Mask R-CNN 解决的是哪个任务?

单选题 · mid

  • A.图像分类
  • B.语义分割
  • C.实例分割← 正确答案
  • D.目标跟踪

答案:C。Mask R-CNN 输出候选框、类别和逐像素掩码,是实例分割的代表模型。图像分类输出图级标签,语义分割不区分个体,目标跟踪是时序任务,均不符合。

Q6. 关于 FCN(全卷积网络),下列说法正确的是?

单选题 · hard

  • A.将全连接层换成卷积层,实现像素级预测← 正确答案
  • B.它首次在 ImageNet 上取得图像分类冠军
  • C.它只能处理固定尺寸的方形输入
  • D.它输出的是一组物体候选框坐标

答案:A。FCN 把分类网络末端的全连接层替换为卷积层,使网络能接受任意尺寸输入并输出逐像素得分图。B 是 AlexNet 的贡献,C 与全卷积的设计初衷相反,D 是检测任务的输出。

Q7. 一张照片里有多个互相靠近的红色气球,要求把每个气球单独抠出来,最合适的方法是?

单选题 · extreme

  • A.语义分割
  • B.实例分割← 正确答案
  • C.图像分类
  • D.点云分析

答案:B。气球颜色相同且互相靠近,语义分割会把它们连成一片“气球”区域;图像分类只能给整图贴标签;点云分析针对三维数据。实例分割能为每个气球输出独立掩码,是逐个体抠图的正解。

Q8. 以下哪些属于像素级分割任务?

多选题 · easy

  • A.语义分割← 正确答案
  • B.实例分割← 正确答案
  • C.目标检测
  • D.全景分割← 正确答案

答案:ABD。语义分割、实例分割、全景分割都以像素为单位输出标签或掩码;目标检测输出矩形框,属于框级任务,不是像素级分割。

Q9. 关于实例分割与语义分割的关系,正确的有?

多选题 · mid

  • A.两者都进行像素级标签预测← 正确答案
  • B.实例分割预测结果自带类别与独立掩码← 正确答案
  • C.语义分割通常能直接数出同类物体数量
  • D.实例分割模型往往比语义分割更重更慢← 正确答案

答案:ABD。A 正确,两者逐像素输出;B 正确,实例掩码带类别信息;D 正确,实例分割结构更复杂。C 错误,语义分割缺少实例归属建模,无法可靠计数。

Q10. 在自动驾驶场景中,实例分割比语义分割更有优势的场景包括?

多选题 · hard

  • A.区分并行的两辆车并分别规划避让← 正确答案
  • B.将道路天空树木整体区域标识出来
  • C.跟踪前车并判断与本车的相对位置← 正确答案
  • D.对路面上的车道线进行实例式检测

答案:AC。A 需要区分车辆个体,实例分割输出独立掩码;C 独立掩码有利于逐车跟踪。B 中道路、天空、树木按类别划分即可,语义分割足够;D 车道线通常用语义分割或专用检测器,实例分割不是最优选择。