当前位置: 首页 > news >正文

快速搭建yolo测试环境,超简明的神经网络训练说明书

1 快速搭建yolo测试环境

相对于更早的版本,v5是比较舒服的,直接把仓库拉下来就行,不用单独搞测试脚本和权重文件

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

然后就是切到目录下安装依赖的第三方库:

$ cd yolov5
$ pip install -r requirements.txt

当然可能 clone 不顺畅, 就去github 上下载压缩包然后解压到这儿也是一样的,仓库链接是这个:
https://github.com/ultralytics/yolov5
在这里插入图片描述
然后就可以找个图片测试检测了:

$ python detect.py --source path_to_your_image.jpg

这里我找了个猪头,放在上一级目录中的:
在这里插入图片描述
运行命令:

$  python.exe .\detect.py --source ..\pig.png 

输出如下:
在这里插入图片描述
虽然检测结果不咋地,橙色标注的是输出的结果,检测到鸟、狗和牛,就是没检测到猪,无语(ˉ▽ˉ;)…
如上图红色标注的信息所显示的那样,输出带标记的图片在yolov5-master/runs/exp2目录下。
下图更直观哈,可以参考下图去找输出的图片:

在这里插入图片描述
换了个车的图片,这个结果比较准确,检测到了车和驾驶室里的人,我一开始都没看到这个人
在这里插入图片描述

2 自行训练

三步走,准备数据集、配置 data.yaml 文件、运行训练命令


首先建立数据集,将数据集图片放到 train/ 和 val/ 子文件夹中,分别用于训练和验证,文件目录如下:

datasets/
└── dataset/├── images/│   ├── train/│   └── val/└── labels/├── train/└── val/

images/train目录下就是训练集的图片,如下图所示。这里简单找了一些猫狗的图片,用于说明训练步骤,实际上这几张图片肯定是不够的。
在这里插入图片描述
images/val/目录下也是图片,只不过是测试集的,要和训练集的不一样。
在这里插入图片描述

然后使用标注工具(如 LabelImg 或 CVAT)对图片中的目标进行标注。
LabelImg :https://github.com/HumanSignal/labelImg
CVAT:https://github.com/cvat-ai/cvat
在这里插入图片描述

注意标注文件格式为 YOLOv5 格式,以 .txt 格式存储,每个图片对应一个 .txt 文件,文件名与图片名相同。每个 .txt 文件的内容格式如下:

<class_id> <x_center> <y_center> <width> <height>

class_id:类别编号(从 0 开始)。
x_center 和 y_center:目标框的中心坐标,范围为 [0, 1]
width 和 height:目标框的宽度和高度,范围为 [0, 1]

比如这样:
在这里插入图片描述

然后在 datasets/your_dataset/ 文件夹中创建一个 data.yaml 文件,内容如下:

yaml
train: datasets/your_dataset/images/train  # 训练集图片路径
val: datasets/your_dataset/images/val      # 验证集图片路径nc: 3                                      # 类别数量(根据你的数据集修改)
names: ['cat', 'dog', 'person']            # 类别名称(根据你的数据集修改)

然后用下面这个命令开始训练模型,

python train.py --img 640 --batch 16 --epochs 100 --data datasets/your_dataset/data.yaml --weights yolov5s.pt

训练过程中,终端会显示每个 epoch 的损失值、精度等信息。
在这里插入图片描述
如上图提示信息说明的那样,训练完成后,模型权重会保存在 runs/train/exp/weights/ 文件夹下,下图可见有两个.pt文件,best.pt就是我们刚才指定的权重文件名,是我们训练的结果。
在这里插入图片描述

说明一下参数的含义:

--img 640:输入图片的尺寸(默认 640x640)。
--batch 16:批量大小(根据你的 GPU 显存调整)。
--epochs 100:训练的轮数。
--data datasets/your_dataset/data.yaml:数据集配置文件路径。
--weights yolov5s.pt:预训练权重文件(yolov5s.pt 是 YOLOv5 的小模型,其他可选模型包括 yolov5m.pt、yolov5l.pt 和 yolov5x.pt)。

训练完了就可以评估、测试模型了,

python val.py --data datasets/your_dataset/data.yaml --weights runs/train/exp/weights/best.pt --img 640

这个命令可以用测试集评估模型,–weights用于指定权重参数,就用刚才训练得到的那个就行。
在这里插入图片描述

3 使用

和一开始一样,指定输入就行。当然还要指定用我们训练得到的那个权重文件,当然也可以用其它的权重文件,只要和具体的任务目标相契合就行。检测没训练过的目标那肯定是不行的,新增检测类型是需要重新训练的

python detect.py --source test_image.jpg --weights runs/train/exp/weights/best.pt --img 640

http://www.mrgr.cn/news/95817.html

相关文章:

  • 【leetcode hot 100 35】搜索插入位置
  • 后端——AOP异步日志
  • Bitcoin Thunderbolt 内测通道开启,加速比特币交易新时代
  • [AI建模] 使用Pinokio本地化部署混元2D到3D AI建模服务
  • 19.哈希表的实现
  • 代码随想录算法训练营第五十六天 | 108.冗余连接 109.冗余连接II
  • 各类神经网络学习:(四)RNN 循环神经网络(下集),pytorch 版的 RNN 代码编写
  • 重庆邮电大学笔试F021 考纲解析
  • QT编程之PCM音频播放与采集
  • 【Javaweb】b站黑马视频学习笔记(导览)
  • Can Large Language Models be Anomaly Detectors for Time Series? 解读
  • Docker 镜像构建与优化
  • uv - Guides 指南 [官方文档翻译]
  • C语言 【实现电脑关机小游戏】非常好玩
  • 1.NextJS基础
  • WHAM 人体3d重建部署笔记 vitpose
  • Harbor镜像仓库迁移与高可用集群搭建HTTPS实现实战指南
  • C++11QT复习(二)
  • 数据结构之优先级队列
  • Atlas 800I A2 双机直连部署DeepSeek-R1-w8a8