以下是对图像分类与图像分割两大计算机视觉核心任务的开源算法模型及平台的全面剖析,涵盖主流方法、代表性模型、开源框架、性能对比、适用场景及发展趋势。
一、任务定义简述
| 任务 | 目标 | 输出形式 |
|---|---|---|
| 图像分类(Image Classification) | 判断整张图像属于哪个类别 | 单个类别标签(如“猫”) |
| 图像分割(Image Segmentation) | 为图像中每个像素分配语义标签 | 像素级掩码(mask),可细分为: • 语义分割 • 实例分割 • 全景分割 |
二、图像分类:主流开源模型与演进
1.经典 CNN 架构
| 模型 | 年份 | 特点 | 开源实现 |
|---|---|---|---|
| AlexNet | 2012 | 首个深度 CNN,引爆深度学习 | PyTorch/TensorFlow |
| VGG | 2014 | 结构规整,3×3 卷积堆叠 | TorchVision, timm |
| GoogLeNet / Inception | 2014 | 多尺度卷积并行(Inception 模块) | TF Model Zoo |
| ResNet | 2015 | 残差连接,解决梯度消失 | TorchVision, timm, MMRazor |
| DenseNet | 2017 | 密集连接,特征复用 | timm |
2.轻量化模型(适合移动端/边缘设备)
| 模型 | 特点 |
|---|---|
| MobileNetV1/V2/V3 | 深度可分离卷积,参数少 |
| ShuffleNetV1/V2 | 通道混洗 + 分组卷积 |
| EfficientNet | 复合缩放(depth/width/resolution) |
| GhostNet | 用廉价操作生成“幻影”特征图 |
3.Transformer 时代(Vision Transformer)
| 模型 | 核心思想 | 优势 |
|---|---|---|
| ViT(Vision Transformer) | 将图像分块输入标准 Transformer | 全局建模能力强 |
| Swin Transformer | 局部窗口注意力 + 移位机制 | 可用于密集预测任务(如分割) |
| ConvNeXt | 将 ResNet 现代化(LN、GELU、大 kernel) | CNN 与 Transformer 性能持平甚至超越 |
| DeiT | 数据高效训练 ViT(蒸馏策略) | 减少对大数据依赖 |
4.混合架构 & 最新趋势
- CoAtNet(Google):CNN + Transformer 混合
- MobileViT:轻量级 ViT,适合移动端
- RepVGG:训练-推理结构解耦,高速推理
三、图像分割:主流开源模型与范式演进
1.语义分割模型
| 模型 | 年份 | 核心技术 | 特点 |
|---|---|---|---|
| FCN | 2015 | 全卷积网络 | 首个端到端像素预测 |
| U-Net | 2015 | 编码器-解码器 + 跳跃连接 | 医学图像分割基石 |
| DeepLab 系列 | 2016–2018 | 空洞卷积 + ASPP | 边界精细,感受野大 |
| PSPNet | 2017 | 金字塔池化 | 多尺度上下文融合 |
| OCRNet | 2019 | 对象上下文表示 | 显式建模物体区域 |
| SegFormer | 2021 | 轻量 Transformer + MLP 解码器 | 高效、无需位置编码 |
| Mask2Former | 2022 | Mask 分类范式 + Transformer | 统一语义/实例/全景分割 |
2.实例分割模型
| 模型 | 范式 | 说明 |
|---|---|---|
| Mask R-CNN | Two-stage | 在 Faster R-CNN 上加 mask 分支 |
| YOLACT / YOLACT++ | One-stage | 实时实例分割 |
| SOLO / SOLOv2 | Direct Instance Segmentation | 将实例分割视为位置+类别预测 |
| CondInst | 动态卷积 | 条件实例分割,更灵活 |
3.全景分割模型
- Panoptic FPN(Detectron2)
- Mask2Former(当前 SOTA,统一框架)
4.通用/零样本分割
- SAM(Segment Anything Model)
- Meta 提出,支持点/框/文本提示分割任意物体
- 不属于传统语义分割,但极大拓展了分割边界
四、主流开源平台全面对比
| 平台 | 所属机构 | 支持任务 | 框架 | 模型数量 | 中文支持 | 特色 |
|---|---|---|---|---|---|---|
| OpenMMLab (MMClassification + MMSegmentation) | OpenMMLab / 上海 AI Lab | 分类 + 全面分割 | PyTorch | ⭐⭐⭐⭐⭐(100+) | ✅ 强 | 模块化设计、SOTA 覆盖全、工业级 |
| Detectron2 | Meta (FAIR) | 检测 + 实例/全景分割 | PyTorch | ⭐⭐⭐⭐ | ❌ 弱 | Mask R-CNN、Mask2Former 官方实现 |
| TorchVision | PyTorch 官方 | 基础分类 + 简单分割 | PyTorch | ⭐⭐ | ❌ | 轻量、教学友好 |
| timm (PyTorch Image Models) | Ross Wightman | 分类为主 | PyTorch | ⭐⭐⭐⭐⭐(1000+ 模型) | ❌ | 最全分类模型库,支持训练 |
| PaddleClas / PaddleSeg | 百度飞桨 | 分类 + 分割 | PaddlePaddle | ⭐⭐⭐⭐ | ✅ 强 | 国产生态、部署工具链完善 |
| TensorFlow Models | 分类 + DeepLab 等 | TensorFlow | ⭐⭐⭐ | ⚠️ 中等 | TF 生态用户首选 | |
| Ultralytics | 社区 | YOLO 分类/分割 | PyTorch | ⭐⭐ | ✅ | YOLOv8 分类 + 实例分割,极简 API |
🔔OpenMMLab 是目前唯一同时在分类(MMClassification)和分割(MMSegmentation)上都达到 SOTA 覆盖广度与工程成熟度的开源体系。
五、典型模型性能参考(以 ImageNet 分类 & Cityscapes 分割为例)
图像分类(ImageNet-1k Top-1 Acc)
| 模型 | 参数量 | Accuracy (%) | 推理速度(Tesla V100) |
|---|---|---|---|
| ResNet-50 | 25M | 76.0 | 快 |
| EfficientNet-B0 | 5.3M | 77.1 | 快 |
| ViT-Base | 86M | 84.2 | 中 |
| Swin-Tiny | 28M | 81.3 | 中 |
| ConvNeXt-Tiny | 28M | 82.1 | 快 |
语义分割(Cityscapes mIoU)
| 模型 | Backbone | mIoU (%) | FPS(RTX 3090) |
|---|---|---|---|
| DeepLabV3+ | ResNet-101 | 79.8 | ~15 |
| U-Net | — | ~75(医学数据高) | >50 |
| SegFormer-B5 | MiT-B5 | 84.0 | ~25 |
| Mask2Former | Swin-L | 86.2 | ~8 |
| BiSeNetV2 | 自研轻量 | 73.3 | >100 |
注:精度与速度需权衡,实时场景选轻量模型,科研/高精度选 Transformer。
六、选型建议
🎯 按场景推荐
| 场景 | 推荐方案 |
|---|---|
| 学术研究 / 追求 SOTA | OpenMMLab(MM系列) + Mask2Former / ConvNeXt |
| 医学图像分割 | U-Net 家族(UNet++, Attention U-Net)→ MMSegmentation 或 MONAI |
| 自动驾驶 / 实时分割 | BiSeNetV2、DDRNet、YOLOv8-Seg → Ultralytics 或 MMSeg |
| 移动端部署 | MobileNet + DeepLabV3 Lite / PP-LiteSeg(PaddleSeg) |
| 快速原型开发 | TorchVision(分类) + Detectron2(分割) |
| 中文项目 / 国内部署 | PaddleClas + PaddleSeg(配套 Paddle Lite / TRT) |
| 探索通用分割能力 | SAM + Zero-shot Prompting(配合 Grounded-SAM 等扩展) |
七、未来趋势
- 统一多任务模型:如 Mask2Former 同时处理分类、检测、分割。
- 视觉大模型(VLM)驱动分割:CLIP + SAM + LLM 实现开放词汇分割(如 SEEM、LISA)。
- 高效训练与推理:模型压缩(蒸馏、剪枝)、硬件感知设计(如 RepLKNet)。
- 3D 与视频分割兴起:OpenMMLab 已推出 MMTracking、MMDetection3D。
八、资源链接
- OpenMMLab: https://openmmlab.com
- MMClassification: https://github.com/open-mmlab/mmclassification
- MMSegmentation: https://github.com/open-mmlab/mmsegmentation
- Detectron2: https://github.com/facebookresearch/detectron2
- timm: https://github.com/huggingface/pytorch-image-models
- PaddleSeg: https://github.com/PaddlePaddle/PaddleSeg
- SAM: https://github.com/facebookresearch/segment-anything
如你有具体需求(例如:“我要在无人机上做农田分割”或“需要支持 ONNX 导出的轻量分类模型”),欢迎进一步说明,我可提供定制化方案!