十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

计算机视觉197个SOTA模型全解析:从AlexNet到Stable Diffusion的架构演进与实战指南

计算机视觉197个SOTA模型全解析:从AlexNet到Stable Diffusion的架构演进与实战指南 1. 项目概述一份计算机视觉从业者的“藏宝图”在计算机视觉这个日新月异的领域无论是刚入门的新手还是深耕多年的老手都面临着一个共同的挑战模型太多了。今天刚读完一篇论文明天就出了三个变体想复现一个经典工作却发现官方代码库早已停止维护社区里的魔改版本五花八门让人无从下手。这种感觉就像面对一座巨大的宝库却缺少一张清晰的地图。我最近花了相当长的时间系统性地梳理和整理了计算机视觉领域的197个经典SOTAState-Of-The-Art模型。这份清单不是简单的论文列表而是我结合多年一线开发和研究经验从图像分类、目标检测、图像分割到图像生成等多个核心方向筛选出的具有里程碑意义和持续影响力的工作。我的初衷很简单为自己也为同行们制作一份可以随时查阅、快速上手的“藏宝图”和“工具手册”。当你需要了解某个方向的演进脉络或者为手头的任务寻找一个可靠的基线模型Baseline时希望这份整理能帮你省下大量翻阅论文、对比实验的时间直接切入核心。这份整理涵盖了从2012年引爆深度学习革命的AlexNet到如今在各种榜单上霸榜的Swin Transformer、DETR系列、Stable Diffusion等。它不仅包括模型本身还涉及了其核心的创新点、常见的开源实现库、以及我个人在复现和使用过程中踩过的坑和总结的技巧。接下来我将分几个部分详细拆解这份清单的价值、使用方法并深入探讨几个关键方向的技术演进与实操要点。2. 清单架构与使用指南2.1 清单的核心维度与分类逻辑我整理的这197个模型并非随意堆砌而是遵循了一个多维度、结构化的分类体系确保无论你从哪个角度切入都能快速定位。第一维度任务类型。这是最直观的分类方式也是清单的主干。图像分类计算机视觉的基石任务共收录了从AlexNet到ConvNeXt、Vision Transformer等58个关键模型。这部分是理解模型架构演进的最佳教材。目标检测从两阶段的R-CNN系列到单阶段的YOLO、SSD以及新时代的DETR和其变体共收录了47个模型。重点标注了它们在处理小目标、密集目标等难点上的特性。图像分割包括语义分割FCN, DeepLab系列、实例分割Mask R-CNN, YOLACT和全景分割共收录了36个模型。图像生成涵盖GANDCGAN, StyleGAN、扩散模型DDPM, Stable Diffusion和自回归模型VQ-VAE等共收录了29个模型。这部分是当前AIGC热潮的技术核心。其他任务将关键点检测、目标跟踪、图像超分、深度估计等领域的27个代表性模型归入此类如HRNet、SiamRPN、ESRGAN等。第二维度核心创新点。每个模型条目下我都用几个关键词标注了其最核心的贡献例如“首次引入注意力”、“动态卷积”、“无锚框检测”、“层次化设计”、“潜在扩散”。这样当你想研究“注意力机制在检测中的应用”时可以快速筛选出如DETR、Deformable DETR、ViTDet等模型进行对比学习。第三维度实用信息。这是这份清单的“干货”所在包括官方代码链接尽可能提供GitHub官方仓库链接。对于已归档的项目会备注“官方已归档可参考某分支”。主流框架实现标注该模型在PyTorch Image Models (timm)、MMDetection、MMSegmentation、Hugging Face Diffusers等主流开源库中的支持情况。例如Swin Transformer在timm和官方代码中都有优秀实现。预训练权重提供常用的预训练模型下载源如官方、timm、TorchHub。我的复现笔记记录了我个人在特定环境如特定显卡、数据集下成功运行的关键命令、遇到的版本冲突及解决方案。2.2 如何高效利用这份清单三个典型场景场景一为你的新项目寻找基线模型。假设你要做一个街景场景下的多类别小目标检测项目。你的操作路径可以是任务筛选定位到“目标检测”大类。特性筛选在目标检测列表中寻找标注了“小目标友好”、“实时性”、“高精度”等标签的模型。例如YOLOv5/v8的某些变体如YOLOv5-P6、PP-YOLOE、TOOD以及专门为小目标设计的RFLA等会进入候选。对比决策点击这些候选模型查看它们的“我的复现笔记”了解其训练速度、显存占用、在COCO等通用数据集上的APs小目标AP指标。结合你项目的硬件条件如是否只有单卡GPU和精度要求最终选定1-2个模型进行快速原型验证。场景二深入理解某一技术脉络的演进。比如你想彻底搞懂“视觉Transformer如何从分类迁移到检测任务”。脉络追踪在分类中找到起点Vision Transformer (ViT)理解其将图像分patch、加位置编码送入Transformer的基本思想。关键跨越接着查看Swin Transformer它通过移动窗口和层次化设计解决了ViT计算量大、难以处理密集预测任务的问题。任务适配转向检测列表研究Swin Transformer如何作为Mask R-CNN的主干网络即Swin-T Mask R-CNN并取得SOTA效果。范式革新最后学习DETR系列它完全抛弃了传统的锚框和非极大值抑制用Transformer编码器-解码器结构直接进行集合预测代表了另一种思维范式。 通过清单提供的模型链接和笔记你可以按图索骥阅读关键论文运行示例代码从而形成系统性的认知。场景三快速复现经典论文结果。当你需要复现一篇经典论文如ResNet在CIFAR-10上的结果时定位模型在图像分类列表中找到ResNet。获取资源直接使用清单中提供的timm库安装命令和模型调用代码片段。timm库对ResNet的支持非常成熟且高效。避开陷阱查看“我的复现笔记”你会发现我可能记录了“使用timm的resnet50时默认的优化器参数对CIFAR-10可能过于激进建议将初始学习率从0.1调整为0.05并配合余弦退火。” 这类经验能让你少走很多弯路。注意清单是静态的但领域在动态发展。我会定期维护更新但最核心的价值在于这个结构化的方法和其中沉淀的实践经验。建议你将此清单作为起点结合最新的论文和社区动态构建属于自己的知识体系。3. 核心方向深度解析从图像分类到目标检测3.1 图像分类架构演进的“活历史”图像分类是计算机视觉的试金石其模型架构的演进几乎代表了整个深度学习的发展史。我整理的58个分类模型串联起来就是一部活生生的“架构创新史”。卷积神经网络的黄金时代2012-2019这条线从AlexNet的横空出世开始经历了VGG的“深度与规整”Inception系列的“宽度与多尺度”ResNet的“残差连接”解决了深度网络梯度消失的核心难题DenseNet的“密集连接”将特征复用推向极致。随后注意力机制开始融入CNNSENet通过通道注意力大幅提升性能SKNet引入了动态选择机制。EfficientNet通过复合模型缩放深度、宽度、分辨率在精度和效率间取得了当时的最佳平衡。RegNet则通过设计空间搜索找到了更优的规则化网络架构。这一时期的特点是在卷积这个基本操作之上通过巧妙的连接方式、注意力机制和架构搜索不断挖掘CNN的潜力。视觉Transformer的冲击与融合2020至今Vision Transformer (ViT)证明了纯Transformer结构在大量数据预训练下可以超越最先进的CNN。但它需要海量数据如JFT-300M和巨大的计算量。随后DeiT通过知识蒸馏等技术让ViT能在ImageNet级别数据集上有效训练。真正的转折点是Swin Transformer它通过引入局部窗口计算、跨窗口连接和层次化下采样让Transformer具备了像CNN一样的多尺度特征图处理能力从而无缝衔接到检测、分割等下游任务。ConvNeXt则“用CNN的设计哲学改造Transformer”借鉴Swin的宏观设计使用大卷积核、分层结构等让纯CNN模型重新达到了SOTA水平。这标志着架构设计进入了“你中有我我中有你”的融合阶段。实操心得如何为你的任务选择分类主干网络精度优先如果追求极致的Top-1准确率且计算资源充足ConvNeXt-Large、SwinV2-Large、ViT-Huge是当前截至我知识截止日期的顶级选择。但要注意它们推理速度较慢模型体积巨大。速度与精度平衡对于大多数工业应用EfficientNet-B3/B4、RegNetY-8GF/16GF、Swin-T/Small、ConvNeXt-Tiny/Small是非常优秀的选择。它们提供了接近顶级模型的精度但参数量和计算量小得多。移动端/嵌入式部署MobileNetV3、ShuffleNetV2、以及EfficientNet的轻量版如EfficientNet-Lite是经过实战检验的架构。需要特别关注ONNX导出和TensorRT/OpenVINO推理的兼容性与性能。我的经验不要盲目追求最新的模型。对于业务数据集ResNet-50或EfficientNet-B0这种经典模型配合良好的数据增强和训练技巧往往能达到出乎意料的好效果且稳定性和可解释性更强。先用一个简单可靠的模型跑通整个Pipeline建立性能基线再考虑用更复杂的模型进行提升这是一个非常务实的工作流。3.2 目标检测从两阶段到端到端的范式迁移目标检测是计算机视觉中应用最广泛、挑战也最多的任务之一。我整理的47个模型清晰地展示了从“两阶段”到“单阶段”再到“端到端Transformer”的范式迁移。两阶段检测器的兴衰R-CNN开创了“候选区域分类”的两阶段范式Fast R-CNN引入了ROI Pooling实现共享特征计算Faster R-CNN用RPN网络替代了选择性搜索实现了端到端训练奠定了两阶段检测的基石。后续的Mask R-CNN添加掩码头、Cascade R-CNN级联优化、Libra R-CNN解决样本不平衡等都是在其上的精进。两阶段检测器通常精度更高但速度较慢。单阶段检测器的繁荣YOLO系列提出了“看一遍就检测”的理念将检测视为回归问题速度极快。SSD在不同尺度的特征图上进行预测更好地处理了多尺度目标。RetinaNet提出了Focal Loss有效解决了单阶段检测中前景-背景类别极端不平衡的问题使单阶段检测器的精度得以媲美两阶段。此后YOLOv3/v4/v5/v8、EfficientDet、ATSS、GFL、TOOD等模型在neck特征金字塔、head检测头和损失函数设计上不断优化形成了当前工业界应用的主流。DETR带来的端到端革命DETR是革命性的。它完全摒弃了锚框、非极大值抑制等手工设计成分使用Transformer编码器-解码器将检测视为一个集合预测问题。其优点是结构简洁、端到端、在长尾分布和遮挡场景下表现有潜力。但其缺点也很明显训练收敛慢、小目标检测性能不佳、计算量大。Deformable DETR通过可变形注意力机制将注意力计算限制在关键采样点附近大幅加快了收敛速度并提升了小目标性能。DAB-DETR、DN-DETR等则从动态锚框和去噪训练角度进一步优化。RT-DETR则专注于实时性优化展现了端到端检测器在速度上的潜力。实操心得目标检测模型选型与调参避坑指南新手入门与快速原型无脑推荐YOLOv5或YOLOv8。它们生态极其完善文档详细从数据准备支持YOLO格式、COCO格式等、训练、验证到导出ONNX, TensorRT都有现成脚本。社区活跃遇到问题容易找到解决方案。用它们快速验证想法、搭建基线是最佳选择。追求高精度学术研究或对精度要求极高的场景可以考虑Cascade R-CNN两阶段或TOOD、GFLv2单阶段。DETR系列在论文中指标很高但实际训练成本高调参更复杂不建议作为首选基线。小目标检测这是老大难问题。首先确保你的数据标注足够密集和准确。模型选择上YOLOv5/v8通过P6多一个更大尺度的检测层结构有所改善。RFLA、FSAF等是专门针对小目标设计的算法。更通用的技巧是使用高分辨率输入但会显著增加计算量、在特征金字塔中加强浅层特征因为小目标信息更多在浅层、使用更密集的锚框针对锚框类方法或在DETR类方法中增加解码器查询数量。训练调参关键点数据增强是免费的午餐Mosaic、MixUp、CutMix等对于检测任务提升显著尤其是数据集较小时。但要注意过于激进的增强可能破坏小目标的上下文信息需要谨慎调整概率和参数。学习率与优化器对于YOLO系列使用其默认的SGD配合余弦退火通常效果不错。对于DETR系列使用AdamW并配合详细的学习率warmup和衰减策略至关重要。损失函数权重分类损失如Focal Loss、框回归损失如GIoU Loss、目标性损失如有之间的权重需要平衡。通常默认参数是好的起点但如果你的数据集正负样本极度不平衡如缺陷检测可能需要调整Focal Loss的alpha和gamma参数。我踩过的一个大坑在部署YOLOv5到TensorRT时如果使用了动态尺寸输入务必在导出ONNX时指定动态维度并在TensorRT中构建优化profile。否则固定尺寸的引擎在推理不同尺寸图片时要么报错要么性能不佳。另一个坑是DETR系列模型在自定义数据集上训练时由于查询query数量固定如果数据集中目标数量分布与COCO差异很大例如你的图片里通常只有1-2个目标而COCO平均有7个模型性能可能会下降需要调整查询数量或采用分组查询等策略。4. 图像生成从GAN到扩散模型的范式革命图像生成领域在过去几年经历了从GAN主导到扩散模型崛起的剧烈变化。我整理的29个生成模型清晰地刻画了这条技术演进路径。GAN的时代精巧的对抗博弈。从DCGAN奠定了稳定训练的基础架构到Pix2Pix开创了条件图像翻译的范式再到CycleGAN实现了无配对数据的风格迁移。StyleGAN系列则将生成质量推向了令人惊叹的高度其通过风格向量控制不同层级细节的机制赋予了生成图像前所未有的可控性和多样性。然而GAN的训练始终不稳定模式崩溃、难以收敛且多样性Mode Coverage有时不足。扩散模型的崛起从噪声中迭代“去噪”。DDPM去噪扩散概率模型提出了一种全新的生成范式通过一个固定的前向过程逐步加噪将数据转化为纯噪声再训练一个神经网络学习反向过程逐步去噪从而从噪声中生成数据。其训练稳定理论优美但原始采样过程需要上千步迭代极其缓慢。DDIM提出了一种更快的确定性采样方法。Latent Diffusion Model潜在扩散模型如Stable Diffusion是关键的工程突破它将扩散过程放在一个预训练好的VAE的潜在空间中进行而非高维的像素空间这极大地降低了计算成本使得在消费级GPU上训练和推理高质量图像成为可能。DALL-E 2、Imagen等则展示了扩散模型与大规模多模态文本-图像预训练结合的惊人能力。实操心得玩转Stable Diffusion与自定义训练快速体验与创作对于绝大多数用户直接使用Stable Diffusion WebUI如AUTOMATIC1111版本是最佳选择。它集成了丰富的模型管理、文生图、图生图、插件ControlNet, LoRA等功能社区活跃教程海量。你可以轻松下载各种社区精调的Checkpoint和LoRA模型生成特定风格或主题的图像。理解核心概念Checkpoint完整的扩散模型权重文件包含VAE、U-Net和CLIP Text Encoder。文件大通常2-7GB决定了生成的基本风格和质量。LoRA一种轻量化的微调方法通过为模型注入额外的、低秩的适配层来学习新的概念或风格。文件小几MB到几百MB加载灵活是定制化生成的神器。ControlNet通过额外的条件输入如边缘图、深度图、姿态图来精确控制生成图像的结构和构图。自定义训练微调如果你想让模型学会画你家的猫或者生成特定风格的插画你需要微调。数据准备收集20-50张高质量、多角度的目标图片。背景尽量干净、一致。使用BLIP或Waifu Diffusion等工具为每张图片生成详细的文本描述Caption。方法选择DreamBooth效果最强能将新概念如你的猫注入模型并保留其先验知识。但容易过拟合且生成的模型文件大。LoRA当前最推荐的方式。训练快文件小泛化性好不易过拟合。对于学习一种新风格或物体通常足够。Textual Inversion只训练文本嵌入Embedding文件极小几十KB但学习能力较弱适合学习简单的风格或物体。我的训练流程我通常使用Kohya‘s SSGUI工具进行LoRA训练。关键参数包括学习率1e-4左右、训练步数根据数据量通常1000-2000步、网络维度rank通常8-32越大学习能力越强但可能过拟合、优化器AdamW8bit。一定要使用较低的学习率并配合余弦退火防止过拟合。训练过程中用验证提示词Prompt定期生成预览图观察学习效果。常见问题过拟合生成的图像和训练集一模一样缺乏多样性。解决增加数据量或数据增强随机裁剪、翻转降低学习率减少训练步数降低LoRA的rank值。欠拟合/学不会模型无法捕捉目标特征。解决检查数据质量和文本描述提高学习率谨慎增加训练步数提高LoRA的rank值。概念漂移模型学会了新概念但丢失了生成其他内容的能力。这在DreamBooth中常见。解决在训练时加入“先验保留损失”或者在提示词中使用特殊标识符如sks cat来隔离新概念。5. 模型复现、部署与持续学习5.1 从Paper到Code高效复现SOTA模型拥有清单只是第一步能跑起来才是关键。复现论文结果尤其是较老的SOTA模型常常会遇到“环境依赖冲突”、“代码版本过时”、“缺少关键配置”等问题。我的标准化复现流程环境隔离为每个项目创建独立的conda或virtualenv虚拟环境。这是避免依赖地狱的黄金法则。优先寻找官方实现使用清单中提供的官方代码库链接。仔细阅读README.md关注“Installation”和“Getting Started”部分。依赖管理严格按照官方要求的Python、PyTorch/TensorFlow版本安装。如果论文较老如2018年以前可能需要降级PyTorch版本如1.7或更早。使用pip install -r requirements.txt时如果某个包版本冲突尝试先安装基础框架PyTorch再单独安装冲突包到指定版本。数据准备按照官方脚本准备数据集。常见数据集如ImageNet, COCO通常有标准格式。如果脚本失效去项目Issue区搜索大概率有人遇到过同样问题。从小开始验证不要一上来就用完整数据集训练。先用提供的预训练权重在单个GPU上用小批量数据如2-4张图跑通训练和验证的一个循环epoch确保前向传播、损失计算、反向传播没有错误且损失值在合理范围内下降。利用开源库对于经典模型如ResNet,YOLOv3,Mask R-CNN强烈建议优先使用timm、MMDetection、MMSegmentation等成熟开源库。它们经过了大量测试性能优化好且通常兼容更新的深度学习框架版本。我的清单中标注了模型在这些库中的支持情况。复现疑难问题排查表问题现象可能原因排查与解决思路ImportError或ModuleNotFoundError依赖包未安装或版本不对1. 检查requirements.txt。2. 使用pip list确认版本。3. 搜索错误信息看是否需特定版本。CUDA out of memory显存不足1. 减小batch_size。2. 使用梯度累积。3. 尝试混合精度训练(AMP)。4. 检查是否有内存泄漏如张量未释放。损失值为NaN学习率过高、数据有异常值、损失函数计算问题1. 大幅降低学习率如除以10。2. 检查数据中是否有空白或损坏的图片/标签。3. 在损失计算处添加torch.autograd.set_detect_anomaly(True)进行调试。精度远低于论文报告数据预处理不一致、超参数未调优、训练轮数不足1.仔细核对数据增强裁剪尺寸、归一化均值/方差。2. 检查优化器、学习率策略是否与论文一致。3. 确保使用了论文中提到的所有训练技巧如标签平滑、知识蒸馏。4. 增加训练轮数。老代码在新版PyTorch上运行报错API已变更或弃用1. 查看PyTorch官方迁移指南。2. 常见问题Variable已弃用直接使用Tensortorch.uint8索引问题等。根据错误信息针对性修改。5.2 模型部署实战从PyTorch到生产环境模型训练好之后最终要落地到实际应用中。部署环节需要考虑效率、延迟和资源消耗。部署路径选择研究/原型阶段Python API直接使用训练框架如PyTorch的模型和脚本进行推理。最简单但效率最低依赖完整的Python环境。服务化部署API服务使用FastAPI或Flask将模型封装为RESTful API或使用TorchServe、Triton Inference Server等专业服务框架。适合云服务器端的多请求、高并发场景。高性能推理模型优化与转换这是工业部署的核心。目标是脱离Python运行时获得极致的推理速度。第一步模型优化。使用PyTorch的torch.jit.script或torch.jit.trace将动态图转换为静态图。对于TensorFlow使用tf.function。第二步模型转换。转换为跨平台、高性能的中间格式。ONNX开放神经网络交换格式是转换到其他推理引擎的桥梁。使用torch.onnx.export进行导出。关键点务必测试导出的ONNX模型在不同尺寸输入下的正确性动态轴设置。第三步特定平台加速。NVIDIA GPU使用TensorRT。它将ONNX模型进行图优化、层融合、精度校准FP16/INT8生成高度优化的引擎.engine文件。性能提升可达数倍甚至十倍以上。Intel CPU/GPU使用OpenVINO Toolkit。它针对Intel硬件进行了深度优化。移动端/嵌入式ARM CPU使用ncnn、MNN、TNN等轻量级推理框架。它们通常需要先将模型转换为特定格式。苹果设备使用Core ML针对iOS/macOS。部署避坑经验预处理/后处理对齐部署时输入数据的预处理缩放、归一化和输出结果的后处理解码、NMS必须与训练时严格一致。最好将预处理和后处理逻辑也包含在导出的计算图中如ONNX模型或单独编写并严格测试。动态形状支持如果你的应用需要处理不同尺寸的输入在导出ONNX和转换到TensorRT时必须显式指定动态维度。例如在torch.onnx.export中设置dynamic_axes。精度校准INT8量化TensorRT的INT8量化可以大幅提升速度、降低显存但需要一个小型校准数据集来统计激活值分布。量化可能导致精度轻微下降需在业务指标上充分评估。我的一个部署案例部署一个YOLOv5模型到Jetson AGX Xavier边缘设备。流程是PyTorch - ONNX (动态batch, 动态尺寸) - TensorRT (FP16精度)。关键步骤是使用export.py脚本导出ONNX时设置--dynamic参数然后使用trtexec工具构建TensorRT引擎时为动态尺寸创建多个优化profile。最终在Jetson上实现了30FPS的实时推理性能。5.3 如何利用这份清单进行系统性学习与跟进前沿这份197个模型的清单也是一个绝佳的学习路线图。系统性学习建议纵向深入选择一个你感兴趣的子领域如目标检测按照时间顺序从最早的R-CNN开始逐个研究清单中的模型。重点理解每个模型要解决的核心问题是什么Why它提出了什么新方法What以及这个方法是如何工作的How。动手复现关键模型的简化版或跑通官方代码。横向对比针对同一任务的不同模型如YOLOv5,PP-YOLOE,TOOD对比它们的网络结构、损失函数、训练技巧和性能指标速度、精度。尝试在同一个数据集如COCO的子集上跑出它们的结果获得最直观的感受。主题研究围绕一个核心技术点如“注意力机制”、“特征金字塔”、“无锚框检测”去筛选清单中的模型。看看这个技术点是如何在不同任务、不同模型中演变和应用的。跟进前沿动态清单是静态的但计算机视觉在飞速发展。我维护这份清单的方式也是你持续学习的好方法关注顶级会议/期刊CVPR, ICCV, ECCV, NeurIPS, ICLR, TPAMI, IJCV等。关注它们的官方论文列表和获奖论文。善用论文平台arXiv.org是预印本的主要来源。使用Papers With Code网站它链接了论文、代码和排行榜是追踪SOTA最有效的工具之一。融入社区在GitHub上关注你感兴趣领域的顶级实验室和明星作者如facebookresearch,rwightman(timm作者),ultralytics(YOLO作者)。参与Reddit的r/MachineLearning和Hugging Face社区的讨论。实践验证对于声称有重大突破的新模型不要盲目相信论文数字。尝试找到开源代码在自己的任务或标准数据集上跑一跑感受其真实的易用性、训练成本和性能提升。这才是检验真理的唯一标准。这份整理了197个经典SOTA模型的清单是我多年积累的一个缩影。它不仅仅是一个列表更是一种应对技术洪流的方法论通过结构化的整理理解历史的脉络通过动手复现掌握技术的本质通过持续追踪和实践保持对前沿的敏感。希望这份“藏宝图”能帮助你在计算机视觉的探索之路上更高效地找到属于你的宝藏。记住最重要的不是收集了多少模型而是你真正理解并能够运用其中多少个。
返回列表