YOLOv5 入门保姆级教程

YOLOv5   模型检测

1.关键参数(常用)

(1)weights:训练好的模型文件

(2)source:检测的目标,可以是单张图片、文件夹、屏幕或者摄像头等

python detect.py --weights yolov5s.pt --source 0 #打开摄像头/img.jpg #打开图片/video.mp4 #视频/screen #整个屏幕

(3)conf-thres:置信度阈值,越低框越多,越高框越少

(4)iou-thres:IOU阈值,越低框越少,越高框越多

(5)max-det:在一张图片中最大的检测数量

(6)classes:指定类别以后,只检测出指定的类别

2.基于torch.hub的检测方法

import torch

# 确保你提供的路径正确,并且该目录包含hubconf.py文件
model_dir = 'E:/yolov5-7.0/'

# 从本地路径加载YOLOv5s模型
model = torch.hub.load(model_dir, 'yolov5s', source='local')

# 确保图像路径正确
image_path = './data/images/cat.png'

#Results
results = model(image_path)

# 显示结果
results.show()

YOLOv5   数据集构建

准备工作

1.数据收集

图片

视频(用OpenCV进行抽帧)

创建一个resource的文件夹,结构如下

在extra.ipynb中写入以下代码

import cv2
import matplotlib.pyplot as plt

#打开视频
video = cv2.VideoCapture("./favorite.mp4")
#读取一帧
ret,frame = video.read()

img = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
plt.imshow(img)

试运行,能看到一帧图像.

接着在extra.ipynb中写入以下代码,会在images文件夹下传入指定帧的图像.

video = cv2.VideoCapture("./favorite.mp4")
num = 0         #计数器
interval = 10   #间隔帧
while True:
    ret,frame = video.read()
    num += 1
    if ret:
        if num % interval == 0:
            cv2.imwrite("./images/"+str(num)+".jpg",frame)
    else:
        break

2.标注工具

打开终端,激活YOLOv5的环境,输入“pip install labelimg”命令.

下载好以后输入“labelimg”.

点击opendir,选择要标注的图片所在的文件夹,弹出的第二个框选择label(标注好的图像放置的文件夹),建议images和label并列.

     

在左侧栏目中找到并把它替换为yolo,再点击save,最终就会以YOLOv5的方式存下来.同时在view中打开auto save mode,这样不用每次手动保存.

开始标注每一张图像.

快捷键W: Create  RectBox

A: 上一张

D: 下一张

模型训练

1.整理数据集

images文件夹下有train(训练集)和val(验证集)两个文件夹,label文件夹下也有train和val两个文件夹,classes.txt可以放在外层文件夹(我的是resource),即与images并列.

2.关键参数

weights:预训练的权重文件

data:数据集

在官方给定的文件基础上再次训练,打开data目录下coco128.yaml

path:数据集所在位置

train:训练集所在位置

val:验证集所在位置

改写对应参数可以开始训练,把resource文件夹放入yolov5-7.0文件夹下,coco128.yaml复制一份并重名名为initial.yaml,对应路径改为

names的东西改为设定的标签:  

在train.py里面修改路径

开始训练模型(注意:这个时候有报错可能是一些模块没有安装好,比如pandas,seaborn等,根据报错信息安装好就可以了)

训练好以后根据提示路径打开,weights文件夹下有两个权重文件,best.pt是训练过程中最好的模型,last.pt是训练过程中最后一轮模型,根据需要选择.

在终端输入tensorboard --logdir runs查看训练过程中各项指标的变化,默认情况下,TensorBoard会在localhost的6006端口运行,如果被占用,通过tensorboard --logdir runs --port 6007来指定另一个端口.根据网址打开TensorBoard可以查看训练过程中某些指标变化和模型结构,ctrl+C 可以退出TensorBoard.

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值