1、课程导学与环境准备:YOLO系列发展史、应用场景、课程目标、GPU环境搭建(CUDA、cuDNN)、PyTorch安装与验证

各位同学,欢迎来到《自定义数据集标注与YOLO训练全流程实战》的第一课。

说实话,每次带新班,我都要花一整节课来讲环境搭建。为什么?因为太多人在这一步卡住了。我自己带过的学员里,至少有三分之一是在装CUDA的时候心态崩了的。嗯,这节课我会把坑都指出来,你跟着走就行。

1.1 YOLO系列发展史:从v1到v11,我们经历了什么

YOLO,全称You Only Look Once。说白了,就是「看一眼就搞定」。它把目标检测当成一个回归问题来做,一张图进去,直接输出边界框和类别。

我个人习惯把YOLO的发展分成三个阶段:

  • 奠基期(v1-v3):Redmon老哥的原创时代。v1速度惊艳但精度拉胯,v2加了Batch Normalization和Anchor,v3引入了FPN和Darknet53。我记得2018年第一次跑YOLOv3时,那个速度真的让我震惊——一张图只要十几毫秒。
  • 演进期(v4-v5):v4是Alexey Bochkovskiy搞的,加了CSPDarknet和Mish激活函数。v5是Ultralytics出的,虽然没发论文,但生态做得最好。我在项目中用过v5,部署到边缘设备上,效果很稳。
  • 爆发期(v6-v11):各路大神纷纷出手。v6是美团出的,v7是YOLOR作者续作,v8/v9/v10/v11基本是Ultralytics在迭代。现在v8是主流,v11是最新。

核心结论:如果你现在开始学,直接选YOLOv8。社区最活跃,文档最全,踩坑最少。v11虽然新,但有些功能还不稳定。

1.2 应用场景:YOLO能干什么

你可能觉得目标检测离自己很远。其实不是。

我举几个真实案例:

  • 工业质检:我去年帮一家电子厂做过PCB板缺陷检测。用YOLOv8识别焊点虚焊、短路,准确率98.7%。以前人工一天看几千块板子,眼睛都看花。
  • 自动驾驶:车辆、行人、交通标志识别。虽然现在主流用BEV方案,但YOLO仍然是很多L2级方案的标配。
  • 安防监控:人流统计、异常行为检测。我有个学员用它做小区电动车进电梯检测,效果不错。
  • 农业:水果成熟度判断、病虫害识别。你想想看,无人机飞一圈,就知道哪块地该打药了。
  • 医疗:细胞检测、内窥镜图像分析。虽然精度要求高,但YOLO做初筛完全够用。

说白了,只要是需要「从图像里找东西」的场景,YOLO都能上。

1.3 课程目标:30天,你能学到什么

这门课一共30章。学完之后,你能做到:

  1. 自己标注数据集:用LabelImg、CVAT这些工具,从零开始标一套自己的数据。
  2. 训练YOLO模型:从数据预处理、模型配置、训练调参到模型导出,全流程跑通。
  3. 部署到实际场景:不管是Python推理、ONNX导出还是TensorRT加速,我都会带你走一遍。
  4. 解决真实问题:比如数据不平衡怎么办、小目标检测不准怎么调、模型过拟合怎么处理。

我的建议:不要只看不练。每节课后,花30分钟把代码跑一遍。遇到报错先自己搜,实在搞不定再问我。这样学得最扎实。

1.4 GPU环境搭建:CUDA、cuDNN安装

好,重头戏来了。环境搭建这块,我踩过的坑比你们走过的路还多。

先搞清楚几个概念:

  • CUDA:NVIDIA的并行计算平台。说白了,就是让GPU干活的「翻译官」。
  • cuDNN:基于CUDA的深度学习加速库。专门优化卷积、池化这些操作。
  • PyTorch:深度学习框架。我们用它来写训练代码。

这三者的版本必须匹配。不匹配?等着报错吧。

第一步:检查你的硬件

打开终端,输入:

nvidia-smi

如果显示GPU信息,说明驱动装好了。看右上角的CUDA Version,比如显示12.1,那你就装CUDA 12.x系列。

注意:nvidia-smi显示的CUDA版本是驱动支持的最高版本,不是你实际装的版本。我曾经被这个坑过——以为装了CUDA 12.1,结果发现只是驱动支持而已。

第二步:安装CUDA

去NVIDIA官网下载对应版本的CUDA Toolkit。我建议装11.8或12.1,这两个版本PyTorch支持最好。

安装步骤:

  1. 下载.run文件或.exe文件
  2. 安装时选择自定义安装,只勾选CUDA组件
  3. 记住安装路径,默认是/usr/local/cuda-11.8

装完后配置环境变量:

export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

验证:

nvcc --version

如果显示版本号,恭喜你,CUDA装好了。

第三步:安装cuDNN

cuDNN需要注册NVIDIA账号才能下载。选对应CUDA版本的cuDNN,下载后解压:

tar -xzvf cudnn-linux-x86_64-8.9.0.131_cuda11-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.8/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*

验证:

cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

避坑指南:我曾经在Ubuntu 20.04上装CUDA 11.4 + cuDNN 8.2,结果PyTorch死活不认GPU。查了半天,发现是cuDNN版本和CUDA不匹配。后来换成cuDNN 8.0就好了。所以,版本匹配是第一要义

1.5 PyTorch安装与验证

PyTorch安装其实是最简单的。去官网 pytorch.org,选你的配置,复制命令就行。

比如CUDA 11.8:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

或者用conda:

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

装完后验证:

python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"

如果输出True,说明GPU可用。如果输出False,嗯,回去检查CUDA和cuDNN。

常见报错及解决

  • 「No module named 'torch'」:没装PyTorch,或者装到了别的虚拟环境里。
  • 「CUDA error: no kernel image is available」:PyTorch版本和CUDA版本不匹配。卸载重装对应版本。
  • 「RuntimeError: cuDNN error」:cuDNN没装好,或者路径没配置对。

1.6 本章小结

这节课我们干了三件事:

  1. 了解了YOLO的发展史和应用场景
  2. 明确了课程目标和学习路径
  3. 搭建了GPU环境,装好了CUDA、cuDNN和PyTorch

环境搭建是最枯燥的一步,但也是最重要的一步。我见过太多人因为环境问题放弃了深度学习。其实你想想看,只要把版本对应关系搞清楚,剩下的就是复制粘贴的事。

下一节课,我们会正式开始数据标注。到时候你会亲手标注第一张图片,那种感觉,嗯,挺有成就感的。

有问题随时在群里问我。记住,报错信息是最好的老师,别怕报错。

课后作业

  1. 完成GPU环境搭建,确保torch.cuda.is_available()返回True
  2. 跑一个简单的PyTorch张量运算,感受一下GPU加速
  3. 在群里分享你的安装截图,有问题一起讨论

好,这节课就到这里。我们下节课见。