01
60 秒回答模板
图像特征处理一般不会只说某一个网络,而是按任务来选。分类或通用表征可以用 ResNet、EfficientNet、ConvNeXt、ViT 这类 backbone;如果强调移动端实时性,会优先考虑 MobileNet、ShuffleNet、EfficientNet-Lite 这类轻量网络;如果是检测任务,通常会在 backbone 后接 FPN,再配 YOLO、Faster R-CNN、RetinaNet 等检测头;如果是实例分割,可以用 Mask R-CNN 或者基于 Transformer 的分割模型;如果是图文检索、开放词表识别或语义对齐,可以用 CLIP 这类多模态编码器。选择时要综合准确率、延迟、显存、数据量、是否需要多尺度、是否需要全局上下文以及部署端算力。实际工程里通常从预训练模型开始,先冻结或部分冻结 backbone 做迁移学习,再逐步 fine-tune,并通过数据增强、FPN、多尺度训练、蒸馏、量化和剪枝平衡效果与性能。
考点 先按任务定义特征
主线 CNN 骨干网络选择
易错点 只回答用 CNN 而不区分分类、检索、检测、分割、OC…
02
深入解析
01 先按任务定义特征
图像特征处理的第一步不是直接选网络,而是明确需要什么特征。分类任务需要区分整体类别,重点是全局语义;检索任务需要稳定的向量表征,重点是相似度空间;检测任务需要定位和类别,重点是多尺度空间特征;分割任务需要像素级或区域级特征,重点是细粒度边界和上下文;OCR 需要文字区域、序列建模和语言先验。
02 CNN 骨干网络选择
CNN 仍然是图像特征提取的经典基础。ResNet 通过残差连接解决深层网络训练困难,是通用、稳定、易迁移的选择;EfficientNet 通过复合缩放同时平衡深度、宽度和分辨率,通常在参数量和准确率之间表现较好;MobileNet 使用深度可分离卷积,适合移动端和实时场景;ConvNeXt 吸收 Transformer 时代的一些设计经验,在保持卷积归纳偏置的同时提升表征能力。
03 Transformer 类网络
ViT 将图像切成 patch 后用自注意力建模全局关系,适合大数据预训练和需要全局上下文的场景,但对数据规模、算力和训练策略更敏感。Swin Transformer 引入窗口注意力和层级结构,更接近 CNN 的多尺度特征体系,在检测和分割中更容易接 FPN 或解码器。相比 CNN,Transformer 更擅长长程依赖和全局关系建模;相比 Transformer,CNN 在小数据、低算力、边缘部署中通常更稳。
04 检测与分割头
如果任务不是单纯分类,backbone 后面通常还要接任务头。目标检测可以使用 YOLO 系列做实时检测,也可以用 Faster R-CNN 做两阶段高精度检测;FPN 常用于融合不同层级特征,让模型同时处理大目标和小目标;实例分割可以使用 Mask R-CNN,在检测框基础上预测 mask;语义分割可以使用 U-Net、DeepLab、SegFormer 等结构。
05 多模态特征编码
如果图像特征需要和文本、商品描述、搜索词、类目名或自然语言标签对齐,CLIP 类多模态编码器会更合适。CLIP 通过图像编码器和文本编码器把两种模态映射到同一向量空间,适合图文检索、以文搜图、开放类别识别、零样本分类和语义召回。它的优势是语义泛化能力强,缺点是领域细节可能不足,实际落地时常需要领域数据微调。
06 预训练与微调
现代图像特征处理通常不从零训练,而是使用 ImageNet、自监督学习或多模态大规模预训练模型作为初始化。数据少时可以冻结前几层,只训练任务头;数据足够时可以端到端 fine-tune;领域差异大时,需要逐步解冻、降低学习率、做数据增强,并关注过拟合。对于检索类任务,除了分类损失,还常用 triplet loss、contrastive loss、ArcFace 等方式优化嵌入空间。
07 延迟与精度权衡
工程选择不能只看准确率。服务端离线特征抽取可以选择较大的 ViT、Swin、ConvNeXt 或 CLIP;在线高并发场景要关注 QPS、显存和批处理效率;移动端或嵌入式设备更适合 MobileNet、EfficientNet-Lite、轻量 YOLO,并配合量化、剪枝、蒸馏、TensorRT 或端侧推理框架。成熟回答应体现模型越大不一定越好,正确选择取决于任务指标和资源约束。
03
易错点
- 只回答用 CNN 而不区分分类、检索、检测、分割、OCR 和部署场景。
- 把 ResNet、YOLO、FPN、Mask R-CNN 混在同一层次讨论,没有说明 backbone 和 task head 的区别。
- 忽略多尺度特征,导致无法解释小目标检测、边界分割或 OCR 局部细节为什么需要特征融合。
- 只追求大模型准确率,不讨论延迟、显存、吞吐、模型体积和端侧部署约束。
- 没有提到预训练和 fine-tuning,给人一种会从零训练所有模型的印象。
- 把 Transformer 说成一定优于 CNN,忽略数据规模、算力成本和工程稳定性。
- 检索任务只说分类网络,不提 embedding、对比学习、向量归一化和相似度空间。
04
面试官追问
如果只是做图像分类,你会选什么网络?
可以先用 ResNet 或 EfficientNet 做 baseline。ResNet 稳定、资料多、调参成本低;EfficientNet 在参数量和准确率之间更优。如果数据量很大、算力充足,也可以尝试 ViT 或 ConvNeXt。小模型部署则会考虑 MobileNet 或 EfficientNet-Lite。
检测任务为什么常用 FPN?
因为检测任务需要同时识别不同尺度的目标。深层特征语义强但分辨率低,浅层特征细节多但语义弱。FPN 把不同层级的特征融合起来,让模型既能识别大目标,也能提升小目标和局部区域的检测效果。
ViT 和 CNN 相比有什么优缺点?
ViT 的优势是全局建模能力强,适合大规模预训练和复杂语义关系;缺点是对数据量、训练策略和算力更敏感。CNN 有局部性和平移不变性等归纳偏置,在小数据和低算力场景更稳,推理也通常更容易优化。
图像检索适合用什么特征网络?
图像检索可以用 ResNet、EfficientNet、ViT 或 CLIP 提取 embedding。如果是普通视觉相似度,可以用 CNN 或 ViT 加度量学习损失;如果需要语义检索或图文对齐,CLIP 类模型更合适。实际还要配合向量归一化、难负样本训练和向量索引。
边缘端部署怎么选网络?
边缘端优先选择轻量网络,例如 MobileNet、ShuffleNet、EfficientNet-Lite 或轻量 YOLO。还要考虑输入分辨率、算子是否被硬件加速、模型大小、内存占用和功耗。常见优化包括量化、剪枝、蒸馏、算子融合和 TensorRT 或端侧推理加速。