CV任务类型与模型架构
一、CV竞赛任务类型总览
| 任务类型 | 输入 | 输出 | 典型比赛 | 评价指标 |
|---|---|---|---|---|
| 图像分类 | 图像 | 类别标签 | 木薯叶疾病识别、外星信号搜索 | Accuracy、AUC |
| 目标检测 | 图像 | 边界框+类别 | 小麦穗检测、海星检测 | mAP、IoU |
| 语义分割 | 图像 | 像素级类别 | 入侵肾脏(肾小球分割) | IoU、Dice |
| 实例分割 | 图像 | 像素级类别+实例区分 | Open Images Instance Segmentation | mAP |
| 图像检索 | 查询图像 | 相似图像排序 | DIGX | mAP@K |
任务识别与模型选择决策
| 观察到的特征 | 推断的任务类型 | 首选模型族 |
|---|---|---|
| 输出是离散类别 | 图像分类 | ResNet/EfficientNet/ViT |
| 输出是矩形框+类别 | 目标检测 | Faster R-CNN/YOLOv5/EfficientDet |
| 输出是像素级掩码 | 语义分割 | U-Net/DeepLab/Mask R-CNN |
| 输出是框+像素掩码 | 实例分割 | Mask R-CNN/Cascade R-CNN |
| 输出是相似度排序 | 图像检索 | 孪生网络/Triple Network |
非典型CV数据的处理
| 场景 | 处理方式 | 案例 |
|---|---|---|
| 信号频谱图 | 直接当作图像输入CNN | 外星信号搜索(频谱图→2D矩阵→图像分类) |
| 医学TIF大图 | 裁剪为小图后训练,预测时拼接 | 入侵肾脏(几万像素TIF→1024x1024切片) |
| 表情识别 | 先人脸检测裁剪,再分类 | 神经网络表情识别(face_recognition→CNN) |
二、CNN基础架构演进
卷积核心概念
| 概念 | 说明 | 与全连接的区别 |
|---|---|---|
| 局部感受野 | 每个神经元只关注局部区域 | 全连接假设所有像素相关 |
| 权重共享 | 同一卷积核在整张图上滑动 | 全连接每对连接独立参数 |
| 步长(Stride) | 卷积核每次移动的像素数 | 步长>1可降维 |
| 填充(Padding) | 输入周围补零保持尺寸 | SAME填充保持尺寸,VALID不填充 |
| 池化(Pooling) | 降维+平移不变性 | Max Pooling/Avg Pooling |
经典模型演进路线
| 模型 | 核心创新 | 参数量级 | 竞赛适用性 |
|---|---|---|---|
| AlexNet | ReLU激活、Dropout、GPU训练 | 60M | 已过时 |
| VGG | 小卷积核(3x3)堆叠替代大卷积核 | 138M | 特征提取backbone |
| ResNet | 残差连接解决梯度消失 | 25M(ResNet50) | 通用baseline首选 |
| DenseNet | 密集连接,特征复用 | 8M(DenseNet121) | 显存受限时 |
| EfficientNet | 复合缩放(深度+宽度+分辨率) | 5M~66M | 竞赛主力,性价比最高 |
| ViT | Transformer替代CNN,Patch Embedding | 86M | 数据量大时有效 |
| Swin Transformer | 层级式窗口注意力 | 88M | 检测/分割backbone |
模型选择实战建议
| 场景 | 推荐模型 | 理由 |
|---|---|---|
| 首次baseline | ResNet18/34 | 快速验证流程,训练快 |
| 分类冲分 | EfficientNet-B3~B7 | 精度与速度的最佳平衡 |
| 检测baseline | EfficientDet-D0~D5 | 检测专用,自带FPN |
| 检测冲分 | YOLOv5 + EfficientDet双路 | 跨架构融合收益大 |
| 分割baseline | U-Net + ResNet34 backbone | 医学分割经典组合 |
| 分割冲分 | U-Net + EfficientNet backbone + Attention | 更强特征提取+注意力 |
| 数据量极大(>50K) | ViT/Swin Transformer | Transformer需要大数据量 |
| 数据量小(<5K) | ResNet/EfficientNet | CNN的归纳偏置更适合小数据 |
新一代模型架构
| 模型 | 核心改进 | 参数量级 | 竞赛适用性 |
|---|---|---|---|
| ConvNeXt | 纯CNN架构借鉴ViT设计(大卷积核7x7、LayerNorm、GELU) | 28M~350M | 分类/检测/分割通用,ViT的CNN替代 |
| EfficientNetV2 | 渐进式训练 + Fused-MBConv + 更小缩放 | 21M~120M | 比V1训练快5~11倍,竞赛首选 |
| Swin Transformer V2 | 后归一化 + 缩放余弦注意力 + 连续位置偏置 | 88M~197M | 更稳定的训练,检测/分割backbone |
| CoAtNet | CNN+Transformer混合,浅层卷积深层Transformer | 25M~240M | 兼顾CNN归纳偏置和Transformer全局建模 |
| ConvNeXt V2 | 全局响应归一化(GRN),MAE预训练 | 28M~350M | 自监督预训练+微调范式 |
模型选型升级建议
| 场景 | 传统选择 | 升级选择 | 理由 |
|---|---|---|---|
| 分类冲分 | EfficientNet-B5 | EfficientNetV2-M/L | 更快训练,同等精度 |
| 分类冲分 | ViT | ConvNeXt | CNN归纳偏置,小数据更稳定 |
| 检测backbone | ResNet50 | ConvNeXt-T/S | 更强特征提取 |
| 分割backbone | ResNet34 | Swin Transformer | 层级特征更适合分割 |
| 快速验证 | ResNet18 | EfficientNetV2-S | 更快收敛 |
三、目标检测模型详解
两阶段检测器
| 模型 | 流程 | 优势 | 劣势 |
|---|---|---|---|
| Faster R-CNN | RPN生成候选框→RoI Pooling→分类+回归 | 精度高 | 速度慢 |
| Cascade R-CNN | 多级IoU阈值级联精炼 | 对高质量框更准 | 更慢 |
| Mask R-CNN | Faster R-CNN + 分割分支 | 同时做检测和分割 | 显存消耗大 |
单阶段检测器
| 模型 | 流程 | 优势 | 劣势 |
|---|---|---|---|
| YOLOv5 | Backbone→Neck→Head直接预测 | 速度快,社区活跃 | 小目标检测弱 |
| EfficientDet | EfficientNet + BiFPN + Head | 精度效率平衡好 | 超参敏感 |
| RetinaNet | ResNet + FPN + Focal Loss | 解决正负样本不均衡 | 中等速度 |
检测模型关键组件
| 组件 | 作用 | 常见选择 |
|---|---|---|
| Backbone | 特征提取 | ResNet/EfficientNet/Swin Transformer |
| Neck | 多尺度特征融合 | FPN/BiFPN/PANet |
| Head | 预测框+类别 | 分类分支+回归分支 |
| Anchor | 候选框先验 | 预设Anchor/Anchor-Free |
FPN(特征金字塔网络)
| 维度 | 说明 |
|---|---|
| 问题 | 单一尺度特征无法同时检测大小目标 |
| 方案 | 自顶向下融合多尺度特征 |
| 流程 | 深层低分辨率特征上采样→与浅层高分辨率特征相加 |
| 效果 | 小目标检测显著提升 |
| 变体 | BiFPN(加权融合)、PANet(双向传播) |
四、语义分割模型详解
U-Net架构
| 维度 | 说明 |
|---|---|
| 编码器 | 逐步下采样提取高层语义特征 |
| 解码器 | 逐步上采样恢复空间分辨率 |
| 跳跃连接 | 将编码器特征与解码器对应层拼接,保留细节信息 |
| 输入输出 | 输入HxWxN,输出HxWxC(C=类别数) |
| 二分类简化 | 肾小球分割中C=1,即前景/背景二分类 |
U-Net改进方向
| 改进点 | 方法 | 效果 |
|---|---|---|
| Backbone替换 | ResNet34→EfficientNet | 更强特征提取 |
| 注意力机制 | Attention Gate/SE Block/CBAM | 聚焦关键区域 |
| 多尺度 | ASPP/SPP/PPM | 捕获不同尺度上下文 |
| 深度监督 | 中间层也计算Loss | 加速收敛,提升梯度流 |
| 残差连接 | 编码器-解码器间加残差 | 缓解梯度消失 |
分割模型选型
| 场景 | 推荐模型 | 理由 |
|---|---|---|
| 医学图像 | U-Net + ResNet/EfficientNet | 数据量小,U-Net跳跃连接保留细节 |
| 自然场景 | DeepLabV3+ | ASPP处理多尺度 |
| 实例级需求 | Mask R-CNN / Cascade Mask R-CNN | 同时做检测和分割 |
| 实时需求 | BiSeNet / Fast-SCNN | 速度优先 |
五、图像分类模型详解
EfficientNet核心思想
| 维度 | 说明 |
|---|---|
| 复合缩放 | 同时缩放深度(d)、宽度(w)、分辨率(r) |
| 缩放公式 | d = alpha^phi, w = beta^phi, r = gamma^phi, 约束 alphabeta^2gamma^2 ≈ 2 |
| phi值 | B0(phi=0)到B7(phi=7),越大越强越慢 |
| 竞赛建议 | B3~B5性价比最高,B7显存消耗大 |
Vision Transformer (ViT)
| 维度 | 说明 |
|---|---|
| 核心思想 | 将图像切为Patch,当作序列输入Transformer |
| Patch大小 | 典型16x16,越小计算量越大 |
| 位置编码 | 可学习位置嵌入,保留空间信息 |
| 数据需求 | 需要大数据量(>50K)才能超越CNN |
| 竞赛经验 | 小数据集上效果不如EfficientNet,大数据集上可尝试 |
| Swin改进 | 层级式窗口注意力,更适合检测/分割 |
六、CV竞赛通用框架选择
| 框架 | 适用任务 | 优势 | 劣势 |
|---|---|---|---|
| MMDetection | 检测/分割 | 模型齐全,社区活跃 | 学习曲线陡 |
| Detectron2 | 检测/分割 | Facebook出品,质量高 | 文档较少 |
| YOLOv5官方 | 检测 | 易上手,训练快 | 定制化困难 |
| PyTorch + timm | 分类 | 灵活,预训练模型丰富 | 需自己写训练循环 |
| Albumentations | 数据增强 | 增强方法全面,速度快 | 仅做增强 |
七、赛题类型与Baseline模型速查
| 赛题 | 类型 | Baseline模型 | 冲分模型 |
|---|---|---|---|
| 木薯叶疾病识别 | 图像分类(5类) | EfficientNet-B3 | EfficientNet-B5 + ViT融合 |
| 外星信号搜索 | 图像分类(二分类) | ResNet18 | EfficientNet-B0 + Swin Transformer |
| 小麦穗检测 | 目标检测 | EfficientDet-D5 | EfficientDet + YOLOv5 + Faster R-CNN |
| 海星检测 | 目标检测 | Faster R-CNN | EfficientDet + Cascade R-CNN |
| 入侵肾脏 | 语义分割(二分类) | U-Net + ResNet34 | U-Net + EfficientNet + Attention |