图像分割到底在分什么——从像素到语义,这活儿没那么神秘

发布时间:2026/7/27 14:02:50
图像分割到底在分什么——从像素到语义,这活儿没那么神秘 前两天组里来了个实习生抱着键盘怯生生问我师兄图像分割和图像分类到底有什么区别不都是让机器看图吗我盯着他看了三秒钟然后把手里那杯美式放下——这问题问得既蠢又深刻。蠢在都是看图这个类比太粗糙了深刻在他触及了计算机视觉最底层的逻辑分野分类是回答图里有什么分割是回答什么在图里的哪里。图像分割的核心任务说白了就一句话给每个像素打标签。你有一张图几百万个像素点每个像素你都要告诉机器这是人这是车这是路这是天。这事儿听着简单做起来能把你整崩溃——一张1080p的图有两百万个像素你要标注员一个一个点去标标一张图的时间够他刷三小时抖音。Cityscapes数据集里一张精细标注的街景图标注员要花几个小时才能完成。这就是分割跟分类最本质的区别分类只要一个标签分割要几百万个标签。分割分三种千万别搞混了新人最容易犯的错误就是把语义分割、实例分割、全景分割混为一谈。我整理了一个粗暴但管用的区分方式语义分割——同一类东西全部涂成一个颜色。图里有三条狗全涂成狗的红色不分彼此。你要的是哪些像素属于狗这个区域不用管这是狗1还是狗2。实例分割——同一类东西每个个体单独标出来。三条狗分别涂成红、蓝、绿每条狗都有自己的ID。你要的是每个独立物体的精确轮廓。全景分割——把前两者合在一起。可数的物体人、车、狗做实例分割不可数的stuff天空、草地、道路做语义分割最后合并输出。这是分割领域的大一统目标但实现起来两边互相打架——语义分支想把所有天空标成天空实例分支想把每朵云单独标出来合并的时候冲突一堆。在实际项目中三种任务的选择完全取决于你的业务需求。做自动驾驶的路面检测语义分割就够了——你只需要知道哪些像素是路不需要区分这条路是路1还是路2。做细胞生物学分析你必须用实例分割——每个细胞单独计数、单独追踪。做室内机器人导航全景分割才有意义——机器人既要避开椅子这个实例物体也要知道地面这个stuff区域可以通行。分割的祖宗们现在回头看都很糙在深度学习统治之前图像分割靠的是传统图像处理那一套阈值分割、区域生长、边缘检测、分水岭算法。这些方法在简单场景下能用但遇到复杂背景、光照变化、物体遮挡基本就废了。我记得刚入行那会儿还用过分水岭算法分割细胞图像参数调了三天换个显微镜拍的照片又不灵了——那种无力感至今记忆犹新。2014年Long等人提出了FCN全卷积网络第一次把端到端的深度学习用到了像素级预测上。这东西的意义怎么强调都不为过——它证明了卷积网络可以用来做逐像素分类为后面所有分割模型铺了路。但FCN的粗糙也是出了名的上采样出来的结果边缘模糊得跟狗啃似的后来U-Net用跳层连接才把这个问题缓解了一些。分割为什么比检测难——一个被严重低估的问题我经常跟人说检测是框出物体分割是抠出物体。检测只要画个矩形框哪怕框得歪了一点IoU掉得也有限。分割要求你沿着物体的每一条边缘、每一个凹陷精确地划分像素——边界上差一个像素在医学场景里可能就是肿瘤切干净了和肿瘤没切干净的区别。而且分割的输出维度比检测高得多。检测输出的是几个框的坐标4个数值×N个框分割输出的是跟输入图像一样大的标签图H×W个数值。这意味着分割任务的输出空间巨大模型要学的映射关系比检测复杂得多。还有一个容易被忽略的问题——分割的标注成本太高了。标注一个检测框只要几秒钟标注一个精细的分割掩膜可能要几分钟到几十分钟。这就是为什么弱监督分割、半监督分割这几年这么火——大家实在标不起了。分割的评价指标一个比一个坑分类看准确率就够了分割的评价指标那叫一个五花八门。IoUIntersection over Union是最常用的——预测区域和真实区域的交集除以并集。取值范围0到1越接近1越好。这个指标简单直观但对小物体极其不友好——一个小物体如果预测偏了几个像素IoU可能直接从0.8掉到0.2。Dice系数在医学分割里用得特别多跟IoU是近亲。它等于2×交集/(预测面积真实面积)。Dice对小物体的惩罚比IoU温和一些所以医学领域更喜欢用。边界指标Hausdorff距离、平均表面距离专门评估分割边界的精度。在需要精确定位边界的场景比如手术规划里光看Dice是不够的——Dice可能很高但边界差了5个像素这在临床上可能就是能用和不能用的区别。我做项目的时候通常同时看三四个指标——mIoU看整体、Dice看小物体、HD95看边界。任何一个指标异常都得回头查原因不能只看一个数字就下结论。好了第一篇先把图像分割到底是什么这个框架搭起来了。后面七篇咱们挨个深入——从FCN到U-Net到Transformer到SAM2从医学到遥感到自动驾驶从损失函数到评价指标到工程部署。这活儿水很深一篇一篇来。