Ubuntu下Conda配置YOLOv5全指南
在智能视觉应用日益普及的今天,实时目标检测已成为智能制造、安防监控和自动驾驶等领域的核心技术。而YOLOv5凭借其出色的精度与速度平衡,已经成为工业级部署的首选方案之一。然而,对于初学者而言,在 Linux 系统上从零搭建一个稳定可用的 YOLOv5 环境仍面临不少挑战:CUDA 驱动不兼容、PyTorch 安装失败、依赖冲突……这些问题常常让人望而却步。
本文基于Ubuntu 22.04 LTS实测环境,手把手带你完成从 Miniconda 安装到 YOLOv5 功能验证的全过程。我们采用 Conda 作为包管理工具,不仅避免了系统 Python 的污染,还能更优雅地处理 GPU 支持和复杂依赖关系。整个流程经过多次验证,适合个人开发调试,也适用于后续 Docker 化部署。
搭建轻量级 Python 管理环境:Miniconda 安装与初始化
为什么不直接用系统自带的 pip?因为当你同时运行多个 AI 项目时,不同版本的 torch、numpy 或 opencv 极易引发“依赖地狱”。Conda 的虚拟环境机制可以完美隔离这些冲突。
推荐使用Miniconda而非 Anaconda,原因很简单:它只包含最核心的功能(Python + conda),体积小、启动快,非常适合服务器或嵌入式场景。
前往清华大学开源镜像站下载最新版安装脚本:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
选择适用于 x86_64 架构的 Bash 安装包,通常是:
Miniconda3-latest-Linux-x86_64.sh执行安装命令(请根据实际路径调整):
bash ~/Downloads/Miniconda3-latest-Linux-x86_64.sh安装过程中会提示你接受许可协议(输入yes)、确认安装路径(建议保留默认)以及是否初始化 Conda(务必选yes)。这一步将自动向.bashrc写入环境变量,使conda命令全局可用。
安装完成后重启终端,或手动加载配置:
source ~/.bashrc此时可在终端输入:
conda --version若能正常输出版本号,则说明安装成功。
接下来创建专属的虚拟环境。YOLOv5 要求 Python ≥ 3.7,但为了更好的兼容性和性能支持,建议使用 Python 3.9:
conda create -n yolov5 python=3.9 conda activate yolov5激活后,命令行前缀会出现(yolov5),表示当前处于该环境中。所有后续操作都将在此独立空间内进行,不会影响主机其他项目。
配置 GPU 加速引擎:PyTorch + CUDA 正确打开方式
YOLOv5 的推理效率高度依赖 GPU 加速。如果你有一块 NVIDIA 显卡,千万别让它闲置在那儿跑 CPU 推理——那可能是十倍以上的性能差距。
首先检查显卡驱动状态:
nvidia-smi这条命令不仅能查看 GPU 型号和温度,还会显示驱动版本以及驱动所支持的最高 CUDA 版本(注意不是已安装的 CUDA Toolkit)。例如:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 535.129.03 Driver Version: 535.129.03 CUDA Version: 12.2 | |-------------------------------+----------------------+----------------------+这里的关键是CUDA Version: 12.2,意味着你可以安装最高支持到 CUDA 12.2 的 PyTorch 版本。
然后访问 PyTorch 官网获取安装命令:
https://pytorch.org/get-started/locally/
选择对应 CUDA 版本(如 11.8 或 12.1),复制 conda 安装指令。例如:
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia⚠️ 小贴士:如果显卡较老或无独显,可安装 CPU-only 版本,但训练和检测速度会显著下降:
bash conda install pytorch torchvision torchaudio cpuonly -c pytorch
安装过程可能需要几分钟,请耐心等待。完成后进入 Python 进行验证:
import torch print("PyTorch version:", torch.__version__) print("CUDA available:", torch.cuda.is_available()) print("Number of GPUs:", torch.cuda.device_count()) if torch.cuda.is_available(): print("Current GPU:", torch.cuda.get_device_name(0)) print("cuDNN enabled:", torch.backends.cudnn.enabled)理想输出应为:
PyTorch version: 2.3.0 CUDA available: True Number of GPUs: 1 Current GPU: NVIDIA GeForce RTX 3060 cuDNN enabled: True只有当CUDA available为True时,才说明 GPU 支持真正就绪。否则需回头排查驱动、CUDA 版本匹配问题。
获取并配置 YOLOv5 项目环境
Ultralytics 维护的 YOLOv5 代码库结构清晰、文档完善,是目前社区最活跃的目标检测实现之一。
推荐通过 Git 克隆项目,并切换至稳定发布版本(如 v6.0 或 v7.0),避免使用主干分支带来的不稳定风险:
git clone https://github.com/ultralytics/yolov5.git cd yolov5 git checkout v6.0如果你网络受限无法使用 Git,也可以访问 GitHub 发布页面手动下载 ZIP 包:
https://github.com/ultralytics/yolov5/releases/tag/v6.0
解压后进入目录:
unzip yolov5-v6.0.zip -d yolov5 cd yolov5接下来安装项目依赖。原始requirements.txt中的部分包在国内访问较慢,建议使用豆瓣、清华或阿里云镜像源加速:
pip install -r requirements.txt -i https://pypi.douban.com/simple/常用国内镜像源参考:
- 豆瓣:
https://pypi.douban.com/simple/ - 清华:
https://pypi.tuna.tsinghua.edu.cn/simple - 阿里云:
https://mirrors.aliyun.com/pypi/simple/
此外,为方便后续数据分析和可视化调试,建议补充安装一些常用工具库:
conda install -c conda-forge matplotlib seaborn pandas tqdm notebook这些库虽然不在原生依赖中,但在绘制损失曲线、分析预测结果、编写 Jupyter Notebook 时非常实用。
实战测试:让摄像头“看见”世界
一切准备就绪,现在来运行第一个检测任务!
YOLOv5 提供了简洁的detect.py脚本,支持图像、视频和摄像头输入。
启用本地摄像头实时检测
python detect.py --source 0参数说明:
---source 0表示调用第一个摄像头(通常为笔记本内置摄像头)
- 若连接了外接摄像头,可尝试1,2等编号
首次运行时,程序会自动从云端下载轻量模型yolov5s.pt,因此需保持网络畅通。下载完成后会在控制台看到类似日志:
Downloading https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt...成功运行后将弹出 OpenCV 窗口,实时显示检测画面:
- 物体被红色边框标记
- 左上角显示类别标签和置信度(如person 0.89)
- FPS 计数持续更新
如果一切正常,恭喜你!你的机器已经具备“视觉感知”能力。
使用本地文件测试
除了摄像头,也可以指定图片或视频进行离线测试:
python detect.py --source test.jpg python detect.py --source video.mp4检测结果会自动保存在runs/detect/exp/目录下,包括标注后的图像或视频文件。
你可以多次运行,每次都会生成新的子目录(exp, exp2, exp3…),便于对比实验效果。
模型选型策略:如何根据硬件选择合适的 YOLOv5 模型?
YOLOv5 提供多种尺寸的预训练模型,适应不同的计算资源和应用场景:
| 模型 | 特点 | 推荐用途 |
|---|---|---|
yolov5s | 小型,速度快,参数少 | 边缘设备、移动端、低延迟场景 |
yolov5m | 中型,精度与速度均衡 | 通用检测任务 |
yolov5l | 大型,高精度 | 对准确率要求高的质检场景 |
yolov5x | 超大型,最大精度 | 服务器端高性能推理 |
你可以手动下载任意模型进行测试:
wget https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt然后指定权重运行:
python detect.py --weights yolov5s.pt --source 0💡 经验法则:在 RTX 3060 及以上显卡上,
yolov5s和yolov5m可轻松达到 30+ FPS;而在 Jetson Nano 等嵌入式平台,建议仅使用yolov5s并降低分辨率以保证流畅性。
开发利器:PyCharm 集成 Conda 环境
虽然命令行足够强大,但在调试模型结构、修改数据增强逻辑时,IDE 能极大提升效率。PyCharm(尤其是 Professional 版)对 Python 科学计算支持良好。
打开 PyCharm → File → Open → 选择yolov5项目根目录。
接着配置解释器:
- 点击右下角 “Python Interpreter”
- Add Interpreter → Add Local Interpreter
- 类型选择Conda Environment
- 路径填写:/home/你的用户名/miniconda3/envs/yolov5/bin/python
不确定路径?可通过以下命令查询:
conda info --envs输出中找到(yolov5)对应的完整路径,其下的bin/python即为目标解释器。
配置完成后,新建一个测试脚本:
import torch print(torch.cuda.is_available())运行结果应为True。如果是False,说明 PyCharm 仍在使用系统解释器,需重新检查配置路径。
常见问题排查指南
❌conda: command not found
这是最常见的环境变量问题。通常是因为.bashrc未正确加载。
解决方法是手动添加路径:
export PATH="/home/你的用户名/miniconda3/bin:$PATH"并将该行写入.bashrc实现永久生效:
echo 'export PATH="/home/你的用户名/miniconda3/bin:$PATH"' >> ~/.bashrc source ~/.bashrc❌ERROR: Could not find a version that satisfies the requirement
多半是 PIP 源超时或版本冲突。
解决方案:
- 更换国内镜像源(如-i https://pypi.tuna.tsinghua.edu.cn/simple)
- 升级 pip 到最新版:
pip install --upgrade pip- 对某些顽固包(如 pillow、numpy),改用 conda 安装往往更可靠:
conda install pillow numpy❌ PyCharm 报错No module named 'torch'
本质是解释器路径错误。确保你在 PyCharm 中选择的是 Conda 环境中的 Python,而不是/usr/bin/python3或 base 环境。
❌CUDA out of memory
显存溢出是训练大模型时的经典问题。
应对策略:
- 减小图像尺寸:--img 320
- 使用小型模型:yolov5s
- 关闭其他占用 GPU 的程序(如 Chrome、Blender)
示例命令:
python detect.py --weights yolov5s.pt --source 0 --img 320此举可将显存占用降低约 40%,尤其适合集成显卡或入门级独显用户。
工业化延伸:构建 Docker 镜像实现标准化部署
当你完成了本地验证,下一步往往是将模型封装为服务投入生产。Docker 是实现这一目标的最佳载体。
以下是一个基于 NVIDIA CUDA 基础镜像的 Dockerfile 示例:
FROM nvidia/cuda:11.8-devel-ubuntu20.04 RUN apt update && apt install -y python3-pip git RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 COPY . /app WORKDIR /app RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple CMD ["python", "detect.py", "--source", "0"]构建镜像时需启用 NVIDIA 容器工具包:
docker build -t yolov5-realtime . docker run --gpus all -it yolov5-realtime结合 Kubernetes 或 Docker Compose,即可实现多节点集群部署,广泛应用于:
- 工业流水线缺陷检测
- 安防系统人脸识别
- 自动驾驶前端感知
- 无人机目标追踪
这种“一次构建,处处运行”的模式,正是现代 MLOps 的核心理念。
YOLO(You Only Look Once)系列之所以成为行业标准,不仅在于其算法创新,更在于其极强的工程落地能力。从 Conda 环境隔离到 Docker 容器化,从 ONNX 导出到 TensorRT 加速,YOLOv5 提供了一整套开箱即用的工具链。
掌握这套部署流程,意味着你已经迈出了 AI 视觉实战的第一步。接下来,不妨尝试:
- 使用自定义数据集训练专属模型
- 将模型导出为 ONNX 格式并用 ONNX Runtime 推理
- 部署至 Jetson Nano、RK3588 等边缘设备
真正的智能,始于你能让机器“看得懂”这个世界。现在,就出发吧。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考