2. 环境搭建与工程准备:Ubuntu/Conda环境配置、PyTorch安装、YOLOv5源码下载与结构总览

好,咱们正式开始动手了。

这一章,说白了就是“把枪擦亮”。很多同学一上来就急着调参、改网络,结果环境没配好,跑个demo报一堆错,心态直接崩了。我刚开始做算法落地时,就吃过这个亏——在Windows上配了三天环境,最后发现跟生产服务器的CUDA版本对不上,全部重来。嗯,从那以后,我养成了一个习惯:先统一环境,再写代码

2.1 Ubuntu + Conda:我的标准配置

我个人习惯用Ubuntu 20.04 LTS。为什么?因为大部分AI服务器、云端实例都是这个版本,兼容性最好。你如果非要用Windows,也不是不行,但后续的TensorRT部署、ONNX导出,坑会多不少。

首先,安装Miniconda。别装Anaconda,太臃肿了。我只需要一个干净的环境管理工具。

# 下载Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 安装
bash Miniconda3-latest-Linux-x86_64.sh

# 一路yes,然后重启终端或source一下
source ~/.bashrc

# 验证
conda --version
我的小技巧: 安装时记得选“yes”让conda自动初始化。不然每次都要手动source,很烦。

接下来,创建YOLOv5的专属环境。我建议Python版本锁定在3.8或3.9。3.10以上有些旧版库可能不兼容,别给自己找麻烦。

conda create -n yolov5 python=3.8 -y
conda activate yolov5

2.2 PyTorch安装:版本匹配是门玄学

PyTorch的安装,核心就一句话:CUDA版本要对

先看看你的显卡支持什么版本的CUDA:

nvidia-smi

看右上角的“CUDA Version”。比如显示11.7,那你就装PyTorch 1.13或2.0对应的CUDA 11.7版本。

我个人推荐用PyTorch 1.12或1.13,因为YOLOv5官方测试最充分的就是这个区间。2.0以上也能用,但有些自定义算子可能需要重新编译。

# 以CUDA 11.7为例
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117

# 验证
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
我曾经踩过的坑: 有一次我装PyTorch时没注意,装成了CPU版本。训练了三天才发现模型在GPU上跑不了。所以验证那一步千万别省,看到“True”才放心。

2.3 YOLOv5源码下载与结构总览

环境配好了,咱们把YOLOv5拉下来。

git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt

这里有个细节:requirements.txt里包含了所有依赖,比如matplotlib、opencv-python、tqdm等。我建议你装完之后,手动检查一下版本,特别是opencv,有时候pip源里的版本太老,会导致视频读取报错。

装完之后,跑个demo验证一下:

python detect.py --source data/images/bus.jpg --weights yolov5s.pt

如果能看到一张标了框的公交车图片,恭喜你,环境搭建成功了。

2.4 源码结构总览:别急着改代码

很多同学拿到源码就开始翻models文件夹,想改网络结构。我的建议是:先看目录,再看流程

YOLOv5的源码结构其实很清晰,我把它分成三大块:

目录/文件 作用 我的建议
models/ 网络结构定义(yolov5s.yaml等) 先看懂yaml配置文件,再改代码
utils/ 工具函数(损失计算、数据增强、评价指标) 这是核心,建议逐行阅读
train.py 训练入口 先跑通,再调参
detect.py 推理入口 部署时主要改这个文件
data/ 数据集配置和样本 自定义数据集时重点关注

你想想看,整个YOLOv5的流程其实就是:读配置 → 构建模型 → 加载数据 → 前向传播 → 计算损失 → 反向传播 → 保存权重。这个主线抓住了,后面每一章都是在往这条线上加细节。

核心要点:

  • 环境搭建:Ubuntu 20.04 + Conda + Python 3.8
  • PyTorch版本:1.12~1.13,CUDA版本与驱动匹配
  • 源码结构:先看models/yaml,再看utils,最后看train.py
  • 验证方法:跑通detect.py的demo

嗯,这一章就到这儿。环境搭好了,下一章咱们就开始啃YOLOv5的核心——网络结构。到时候我会带着你一行一行看代码,把C3模块、SPPF这些玩意儿彻底讲透。

对了,如果你在安装过程中遇到任何问题,比如pip下载慢、CUDA版本不对,别硬扛。换个清华源,或者用conda安装PyTorch,都能解决。我当年就是太倔,非要跟一个报错死磕三天,后来发现换个源就搞定了。

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