从环境搭建到目标检测-零基础版YOLO(v1...v11-v12.....)训练-服务器(Ubuntu)版 and Windows版
我这里是文字版,如果你操作完成后,或者想看视频版,可直接去看 B站上的 @林亿饼 的教学视频
如果你是Windows系统,100%推荐去看他的视频,并给他献上三连,如果是Ubuntu系统也强烈推荐去看它的视频,如果你不想费时间去看视频,或者已经看完了,只是忘记了某个步骤,可以来看我的文字版,可以快速解决你的问题
B站视频教程(Windows版):
https://www.bilibili.com/video/BV182bZzMEYD?vd_source=69676061361fa9cf1035e8d2314644c9
https://www.bilibili.com/video/BV182bZzMEYD?vd_source=69676061361fa9cf1035e8d2314644c9
先看成果(本教程主要是环境搭建和使用已经训练好的模型来验证,或者直接使用已经训练好的模型,如果要自己训练YOLO模型,请点开我的主页):
这是目标检测

这是人体姿态检测

这是目标检测,是一张图片

这是我的百度网盘,下面提到的都在这里面
https://pan.baidu.com/s/1_xW_YlPa7Jj_rMOO8fRpKg?pwd=saw1
(所有的操作默认要使用NVIDIA GPU)
一,查看GPU型号,内存大小,确定电脑配置
Windows版:
1,打开任务管理器,按win+x然后选择然后管理器,按图操作可以看到GPU0和GPU1,我们要选择有NVIDIA字样的,就是GPU1,可以看到自己的GPU型号(我这里是RTX 4060),然后查看它的GPU内存,要大于等于4GB才可以用,如果满足这些条件那就可以使用GPU,然后查看内存大小,要大于等于16G,确定好了,我们就可以开始下一步了。

服务器(Ubuntu)版:
运行下面命令查看GPU型号:
nvidia-smi

二,安装yolo源代码,下载ultralytics源代码,下载需要的预训练模型
Windows版:
1,在浏览器中输入以下网址,然后回车就可以看到收藏最多的ultralytics,然后点击它
https://github.com/search?q=ultralytics&type=repositories

为了确保后面的操作一致,我们和b站教学保持一致,先按图片操作选择v8.3.163的版本,然后点击Code,再点击Download.ZIP就可以下载它了(如果你打开不了github,可以点击我的百度网盘,找到 “步骤二ultralytics” 的文件名,里面就是已经下载好的ultralytics,这里面还有yolov8n.pt)

扩展:
YOLO 模型的命名规则(以 YOLOv8 为例):
YOLO 每个版本(v8/v11)都会提供不同体量的模型,后缀代表模型大小:
n:nano(超小型,参数最少、速度最快、精度略低)
s:small(小型)
m:medium(中型)
l:large(大型)
x:extra large(超大型,参数最多、精度最高、速度最慢)
2,下载好后,解压一下,解压完成后,创建一个文件夹专门来放YOLO源代码

3,下载预训练模型(.pt文件,后面可以直接使用这些训练好的文件来验证或者直接用它们做项目)
打开网址,然后Ctr+f搜索,输入yolo11就可以查看到已经训练好的yolo模型(这里以轻量级的yolo11n为例,你可以搜索选择自己想要的):
https://github.com/ultralytics/assets/releases

然后我这里选择了三个,你可以选择自己想要的下载(需要这三个可以打开我的百度网盘找到 “步骤二yolo模型” 里面有这三个)
1,yolo11n.pt(目标检测,识别图像 / 视频中的物体,并在物体周围画 “矩形框”)
2,yolo11n-seg.pt(实例分割,不仅能检测物体,还能精确 “抠出” 物体的轮廓)
3,yolo11n-pose.pt(姿态估计,检测人体的关键点)

下载好后把它们拖到程序源码里:

到这里就把程序源码别人已经训练好的模型准备好了
服务器(Ubuntu)版:
1,这里可以有两种方式
方式一:
(就是像上面Windows版一样,把它下载下来,然后我们是ssh远程连接的,在Ubuntu中创建一个文件夹专门来放我们的YOLO,然后把zip拖进去就可以了,我使用的是FinalShell)

方式二:
在终端输入:
git clone https://github.com/ultralytics/ultralytics.git

这个方式大概率会卡住,而且如果你没有下载git,也不能使用,推荐使用方式一
2,解压文件夹
先检查是否安装 unzip
unzip --version
如果提示 command not found,则需要先安装:
sudo apt update && sudo apt install unzip -y
直接解压到当前目录
unzip ultralytics-8.3.163.zip

3,下载预训练模型(我们这里直接使用Windows版的方式下载,然后拖到我们的源码文件里即可)

三,安装Anaconda,设置conda和pip镜像
Windows版:
1,在浏览器中输入网址,然后ctr+f搜索 “2024.06-1” 然后根据你的电脑版本选择进行下载(不知道为什么,现在这个网址打不开了,如果你是Windows系统的电脑,可以打开我的百度网盘 找到 “步骤三Anconda3安装包”,这里面有我已经下载好的Windows系统的安装包):
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
2,然后点开安装包,这里选择Just Me,然后后面的全部默认

3,按下win键,搜索 "anaconda prompt" 并打开

4,设置conda和pip镜像
输入下面命令回车:
notepad .condarc
然后在记事本中粘贴下面内容并保存:
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

然后conda镜像就设置好了,如果这里出现了问题,打开B站,然后 拖动进度条到 10:26
【YOLO环境配置】https://www.bilibili.com/video/BV182bZzMEYD?vd_source=69676061361fa9cf1035e8d2314644c9
5.设置pip镜像
运行下面命令,看到图片上的内容,说明pip镜像设置好了:
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

服务器(Ubuntu)版:
1,下载软件我们还是和Windows的操作方式一样,Linux版本的,可以打开我的百度网盘,找到 “步骤三Anconda3安装包”,这里面有我已经下载好的Linux系统的安装包,然后按图操作把它拖到我们的YOLO文件中

2. 先给安装包添加可执行权限
chmod +x Anaconda3-2024.06-1-Linux-x86_64.sh
3.执行安装脚本
./Anaconda3-2024.06-1-Linux-x86_64.sh
4.按照向导提示操作
第一步:按Enter键阅读许可协议(或直接按q跳过阅读),然后输入yes同意协议。
第二步:选择安装路径(默认是/home/gly/anaconda3,直接按Enter用默认路径即可)。
第三步:询问是否初始化 Anaconda(是否将其加入环境变量),输入yes(否则后续需要手动配置环境变量)。
5.使环境变量生效(到这里,每次打开终端就会进入base环境,我们还要后面的操作)
source ~/.bashrc
6.关闭 Anaconda 的自动激活
conda config --set auto_activate_base false
7.手动激活base环境的命令(需要用 Anaconda 时,手动运行下面命令)
conda activate base
8.设置conda和pip镜像
输入下面命令打开.condarc配置文件:
nano ~/.condarc

然后把下面的内容粘贴进去(这个粘贴进去有点乱,下面有更好的方式):
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
直接复制下面命令并运行,它会在.condarc 文件追加内容
cat <> ~/.condarc
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
EOF
下图是这条命令的效果

9.设置pip镜像
运行下面命令,看到如图所示,说明pip镜像设置好了:
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

四,安装YOLO环境(创建YOLO环境,安装pytorch,安装其它包)
Windows版:
1.输入下面命令创建python环境(让你选择的时候直接回车即可确认):
conda create -n yolo python=3.11
然后输入下面命令查看创建的python(yolo是给它取的名字)环境
conda env list
输入下面命令进入yolo环境(每次进入环境都是进入base环境,我们每次都要执行这个命令进入yolo环境:
conda activate yolo
2.安装显卡,这里我默认是英伟达非50系列(1050Ti,2050,3060,4060)的为例子
如果你的电脑是50系列的或者没有显卡,请按照B站教程进行选择,打开下面教程链接,然后把进度条拖到15:50
【YOLO环境配置】
https://www.bilibili.com/video/BV182bZzMEYD?vd_source=69676061361fa9cf1035e8d2314644c9
输入下面命令查看显卡驱动:
nvidia-smi
如果CUDA Verion大于11.8就可以直接安装PyTorch,如果小于11.8,就要重新安装一下显卡驱动后才能安装PyTorch

(图1)
3.输入下面网址进入英伟达显卡驱动下载界面,然后根据你的电脑输入完信息后点击搜索,搜索完后会有很多版本,顺便选择一个都可以(如果你不知道要怎么去填,可以这样操作,把你的电脑的下面这张图片(图2)和上面那张图片(图1)丢给ai,让它教你填一下信息,就说:“这是我的笔记本电脑的信息,你看看我要怎么去填我的信息去搜索我的显卡驱动”)
nvidia.cn/geforce/drivers/

(图2)
安装好后直接打开安装包,然后全部保持默认一直点击下一步即可(如果有报错,不用管它选择是),安装好后按照提示重启电脑就完成了
可再次运行下面命令查看,会发现它大于11.8,就完成了
nvidia-smi

4.安装pytorch(要在yolo环境)
pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu118
如果上面的安装太慢了可运行下面命令进行安装(从国内镜像网站进行安装)
pip install torch==2.5.0 torchvisio==0.20.0 torchaudio==2.5.0 -f https://mirrors.aliyun.com/pytorch-wheels/cu118
安装好后运行下面命令,查看是否成功,如果显示如图类似信息,那说明成功了
pip show torch

然后输入
python
进入python环境
再输入
import torchvision
如果没有报错说明torchvision没有问题
再输入
import torch
torch.cuda.is_available()
如果显示True,说明GPU可用
再输入
torch.randn(1).cuda()
如图所示,那说明完全没有问题了

然后按住ctr+z退出
5.安装剩余的包
输入命令
#这里的路径选择你自己的yolo源码路径
pushd F:yolo_sourceultralytics-8.3.163

然后输入下面命令就开始安装剩余的包了
pip install -e .
6.
然后运行命令进行目标检测模型的推理
yolo detect predict
再到结果保存的地方去查看训练结果
打开yolo源码
然后进入下面文件夹即可看到训练结果图片
runs/detect/predict


如图,那yolo环境就配置完成了
五,安装PyCharm,配置PyCharm环境,在PyCharm中运行YOLO
a.打开下面网址,然后直接下载即可,这个是Windows版本的(我的百度网盘里也有已经下载好的,如果你需要可以自己使用,注意,现在的pycharm把社区版和专业版融合了,你下载好和它会有一个月的专业版免费使用时间,到期后,选择免费的就够用了):
https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows

b.下载安装好后打开,然后按图操作,打开我们的YOLO源码


c.打开好后,我们开始设置环境,就是告诉pycharm,要用那个环境来运行我们的这个源码,先按照图片操作点击(注意,我这里已经设置好了的,我是演示一遍,跟着我操作即可,不用管我哪里有什么),

然后这里要选择一下conda路径,就是我们之前安装的那个,你安装在什么路径,就去选择一下


打开后,就可以就可以看到我们之前设置的yolo环境了,选择它,然后确认,我们的YOLO环境就设置好了(注意这里可能会出现确定点击不了的情况,这个好像是bug,可以点击一下"生成新的",再点击回"选择现有",然后再点击确认就可以了)

然后要等待一会,看到屏幕右下角有yolo这个标志,那就说明设置成功了

然后到这里就Windows的YOLO环境就全部结束了,下面我给你一个py代码,你运行就可以看到YOLO目标检测了
import cv2
from ultralytics import YOLO
model = YOLO(r"yolov8n.pt")
results = model(
source=1, # source=0表示使用电脑摄像头,source=1表示使用USB连接的摄像头
stream=True,
)
for result in results:
plotted = result.plot()
cv2.imshow("YOLO Inference", plotted)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
在当前的文件里创建一个mycam.py,然后把上面的代码复制进去 ctr+s 保存,注意,这里有source=0, # source=0表示使用电脑摄像头,source=1表示使用USB连接的摄像头,你对应选择就可以了

然后点击绿色的运行按钮,你就可以看到它目标检测的画面了,后面我们把自己训练的pt文件和这个代码里的yolov8n.pt替换就可以运行我们自己的YOLO模型了,yolov8n.pt就是我们第二步骤的下载的预训练模型,可以替换为yolov11n.pt和其它,都可以自己试试,只需要改那一处即可

然后到这里,YOLO环境就配置完成了,如果你后面要自己训练yolo模型,请看我的主页,有yolo数据集的准备,如何训练自己的yolo模型
服务器(Ubuntu)版:
1.输入命令创建python环境(选择时直接回车确认)
conda create -n yolo python=3.11
然后输入下面命令查看创建的python(yolo是给它取的名字)环境
conda env list

输入下面命令进入yolo环境(每次都要执行这个命令进入yolo环境):
conda activate yolo
2.安装显卡,这里我默认是英伟达非50系列(1050Ti,2050,3060,4060)的为例子
如果你的电脑是50系列的或者没有显卡,请按照B站教程进行选择,打开下面教程链接,然后把进度条拖到15:50
【YOLO环境配置】
https://www.bilibili.com/video/BV182bZzMEYD?vd_source=69676061361fa9cf1035e8d2314644c9
输入下面命令查看显卡驱动:
nvidia-smi
如果CUDA Verion大于11.8就可以直接安装PyTorch,如果小于11.8,就要重新安装一下显卡驱动后才能安装PyTorch

(图1)
3.输入下面网址进入英伟达显卡驱动下载界面,然后根据你的电脑输入完信息后点击搜索,搜索完后会有很多版本,顺便选择一个都可以(如果你不知道要怎么去填,可以这样操作,把你的电脑的下面这张图片(图2)和上面那张图片(图1)丢给ai,让它教你填一下信息,就说:“这是我的Ubuntu电脑(服务器)的信息,你看看我要怎么去填我的信息去搜索我的显卡驱动”)
nvidia.cn/geforce/drivers/

(图2)
我们可以在Windows下载好,然后把它拖到Ubuntu系统中

4.服务器(ubuntu)安装 NVIDIA 驱动比较麻烦,因为Linux 图形界面依赖开源驱动,而 NVIDIA 闭源驱动需要独占显卡资源,所以得临时关闭图形界面避免冲突。
a.先更新系统包
sudo apt update && sudo apt upgrade -y
b.禁用 nouveau 开源驱动(避免和 NVIDIA 驱动冲突)
sudo echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
sudo echo "options nouveau modeset=0" >> /etc/modprobe.d/blacklist.conf
c.更新 initramfs 并重启
sudo update-initramfs -u
sudo reboot
d.停止图形界面服务
若你的桌面是GNOME运行下面命令
sudo systemctl stop gdm3
如果是KDE用
sudo systemctl stop sddm
如果是lightdm用
sudo systemctl stop lightdm
可以运行下面命令查看你的桌面系统是那个
cat /etc/X11/default-display-manager
e.进入驱动文件所在的~/YOLO目录:
cd ~/YOLO
f.给驱动文件加可执行权限:
chmod +x NVIDIA-Linux-x86_64-590.48.01.run
g.执行安装
sudo ./NVIDIA-Linux-x86_64-590.48.01.run -no-x-check
h.安装完成后重启系统
sudo reboot
i.重启后验证驱动是否生效(如图所示便是成功了)
nvidia-smi

j.如果重启后桌面没自动出来,也可以手动启动(我这里以lightdm桌为例子)
sudo systemctl start lightdm
5.安装pytorch
pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu121
如果上面的太慢了,可以试试运行下面命令从国内源安装
pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn --extra-index-url https://download.pytorch.org/whl/cu121
安装好后运行下面命令,查看是否成功,如果显示如图类似信息,那说明成功了
pip show torch

然后输入
python
进入python环境
再输入
import torchvision
如果没有报错说明torchvision没有问题
再输入
import torch
torch.cuda.is_available()
如果显示True,说明GPU可用
再输入
torch.randn(1).cuda()
如图所示,那说明完全没有问题了

然后按住ctr+z退出
5.安装剩余的包
输入命令切换路径到你到yolo安装包里面
cd ~/YOLO/ultralytics-8.3.163
然后再输入安装命令
pip install -e .

6.然后运行命令进行目标检测模型的推理
yolo detect predict
再到结果保存的地方去查看训练结果



如图,那yolo环境就配置完成了
服务器(Ubuntu),下面是训练示例代码
from ultralytics import YOLO
import torch
if __name__ == '__main__':
torch.cuda.device_count()
model = YOLO(r"yolov8n.pt")
model.train(
data=r"landmark.yaml",
#训练轮数
epochs = 200,
#这是这台服务器的最佳设置值
batch = 396,
#imgsz 把图片放进640*640的框里,imgsz越小训练越快,imgsz必须设置为32的倍数,一般保持默认
#如果图片中要训练的东西小,就可以把imgsz调大,如果要训练的物体小,就用它的原尺寸
imgsz = 640,
#使用4块GPU
device=[0, 1, 2, 3],
#打包,这是我的最佳设置
workers = 1,
#缓存,False表示不使用缓存,cache = "ram" 表示先把所有图片都压缩好放内存里,内存足够大才能容纳这些图片,先缓存好所有图片,缓存和缩放2个工作
#上面这个表示已经帮我缓存好了训练集里的图片
cache = "ram",
#这个表示将训练好的模型保存在results文件夹里
project = "results",
name = "yolov11n_landmark"
)
#训练好后,选择best.pt,这是最好的模型
你需要改的地方有几个:
a.这里要选择你自己想训练的YOLO模型(注意,要确保它在你的源码里),就是我们之前下载的


b.这个要改成你的配置文件,如果你是第一次使用,可以点开我的主页,我下一篇笔记就是专门做YOLO数据集准备和YOLO训练的

c.这个要改成你的,如果你是Ubuntu,只有一个GPU,那把这里改成-1,它会自己帮你算出最合适的值,如果你有几个GPU,那也先把这里改成-1,然后把训练轮数改成3,如果开始训练,日志会告诉你(AutoBatch: Using batch-size 99 for CUDA:0 14.12G/23.56G (60%) ✅,比如我这里是99),你一块GPU训练的最佳值,然后我们再把它乘GPU的数量,我这里就是99*4=396,这样每块 GPU 会分到 99 张图,总 batch size 是 396,能最大化利用显存和训练速度。

d.这里,你有几块就使用几块GPU,如果只有一块,就写成 device = 0,

如果你只有一块GPU,那这里的两行代码可以不加,它是自己算你有几块GPU的

e.这个我们就在当前的YOLO源码里创建一个文件夹就可以了,它会把训练好的结果放到这里面,方便管理和查看

f.这个是你要给训练结果取的名字,自己想取什么都可以,训练好后,你就会在results文件夹里看到一个对应名称的文件,里面的有一个weights,它里面的best.pt,就是我们最终要的文件,它就是训练好的模型

好的到这里我们的环境搭建和YOLO训练就结束了,如果你想知道怎么训练自己的YOLO模型(也就是准备自己的数据集),自己标注,运行自己的模型,请点开我的主页看下一篇











