【备忘】从零开始搭建Yolo5训练环境

本文详细介绍了在Ubuntu 20.04上,使用RTX 3060 Ti显卡从零开始搭建Yolo5训练环境的过程。首先确保了NVIDIA驱动的正确安装,接着安装CUDA 10.1,再通过Anaconda建立虚拟环境以避免系统污染。之后,在虚拟环境中安装Git,拉取Yolov5项目,并安装Pytorch 1.13.0(匹配CUDA 11.6)及其依赖。最后,修改Yolov5的requirements.txt并安装剩余的依赖包,完成环境配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 背景

不包含Yolo5所需的各种库,基础环境总览如下:

  1. 硬件
    CPU: Intel® Xeon® Silver 4210R CPU @ 2.40GHz × 20
    RAM:32GB DDR4
    SSD:512GB NVME
    HD:2.8TB RAID5。
    Graphic: NVIDIA RTX-3060Ti

  2. OS:
    Ubuntu:20.04.4 LTS
    Kernel: 5.15.0-43-generic
    Graphic Driver: NVIDIA driver metapackage 来自 nvidia-driver-515(专有,tested)
    特别提醒,必须保证显卡驱动的正确安装,且能被OS所认识,否则会影响后面的cuda安装或造成死机等奇怪现象。如下图则说明驱动正确安装。
    在这里插入图片描述

  3. cuda

(base) ubuntu@ubuntu-Super-Server:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
  1. anaconda版本 – 4.13.0
    安装anaconda纯粹就是利用它的虚拟环境区分能力,它网站的安装包管理说实在很难用。
(base) ubuntu@ubuntu-Super-Server:~$ conda --version
conda 4.13.0
  1. python版本 – 3.10.4
(yolo5) ubuntu@ubuntu-Super-Server:~$ python --version
Python 3.10.4
  1. Pytorch(1.13.0,请注意,这个版本与显卡硬件的并行计算能力相关,详情可参考,RTX-3060Ti要求Nightly的preview版本)以及cudatoolkit(11.6)
>>> import torch
>>> torch.__version__
'1.13.0.dev20220804+cu116'

2. 安装过程

1. 显卡驱动

  • 前往NVIDIA显卡驱动下载地址选择正确的CPU架构以及OS后下载驱动
    NVIDIA驱动下载
  • 下载后驱动文件应该为一个后缀为.run的文件,将此文件赋予执行权限(sudo chmod +x NVIDIA-Linux-x86_64-515.65.01.run)
    在这里插入图片描述
  • 重启机器,长按Shift键,进入grub的命令行模式。在命令行模式(无X-server启动)的情况下,运行以上run文件,安装完成后重启。

2. 安装cuda

基本以下两条命令顺序执行就可以了,留意gcc的版本,网上有文章说不能低于7.5,我是9.4,可以gcc -v看一下。

sudo apt-get install build-essential
sudo apt-get install nvidia-cuda-toolkit
#检查是否正确安装
nvcc --version

3. 安装anaconda及配置虚拟环境

【写在前面】请勿在第3步前安装以下任何的软件,包括:Python、Pytorch、cuda-toolkit、yolo各依赖包,这些安装都要在虚拟环境下进行,否则机器的实验环境会弄得很乱。

3.1 下载anaconda

  • 可以到以下链接下载Linux 64位的安装包:Anaconda下载链接
  • 下载完成后同样赋予可执行的权限。(sudo chmod +x <anaconda_install_package.sh>)

3.2 配置虚拟环境

  • 第一步,升级conda
  • 第二步,创建虚拟环境。执行“新建虚拟环境命令”
  • 第三步,进入虚拟环境。
# 升级conda
conda update conda
conda update anaconda
# 新建虚拟环境命令
# 创建虚拟环境时可以顺便指定该虚拟环境下的Python版本,把optional后的加进去即可。
conda create -n <your-env-name> [optional: python=<your-python_version>]
# 查看各虚拟环境名称
conda info --envs  
# 进入虚拟环境
conda activate <your-env-name>
# 退出虚拟环境
conda deactivate

4. 安装Yolo5环境

4.1 在conda无激活的环境下安装git

conda deactivate
# 确保console完全退出conda环境(包括base),如果你是从base环境进入自建虚拟环境,则需要执行两次。
sudo apt-get install git
# 然后git初始化一下,不赘述。

4.2 进入虚拟环境

conda activate <your-env-name>
# 不记得env名称就 conda info --envs 一下

4.3 拉取Yolov5项目

git clone https://github.com/ultralytics/yolov5.git

5. 安装Pytorch、cuda-toolkit以及各依赖包

5.1 安装Pytorch+cuda-toolkit(在虚拟环境下,后续除非特殊说明,一般都在虚拟环境下进行

在以下链接自行选择,我的选择如下图
在这里插入图片描述
特别提示一下,尽量不要用conda install < your-package-name >命令,源比较慢,最关键会出现各个依赖库的confilct,我一开始也是打算全部用conda install完成,后来还是放弃了,直接用pip吧。

#第一步,先升级pip到最新
pip install -U pip
#第二步,安装Pytorch,命令如下,我的环境pip跟pip3是一样的,所以我直接用了pip
pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cu116

5.2 安装yolov5所需的依赖包

  • 第一步,修改yolov5目录下的requirements.txt,注释掉torch和torchvision,这两项在5.1里面已经装过了。个人推荐加上wandb。
    在这里插入图片描述

  • 第二步安装依赖包

pip install -r requirements.txt

至此,环境的搭建基本完成,可以按照以上步骤检查一下。

### 学习YOLO目标检测框架的全面指南 #### 一、基础知识 为了深入理解YOLO(You Only Look Once),需要先了解其基本概念和架构。YOLO是一种实时目标检测算法,它将目标检测视为回归问题,在单次前向传播过程中完成边界框预测和类别分类的任务[^1]。 #### 二、学习路径 以下是学习YOLO所需的关键知识点: 1. **理论基础** - 阅读关于YOLO的基本概念及其与其他目标检测方法的区别[^2]。 - 掌握YOLO的核心思想:通过划分图像网格并预测每个网格内的对象位置和类别概率来实现高效的目标检测。 2. **环境搭建** - 安装必要的依赖库,例如PyTorch或TensorFlow,以及OpenCV用于图像处理[^3]。 3. **使用预训练模型** - 下载官方提供的预训练权重文件,并加载至YOLO网络结构中进行测试。 - 使用这些预训练模型可以快速验证YOLO的功能性和性能表现。 4. **自定义数据集准备** - 收集标注好类别的图片作为训练素材[^4]。 - 将数据转换成适合YOLO使用的格式,通常包括标签文件(.txt)与对应的图像文件。 5. **模型训练** - 调整超参数设置,比如批次大小(batch size),初始学习率(learning rate)等。 - 开始基于自己的数据集微调或者重新训练整个网络。 6. **评估与优化** - 利用mAP(mean Average Precision)指标衡量模型精度。 - 对于低效区域尝试调整anchor box尺寸或其他策略提升效果。 7. **部署应用** - 导出训练后的模型为更轻量化的形式如ONNX/TensorRT以便跨平台支持[^5]。 - 实现在边缘计算设备上的推理操作。 #### 三、代码实例 下面展示了一个简单的Python脚本用来加载YOLO v3模型并对一张图片执行推断: ```python import cv2 import numpy as np def load_yolo(): net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg") classes = [] with open("coco.names", "r") as f: classes = [line.strip() for line in f.readlines()] layer_names = net.getLayerNames() output_layers = [layer_names[i[0]-1] for i in net.getUnconnectedOutLayers()] colors = np.random.uniform(0, 255, size=(len(classes), 3)) return net, classes, colors, output_layers net, classes, colors, output_layers = load_yolo() img_path="dog.jpg" img=cv2.imread(img_path) height,width,_=img.shape blob=cv2.dnn.blobFromImage(img, scalefactor=0.00392,(416,416),(0,0,0),True,crop=False) net.setInput(blob) outs=net.forward(output_layers) class_ids=[] confidences=[] boxes=[] for out in outs: for detection in out: scores=detection[5:] class_id=np.argmax(scores) confidence=scores[class_id] if confidence>0.5: center_x=int(detection[0]*width) center_y=int(detection[1]*height) w=int(detection[2]*width) h=int(detection[3]*height) x=int(center_x-w/2) y=int(center_y-h/2) boxes.append([x,y,w,h]) confidences.append(float(confidence)) class_ids.append(class_id) indexes=cv2.dnn.NMSBoxes(boxes,confidences,score_threshold=0.5,nms_threshold=0.4) font=cv2.FONT_HERSHEY_PLAIN colors=np.random.uniform(0,255,size=(80,3)) if len(indexes)>0: for i in indexes.flatten(): x,y,w,h=boxes[i] label=str(classes[class_ids[i]]) color=colors[i%len(colors)] cv2.rectangle(img,(x,y),(x+w,y+h),color,2) cv2.putText(img,label+" "+str(round(confidences[i],2)),(x,y-5),font,1,color,2) cv2.imshow('image', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 此段程序展示了如何利用opencv库加载YOLOv3模型,并对指定路径下的图片实施物体识别标记功能。 #### 四、总结 通过上述步骤的学习实践,可以从零开始掌握YOLO系列算法的应用开发能力。不仅限于此处提及的内容,随着版本迭代更新还会有更多改进特性值得探索研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值