第一课:课程导学与环境准备

各位同学好,我是你们这门课的主讲。在正式开始之前,我想先聊聊YOLO——这个在计算机视觉领域几乎无人不知的算法系列。

说实话,我第一次接触YOLO是在2016年。那时候我刚接手一个工业质检项目,客户要求实时检测流水线上的零件缺陷。传统的Faster R-CNN跑起来太慢,GPU风扇转得跟直升机似的,结果一帧还得几百毫秒。后来我试了YOLOv1,虽然精度差点意思,但速度是真的快。嗯,从那时起我就知道,这个系列会改变很多东西。

YOLO发展史:从v1到v8

YOLO的全称是You Only Look Once,翻译过来就是「你只看一次」。这个命名很形象——它不像两阶段检测器那样先提候选框再分类,而是把检测当成一个回归问题,一步到位。

版本 发布时间 核心特点 我的评价
YOLOv1 2016 开创性工作,端到端检测 粗糙但革命性
YOLOv2 2017 引入Anchor Box、Batch Normalization 稳定了很多
YOLOv3 2018 多尺度预测、Darknet-53骨干 经典之作,至今有人用
YOLOv4 2020 Mish激活、CSP结构、Bag of Freebies 工程优化集大成者
YOLOv5 2020 PyTorch实现、更轻量 社区最活跃的版本
YOLOv6 2022 美团出品,工业级优化 部署友好
YOLOv7 2022 E-ELAN结构、重参数化 精度速度双赢
YOLOv8 2023 Ultralytics出品,无锚框设计 目前最推荐入门

我个人建议:如果你是新手,直接从YOLOv8开始学。v5和v8的生态最完善,遇到问题网上随便一搜就有答案。v3虽然经典,但很多API已经过时了,没必要在旧技术上浪费时间。

YOLO的应用场景

YOLO能干什么?说白了,只要是需要「实时找物体」的地方,都有它的身影。

  • 安防监控:行人检测、车辆检测、异常行为识别。我之前做过一个智慧园区项目,用YOLOv5检测翻墙行为,效果还不错。
  • 自动驾驶:车辆、行人、交通标志检测。这个场景对速度要求极高,YOLO几乎是标配。
  • 工业质检:表面缺陷检测、零件定位。我在工厂里见过用YOLOv8检测电路板焊点,精度能达到99%以上。
  • 医疗影像:细胞检测、病灶定位。虽然医疗领域更偏爱两阶段检测器,但YOLO在实时辅助诊断中越来越常见。
  • 农业与零售:水果成熟度检测、货架商品识别。你想想看,无人超市里识别你拿了什么商品,背后大概率就是YOLO。

课程目标

这门课一共30章,我们的目标很明确:让你从零开始,完整跑通一个YOLO项目

具体来说,学完这门课,你应该能:

  1. 自己搭建Anaconda环境,装好PyTorch和GPU驱动
  2. 理解YOLO的核心原理——至少能跟别人讲清楚什么是Anchor Box、什么是NMS
  3. 自己标注数据集,训练一个自定义检测模型
  4. 把模型部署到服务器或者边缘设备上
  5. 遇到报错能自己排查,而不是只会复制粘贴

一个小建议:学这门课的时候,最好一边看一边动手。我见过太多人收藏了课程就再也不看了。代码这东西,你不亲手敲一遍,永远不知道坑在哪里。

Anaconda环境搭建

好,理论部分聊完了,咱们开始动手。第一步,装Anaconda。

为什么要用Anaconda?说白了就是为了隔离环境。你想想看,项目A需要PyTorch 1.8,项目B需要PyTorch 2.0,如果没有虚拟环境,这两个版本冲突起来能让你怀疑人生。我曾经有一次因为环境混乱,debug了整整两天,最后发现是CUDA版本不匹配。从那以后,我每个项目都单独建一个环境。

安装步骤很简单:

  1. 去Anaconda官网下载对应操作系统的安装包(Windows/Linux/Mac)
  2. 双击安装,一路默认就行。注意:Windows用户记得勾选「Add Anaconda to my PATH environment variable」
  3. 安装完成后,打开终端(Windows用Anaconda Prompt),输入 conda --version 验证

接下来创建一个新环境:

conda create -n yolo_env python=3.9
conda activate yolo_env

这里我用了Python 3.9,为什么不是最新的3.12?因为PyTorch对最新Python版本的支持往往有延迟。我建议用3.8到3.10之间的版本,兼容性最好。

PyTorch安装与验证

环境激活后,安装PyTorch。去PyTorch官网,选择你的配置,会生成对应的安装命令。比如我的是CUDA 11.8:

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

注意:不要用 conda install pytorch,除非你网络特别好。conda的源经常下载到一半就断了。我个人习惯用pip,加上清华镜像,速度飞快。

安装完成后,验证一下:

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

如果输出 True,恭喜你,PyTorch已经能调用GPU了。如果输出 False,别慌,大概率是CUDA没装对,我们下一步来解决。

GPU驱动配置

GPU配置是新手最容易卡住的地方。我见过太多人装了PyTorch但用不了GPU,最后发现是驱动版本太老。

首先,确认你的显卡型号。NVIDIA显卡用户,在终端输入:

nvidia-smi

这个命令会显示驱动版本、CUDA版本、显存使用情况。如果提示「命令未找到」,说明你没装NVIDIA驱动。

驱动安装步骤:

  1. 去NVIDIA官网下载对应显卡型号的驱动
  2. 安装后重启电脑
  3. 再次运行 nvidia-smi,确认能看到信息

然后安装CUDA Toolkit。注意:nvidia-smi里显示的CUDA版本是驱动支持的最高版本,你安装的CUDA Toolkit版本不能高于它。比如显示CUDA 12.1,那你可以装CUDA 11.8或12.1,但不能装12.2。

安装CUDA Toolkit后,再装cuDNN。cuDNN是深度学习的加速库,不装也能跑,但速度会慢不少。

避坑指南:我曾经在Windows上折腾了一整天,最后发现是环境变量没配好。安装CUDA后,记得检查 PATH 环境变量里有没有 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin。没有的话手动加上。

最后,再跑一次验证代码:

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

如果输出 True,环境就全部搞定了。

小结

这一章我们聊了YOLO的发展史、应用场景,也把开发环境搭好了。说实话,环境配置是最枯燥的部分,但也是最重要的。你想想看,如果环境没配好,后面所有的代码都跑不起来,那多憋屈。

下一章,我们会正式开始YOLOv8的实战——用官方预训练模型跑一个目标检测demo。到时候你会发现,前面这些折腾都是值得的。

好了,去动手吧。有任何问题,欢迎在课程群里交流。记住:不要怕报错,每一个报错都是学习的机会


公众号:蓝海资料掘金营,微信deep3321