视觉模型全景:从 CNN 到多模态大模型 视觉模型全景图视觉模型已从单一的分类器演化为完整的感知—理解—生成体系CNN 骨架 → Transformer 革命 → 多模态大模型统一视觉与语言层级代表模型核心能力典型场景骨干网络ResNet, EfficientNet, ConvNeXt图像特征提取所有视觉任务的基座目标检测YOLO, Faster R-CNN, DETR定位 分类自动驾驶、安防、工业质检语义分割UNet, DeepLab, SAM像素级分类医学影像、遥感、自动驾驶视觉预训练ViT, DINOv2, MAE通用视觉表征下游任务微调基座视觉-语言对齐CLIP, BLIP, SigLIP图文匹配零样本分类、图文检索多模态大模型GPT-4V, Qwen2.5-VL, InternVL看图理解对话VQA、文档理解、GUI AgentCNN 骨干网络backbone — 视觉特征提取的基石ResNet残差网络核心创新残差连接Skip Connection深层网络面临梯度消失/爆炸——层数增加反而效果下降。ResNet 的解法让输出 F(x) x即学习残差而非直接映射。这样即使 F(x) 学不到东西至少还有 x 本身恒等映射网络不会比浅层更差。# ResNet 的核心结构 # Bottleneck Block: 1×1降维 → 3×3卷积 → 1×1升维 Skip Connection class Bottleneck(nn.Module): def forward(self, x): identity x # 旁路直接 copy 输入 out self.conv1(x) # 1×1, 降维到 64 out self.conv2(out) # 3×3, 特征提取 out self.conv3(out) # 1×1, 升维回 256 out identity # 残差相加 out self.relu(out) return out✅ 优点简单有效、训练稳定、预训练权重丰富、几乎所有视觉任务的首选骨干。❌ 缺点计算量不小尤其深层版本感受野受限于卷积核大小对大尺寸输入效率下降。EfficientNet核心创新复合缩放Compound Scaling不是单纯加深或加宽网络而是深度、宽度、分辨率三者同步缩放depth αφ # 网络深度系数 width βφ # 每层通道数系数 resolution γφ # 输入分辨率系数 # 约束: α·β²·γ² ≈ 2保证每次升级 FLOPs 翻倍EfficientNet-B0 到 B7 七个版本精度从 77.1% 到 84.3%参数从 5.3M 到 66M。B0 用 ResNet-50 1/5 的参数达到了相同的精度。✅ 优点精度/效率比极高NAS 搜索出的结构移动端友好。❌ 缺点深度可分离卷积在某些硬件上优化不充分小 batch 训练不稳定。ConvNeXt — 让 CNN 现代化A ConvNet for the 2020sConvNeXt 把 Swin Transformer 的成功设计逆向移植回 CNNGELU 激活、LayerNorm 替代 BatchNorm、更大的 kernel7×7、倒置瓶颈结构。结果纯 CNN 达到了和 Swin Transformer 同等的精度但推理更快、部署更成熟。✅ 优点精度追平 ViT纯 CNN 推理成熟无需位置编码等额外复杂度。❌ 缺点没有 Transformer 的动态感受野优势不如 ViT 容易做多模态扩展。目标检测YOLO 系列 — 实时检测之王版本年份核心改进mAP (COCO)速度 (FPS)YOLOv52020CSPDarknet PANet 颈部50.7%~140YOLOv82023Anchor-Free C2f 模块 解耦头53.9%~280YOLOv92024GELAN PGI可编程梯度信息55.6%快YOLOv102024无 NMS 端到端 双标签分配54.4%最快YOLOv112024C3k2 模块 多任务统一架构~55%更快YOLOv8的使用示例from ultralytics import YOLO # 加载预训练模型 model YOLO(yolov8n.pt) # n/s/m/l/x 五种尺寸 # 推理 results model(image.jpg) # 训练仅需 3 行 model YOLO(yolov8n.yaml) results model.train(datacoco128.yaml, epochs100) # 导出 model.export(formatonnx) # ONNX / TensorRT / CoreML / TFLite✅ 优点极快实时、API 简洁三行训练、多尺寸覆盖所有场景、导出格式全。❌ 缺点小物体检测弱于两阶段方法密集场景人群精度下降。Faster R-CNN — 两阶段检测标杆核心创新RPNRegion Proposal Network两阶段① RPN 生成候选区域可能包含物体的框② 对这些候选区域做精细分类和边界框回归。相比 YOLO 的单阶段一步出结果Faster R-CNN 更准但更慢。✅ 优点精度高尤其小物体框架灵活可换各种骨干。❌ 缺点速度慢10~20 FPS vs YOLO 的 100工程实现复杂。DETR — Transformer 检测核心创新用 Transformer 取代 Anchor NMS传统检测依赖预定义的 anchor box数千个不同尺寸/比例的参考框模型预测相对 anchor 的偏移量再用 NMS 去除重叠框。DETR把这个过程变成了一个集合预测问题N 个可学习的 object query 向量 → Transformer Encoder-Decoder →直接输出绝对坐标——没有 anchor 作为中间参考没有 NMS 做后处理。输出也是边界框x,y,w,h但它是凭空生成的不是基于某个预定义的参考框微调出来的。✅ 优点架构简洁、不需要 NMS、自然支持多类别。❌ 缺点小物体检测弱、训练收敛慢需 500 epochs。RT-DETR 解决了速度问题实时运行。语义/实例分割UNet — 医学影像的标配核心创新对称编码器-解码器 Skip Connection编码器下采样提取多尺度特征解码器上采样恢复分辨率。每层编码器通过 skip connection 直接拼接到对应解码器层——高层的语义信息和低层的空间细节同时保留。✅ 优点小样本效果好、结构简单、医学影像分割标准工具。❌ 缺点感受野有限纯 CNN、大目标分割不如 Transformer 方法。SAMSegment Anything ModelMeta 开源的通才分割模型 · ViT-H 骨干 · 11M 图像 1.1B mask 训练SAM 的独特之处通过 Prompt 控制分割。输入一张图 一个 Prompt点/框/掩码/纯文本输出该区域的分割 mask。不需要任何微调就能在任意图片上做分割——真正的零样本分割。# SAM 使用示例 from segment_anything import SamPredictor, sam_model_registry sam sam_model_registry[vit_h](checkpointsam_vit_h.pth) predictor SamPredictor(sam) predictor.set_image(image) # 用点 Prompt 分割 masks, scores, _ predictor.predict( point_coordsnp.array([[500, 375]]), point_labelsnp.array([1]), # 1 前景点 )✅ 优点零样本通才、Prompt 灵活、万物皆可分割。❌ 缺点模型巨大ViT-H 632M、推理慢GPU 也要几百毫秒、精细边缘不如专用模型。Mask R-CNN 与 YOLOv8-segMask R-CNN在 Faster R-CNN 上加一个 mask 分支——检测 分割同时做。实例分割的事实标准但速度慢。YOLOv8-segYOLOv8 的分割版本在检测头旁加 mask 预测分支。实时性极好适合需要同时检测分割的场景如自动驾驶中识别可行驶区域车辆。Vision TransformerViT— 图像的 Transformer 化把图像切成 Patch当成视觉单词用和 NLP 完全相同的 Transformer 处理——这是 ViT 的核心思想也是视觉领域近五年最大的范式转移。ViT 架构# ViT 的处理流程 输入图像 (224×224×3) │ ▼ 切成 14×14 个 patch每个 16×16 196 个 patch 1 个 [CLS] token │ ▼ 线性投影到 768 维 位置编码 197 × 768 的序列 │ ▼ 12 层标准 Transformer Encoder │ 每层Multi-Head Self-Attention MLP ▼ 取 [CLS] token → 分类头 → 类别输出[CLS] token 到底是什么它就是一个随机初始化的 768 维向量和 patch embedding 尺寸一样训练过程中它的数值会被梯度不断调整。它是怎么工作的在 Self-Attention 里每个 token包括 [CLS] 和所有 patch都会生成自己的 Query、Key、Value。以 [CLS] 为例① [CLS] 的Query去和所有 patch 的 Key算相似度 →决定我该关注哪些 patch② 按相似度加权聚合所有 patch 的Value→ 得到 [CLS] 在这一层的新表示。每层都重复这个过程。12 层下来[CLS] 已经学会了什么时候关注左下角、什么时候关注右上角——它在主动筛选哪些图像区域对分类有用。打个比方[CLS] 像一个拿着笔记本的调查员坐在会议桌的首位。196 个 patch 是 196 个目击者每人只看到图片的一小块。[CLS] 挨个问每个目击者——不是一次是 12 轮12 层每轮都可以追问更深入的问题。最后 [CLS] 在笔记本上写下结论——这个结论就是分类结果。笔记本上写的东西就是 [CLS] 最终输出的那个 768 维向量。为什么不用全局平均池化GAPViT 论文对比了 [CLS] 和 GAP对所有 patch 输出取平均两者精度几乎一样。选 [CLS] 纯粹是为了和 BERT 保持一致的风格。后续很多 ViT 变体如 Swin反而用 GAP——因为更简单、对 patch 数量变化更鲁棒。为什么是 768 维——两处768不是同一回事① 每个 patch 的原始像素值刚好是 16×16×3768 个纯属巧合patch 尺寸和人设计出来的② 线性投影后变成Transformer 内部的 768 维向量这是沿袭 BERT-Base 的超参选择12 层 × 768 维 × 12 头和原始像素数无关。换成 ViT-Large 就是 1024 维但输入 patch 仍然是 768 个像素值——线性投影做的是768 → 1024 的映射。两个768撞数字了但逻辑上完全独立。关键特性全局感受野——ViT 最本质的优势CNN 的卷积核只看局部3×3/7×7要靠堆叠层数来扩大感受野。ViT 的第二层就已经看到整张图——Self-Attention 天然具有全局感受野。这让 ViT 在需要全局上下文的任务上如场景理解、多物体关系推理有显著优势。数据饥渴——ViT 最大的短板CNN 有卷积的归纳偏置局部性、平移不变性在小数据集上天然泛化好。ViT 没有这些偏置——它需要从数据中自己学。所以 ViT 在 ImageNet-21K1400万张上预训练后才能超越 ResNet直接用 ImageNet-1K120万张训练 ViT效果不如 ResNet。模型参数量ImageNet Top-1特点ViT-B/1686M77.9%标准 ViTViT-L/16307M76.5%需要大规模预训练DeiT-B86M83.1%知识蒸馏训练不需大数据Swin-B88M84.5%层次化窗口 AttentionSwin Transformer — 层次化视觉 Transformer核心创新Shifted Window AttentionViT 的全局 Attention 计算量是 O(N²)N 为 patch 数。Swin 把 Attention 限制在局部窗口内通过窗口偏移Shifted Window实现跨窗口信息交互。配合层次化结构像 CNN 一样逐层缩小分辨率、增加通道计算量降到 O(N)同时在密集预测任务检测/分割上远超 ViT。✅ 优点线性复杂度、层次化特征天然适配检测/分割、精度相当于SOTA。❌ 缺点窗口偏移增加工程复杂度相比 ConvNeXt 推理优化不如纯 CNN 成熟。自监督视觉预训练 — 不靠标签学特征DINO / DINOv2自蒸馏核心思路学生网络模仿教师网络同一张图做不同裁剪给 Teacher全局视图和 Student局部视图Student 学习预测 Teacher 的输出。Teacher 不反向传播——用 Student 参数的指数移动平均EMA更新。这种无需标签的自蒸馏学出的特征包含清晰的语义分割信息——甚至不需要任何标注就能做物体分割DINOv2Meta 在 1.42 亿张图上训练的通用视觉骨干在分类/分割/深度估计/检索等任务上超越了有监督模型。是目前最强的通用视觉特征提取器。✅ 优点零标注、特征质量极高、通用性强。❌ 缺点训练成本高、模型大ViT-g/14 1.1B 参数。MAEMasked AutoencoderBERT 的视觉版随机遮住 75% 的图像 patch让模型重建关键设计① 遮住 75%远高于 BERT 的 15%逼模型学全局理解② 编码器只处理未遮挡的 patch25%大幅降低计算量③ 解码器轻量只用于重建任务下游任务时丢弃。✅ 优点训练高效只算 25% token、扩展到 ViT-H/ViT-L 效果极好。❌ 缺点重建目标是像素级低级特征不如对比学习学的语义特征好。视觉-语言对齐模型CLIPContrastive Language-Image Pre-trainingCLIP 图像编码器 文本编码器 对比学习 → 图文共享同一向量空间。工作原理4 亿图文对训练。正样本图文匹配负样本同一 batch 内其他组合。图像编码器ViT和文本编码器Transformer各自输出向量通过对比 loss 拉近匹配图文对、推远不匹配的。# CLIP 零样本分类——不需要任何微调 import clip model, preprocess clip.load(ViT-B/32) image preprocess(Image.open(cat.jpg)).unsqueeze(0) text clip.tokenize([ a photo of a cat, a photo of a dog, a photo of a bird ]) with torch.no_grad(): image_features model.encode_image(image) text_features model.encode_text(text) logits image_features text_features.T # 相似度矩阵 # 最高分的文本标签 分类结果 pred logits.softmax(dim-1) # [0.89, 0.07, 0.04] → cat!✅ 优点零样本分类不需要训练数据图文检索Stable Diffusion 等生成模型的基础。❌ 缺点细粒度分类弱哈士奇 vs 阿拉斯加不能生成文本描述。BLIP-2 — Q-Former 桥接视觉与语言核心创新Q-FormerQuerying TransformerCLIP 是对齐但不是生成。BLIP-2 引入 Q-Former——一组可学习的 query token在冻结的图像编码器和冻结的 LLM 之间做翻译。不训图像编码器、不训 LLM只训轻量 Q-Former——用最小的代价把视觉特征接入任意 LLM。✅ 优点高效只训小模块可插拔任意 LLMLLaMA/OPT/FlanT5。❌ 缺点Q-Former 是信息瓶颈复杂推理比端到端训练的弱。SigLIP — 更高效的 CLIP 替代CLIP 用对比 softmax loss需要全局 batchSigLIP 改用逐对 sigmoid loss——每个图文对独立判断是否匹配。消除了 CLIP 对超大 batch size 的依赖训练更稳定、更高效。Google 的 PaliGemma 系列就用的 SigLIP 做视觉编码器。多模态大模型 — 看图、理解、对话多模态大模型 视觉编码器 连接器 LLM。输入图片输出文字——看图说话、视觉问答、图表理解、GUI 操作。主流多模态大模型对比模型视觉编码器LLM连接方式亮点GPT-4V / 4o未公开GPT-4原生多模态综合能力最强Gemini 2.5 Pro未公开Gemini原生多模态超长上下文、视频理解Qwen2.5-VLViT (SigLIP 对齐)Qwen2.5MLP 投影动态分辨率、OCR 强、中文最优InternVL2.5InternViTInternLMPixel Shuffle开源最强之一多尺寸可选LLaVA-NeXTCLIP-ViTLLaMA/QwenMLP 投影AnyRes 动态高分辨率DeepSeek-VL2SigLIP SAMDeepSeekHybridMoE多模态、成本低Qwen2.5-VL — 中文多模态标杆三大特色①动态分辨率不把图压缩成固定大小——根据原图比例动态调整 patch 数量细节不丢失。文档扫描、发票识别精度极高。②定位能力可以输出边界框坐标——把图中红色汽车框出来。③视频理解支持视频输入逐帧分析后综合回答。# Qwen2.5-VL 调用示例OpenAI 兼容 API from openai import OpenAI client OpenAI(base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1) response client.chat.completions.create( modelqwen-vl-max, messages[{ role: user, content: [ {type: image_url, image_url: {url: https://...}}, {type: text, text: 这张图片里有什么} ] }] )✅ 优点中文 OCR 极强、动态分辨率、开源、API 便宜。❌ 缺点复杂的多物体空间推理不如 Gemini英文场景逊于 GPT-4V。LLaVA 架构 — 开源多模态的标准范式最小可行的多模态大模型LLaVA 证明了一个简洁的事实冻结的 CLIP 视觉编码器 一个线性投影层 冻结的 LLaMA → 就能实现看图对话。训练两阶段① 预训练投影层对齐视觉和语言空间② 指令微调让模型学会看图回答问题。整个流程开源、可复现、成本低。✅ 优点架构极简、训练成本低、学术友好。❌ 缺点简单投影层是信息瓶颈复杂视觉推理不如原生多模态模型。多模态大模型的局限性⚠ 幻觉看图编造和 LLM 一样视觉大模型也会编——图中没有的东西被描述出来。这是目前多模态 LLM 最严重的可靠性问题。⚠ 细粒度定位弱图片左下角第三个人的手表是什么牌子——这种精细的空间定位问题目前所有模型都很难准确回答。视觉 token 化过程中丢弃了精确的位置信息。⚠ 分辨率 vs 成本的矛盾高分辨率图像 更多 patch 更长的输入序列 更高成本。一张 4K 图切成 patch 可能产生上万个 tokenLLM 处理成本成倍增长。模型选型指南任务场景推荐模型理由图像分类小数据ResNet-50 预训练 微调成熟、稳定、社区资源丰富图像分类大数据ViT-B/16 或 ConvNeXt-B精度更高实时目标检测YOLOv8/v11速度最快、部署最简单高精度目标检测RT-DETR 或 Faster R-CNN小物体更好通用特征提取DINOv2零样本泛化最强医学影像分割UNet 变体小样本效果好、可解释通用分割PromptSAM 2零样本万物分割图文检索 / 零样本分类CLIP (ViT-L/14)标准方案看图对话中文Qwen2.5-VL中文 OCR 最强、成本低看图对话英文/综合GPT-4o 或 Gemini 2.5 Pro综合能力最强文档/发票/表格理解Qwen2.5-VL 或 InternVL2.5高分辨率、OCR 优秀视频理解Gemini 2.5 Pro 或 Qwen2.5-VL长上下文视频处理关键问题Q1CNN 和 ViT 的本质区别是什么什么时候选哪个CNN 有归纳偏置局部性、平移不变性→ 小数据上泛化好、推理快。ViT 有全局感受野→ 大数据上精度高、多模态扩展容易。选 CNN数据少100K、需实时推理、部署环境成熟。选 ViT数据多、追求 SOTA、需要和文本/多模态结合、大模型生态。Q2YOLO 为什么这么快两阶段检测器为什么更准YOLO 把检测变成回归问题——一次性输出所有边界框和类别没有 RPN、没有逐区域分类。两阶段检测器先筛选候选RPN、再精细分类——两次判断过滤掉了大量误检但速度慢。本质是一次决策 vs 两次验证的 trade-off。Q3CLIP 为什么能做零样本分类CLIP 训练的不是猫class 3而是猫的图片向量 ≈ a photo of a cat 的文本向量。测试时把 N 个候选文本标签向量和图片向量算相似度最高分的就是分类结果。这意味着你可以随时加新类别而不用重新训练——只要给新类别一个文本描述就行。Q4多模态大模型如 Qwen2.5-VL和 CLIP 的核心区别CLIP 只做对齐——判断图文是否匹配不能生成文本。多模态大模型可以做理解生成——看图说话、回答问题、定位物体。架构上多模态 LLM 在视觉编码器和 LLM 之间加了一个连接器投影层/Q-Former把视觉 token 翻译成 LLM 能理解的 token然后 LLM 做自回归生成。Q5DINOv2 为什么不需要标注就能学到这么好的特征自蒸馏数据增强。同一张图的两个不同裁剪分别给 Teacher 和 StudentStudent 学习预测 Teacher 的输出。Teacher 用 EMA 更新不反向传播——避免了模型坍塌所有输出变成同一个向量。学到的特征是一张图里哪些区域应该相似——这种图片内部的语义一致性天然对应物体分割。参考文献#论文 / 模型核心贡献1Deep Residual Learning for Image Recognition(ResNet, He et al., 2015)残差连接解决深层网络退化成为视觉模型标准骨干2An Image is Worth 16x16 Words(ViT, Dosovitskiy et al., 2020)将 Transformer 引入视觉证明纯 Transformer 在大数据下超越 CNN3YOLOv8/YOLOv11(Ultralytics, 2023-2024)实时目标检测工业标准Anchor-Free 多任务统一架构4Segment Anything(SAM, Kirillov et al., Meta, 2023)Prompt-driven 通才分割模型11M 图像 1.1B mask 训练5CLIP(Radford et al., OpenAI, 2021)对比学习对齐视觉和语言零样本分类 图文检索标准方案6DINOv2(Oquab et al., Meta, 2023)自监督视觉预训练142M 图像训练通用特征提取最强7BLIP-2(Li et al., Salesforce, 2023)Q-Former 桥接冻结视觉编码器与冻结 LLM高效多模态训练8Qwen2.5-VL(Alibaba, 2025)动态分辨率 中文 OCR 最强开源多模态大模型9LLaVA / LLaVA-NeXT(Liu et al., 2023-2024)开源多模态范式CLIP投影层LLMAnyRes 高分辨率

本月热点