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章。学完之后,你能做到:
- 自己标注数据集:用LabelImg、CVAT这些工具,从零开始标一套自己的数据。
- 训练YOLO模型:从数据预处理、模型配置、训练调参到模型导出,全流程跑通。
- 部署到实际场景:不管是Python推理、ONNX导出还是TensorRT加速,我都会带你走一遍。
- 解决真实问题:比如数据不平衡怎么办、小目标检测不准怎么调、模型过拟合怎么处理。
我的建议:不要只看不练。每节课后,花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支持最好。
安装步骤:
- 下载.run文件或.exe文件
- 安装时选择自定义安装,只勾选CUDA组件
- 记住安装路径,默认是
/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 本章小结
这节课我们干了三件事:
- 了解了YOLO的发展史和应用场景
- 明确了课程目标和学习路径
- 搭建了GPU环境,装好了CUDA、cuDNN和PyTorch
环境搭建是最枯燥的一步,但也是最重要的一步。我见过太多人因为环境问题放弃了深度学习。其实你想想看,只要把版本对应关系搞清楚,剩下的就是复制粘贴的事。
下一节课,我们会正式开始数据标注。到时候你会亲手标注第一张图片,那种感觉,嗯,挺有成就感的。
有问题随时在群里问我。记住,报错信息是最好的老师,别怕报错。
课后作业:
- 完成GPU环境搭建,确保
torch.cuda.is_available()返回True - 跑一个简单的PyTorch张量运算,感受一下GPU加速
- 在群里分享你的安装截图,有问题一起讨论
好,这节课就到这里。我们下节课见。