首页 > 其他分享 >yolov5 上手

yolov5 上手

时间:2024-07-15 23:56:11浏览次数:10  
标签:yolov5 datasets http train tsinghua edu images

0 介绍

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的约瑟夫-雷德蒙(Joseph Redmon)和阿里-法哈迪(Ali Farhadi)开发。YOLO 于 2015 年推出,因其高速度和高精确度而迅速受到欢迎。

YOLOv5 在 YOLOv4 的基础上进一步提高了模型的性能,并增加了超参数优化、集成实验跟踪和自动导出为常用导出格式等新功能。

1 环境搭建

1.1 python 环境

使用 conda 创建干净的 python 环境,conda 的安装和其他软件安装类似。

conda 创建 python 环境:

conda create -n yolo

有可能在这一步出现 Conda cannot proceed due to an error in your proxy configuration.,或者CondaHTTPError: HTTP 000 CONNECTION FAILED for url …等相关的网络问题。一个可行的解决方法是修改~/.condarc,修改 conda 的镜像配置:

vim ~/.condarc

// 把下面的内容添加到文件的末尾
channels:
  - defaults
show_channel_urls: true
default_channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

一般情况下此时问题已经解决了。也有可能会出现SSLError(SSLError(SSLError(“bad handshake: Error(…)”)))相关的报错。SSL 连接问题极有可能是 https 安全性导致的问题,可以把上面~/.condarc中的一系列地址中的 https 都改成了 http即可。此时大概率问题可以解决。如果还有问题,就只能另寻他法了。

1.2 下载YOLO-v5框架

可以直接使用 git clone github 上的 YOLOv5 项目,

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

由于网络的原因,可能会在这里超时而克隆失败。那么可以在 github YOLOv5 上把项目的压缩包下载下来解压即可:

unzip yolov5-master.zip
mv yolov5-master yolov5 && cd yolov5
1.3 安装依赖
python3 -m pip install -r requirements.txt
1.4 下载与训练权重

创建一个新的文件夹,用于存放YOLO-v5官方提供的预训练权重,

mkdir weights

YOLO-v5-GitHub官方下载权重文件,点击蓝色超链接即可进行下载,下载好的预训练权重放在前面新建的weights文件夹下。
在这里插入图片描述

1.5 环境测试

至此,环境搭建基本就完成了,现在测试一下搭建的环境是否正常。

python3 detect.py --weights weights/yolov5s.pt --source data/images #   --weights的意思是指定权重文件,–source的意思是指定检测文件地址

推理的结果存放在./runs/detec/exp,可以正常检测出人、巴士,说明YOLO环境搭建没有问题。

2 制作数据集

2.1 使用 labelimg 进行图片标注

labelimg 是常用的图片标注工具,用来准备 yolo 格式的数据集。安装 labelimg

pip install labelimg

图片标注完成之后,得到YOLO格式的txt文本文件。一张张图片进行标注,得到全部数据。

2.2 创建文件夹

在 Yolov5 的路径下创建satasets文件夹,用于存放数据集。

mkdir datasets

datasets下面创建文件夹imageslabels分别用来存放图片和标签

mkdir datasets/images datasets/labels

在images(图片)和labels(标签)中分别再创建两个文件夹,一个是train(训练),一个是val(测试),分别存放图片数据和标签数据。

mkdir datasets/images/train datasets/images/val
mkdir datasets/labels/train datasets/labels/val

最终的目录结构如下:

datasets/
├── images
│   ├── train
│   └── val
└── labels
    ├── train
    └── val
2.3 配置数据集和模型参数
2.3 1 配置数据集

修改数据集配置文件data/coco128.yaml,修改文件中的path, train, val, names这几项的配置信息,修改为如下:

path: /path/to/datasets # dataset root dir
train: /path/to/datasets/images/train # train images (relative to 'path') 128 images
val: /path/to/datasets/images/train # val images (relative to 'path') 128 images
test: # test images (optional)

# Classes
names:
  0: class_name_0
  1: class_name_1

names 根据实际数据集有哪些类别名称就配置几个

2.3.2 配置模型参数

修改模型配置文件:models/yolov5s.yaml
这里只需要修改nc数,nc数指的是目标检测的种类数,因此这里需要将nc修改为前面data/coco128.yaml中的names的数量一致即可。

3 训练

3.1 训练模型

使用预训练权重yolov5s.pt和默认yolov5s网络框架进行训练。

python3 train.py  --weights weights/yolov5s.pt

训练完成之后,在run文件夹中查看训练后的数据文件。

3.2 查看训练效果

使用detect.py进行测试,–weights选择训练完毕的权重文件,–source选择需要测试的图片。

python3 detect.py --weights run/train/exp/weights/best.pt --source data/images

标签:yolov5,datasets,http,train,tsinghua,edu,images
From: https://blog.csdn.net/qq_38342510/article/details/140452185

相关文章

  • YOLOv5+DecoupleHead解耦头(YOLOx)
    一、解耦头原理在目标检测中,分类任务和回归任务之间的冲突是一个众所周知的问题。因此,用于分类和定位的解耦头被广泛应用于大多数一级和二级探测器。但是,由于YOLO系列的主干和特征金字塔(如FPN,PAN)不断演化,它们的检测头仍然是耦合的。从下表可以看出,头耦合时端到端属性降......
  • 玩一玩yolov5 自己训练模型识别马克杯
    python虚拟环境搭建condacreate-nyolopython==3.8yolov5下载gitclonehttps://github.com/ultralytics/yolov5cdyolov5activateyolopipinstall-rrequirements.txt准备数据集官方介绍:https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data建立文件......
  • 施工现场不戴安全帽抓拍 YOLOv5
    施工现场不戴安全帽抓拍利用现场已经有的摄像头,施工现场不戴安全帽抓拍运用机器视觉边缘计算和神经网络深度学习算法,对现场进出口、作业区域等人员违规行为识别、分析与预警提醒,施工现场不戴安全帽抓拍并把警报截屏和视频储存到后台。此外,施工现场不戴安全帽抓拍还可以识别现场......
  • C#实现控制台传参调用YoloV5进行人体识别
    一、项目地址 二、代码解析3、自定义人体信息类  该类用于在控制台打印人体位置信息///<summary>///人体信息///</summary>publicclassBodyInfo{publicintLeft{get;set;}=0;publicintTop{get;set;}=0;......
  • 掌握yolov5【一】
    文章目录前言一、安装miniconda二、安装pytorch三、下载yolov5源码总结前言yolov5介绍YOLOv5(YouOnlyLookOnceversion5)是一个广受欢迎的实时目标检测模型,由Ultralytics发布。它基于YOLO系列模型,旨在提供更高效和准确的目标检测解决方案。YOLOv5的设计目标是简化......
  • yoloV5实现红外海上船舶分类
     介绍Pytorch使用yoloV5实现红外海上船舶分类硬件配置实验在一台配备以下规格的机器上进行:-处理器:[i5-10200H]-GPU:[GTX1650]-内存:[16GB]软件配置-操作系统:[Windows10]-深度学习框架:PyTorch[1.10.2]-CUDA版本:[11.3]-cuDNN版本:[11.6]模型使用的是yol......
  • 主干网络篇 | YOLOv5/v7 更换主干网络之 ShuffleNetv2 | 高效CNN架构设计的实用指南(2)
    主干网络篇|YOLOv5/v7更换主干网络之ShuffleNetv2|高效CNN架构设计的实用指南概述YOLOv5和YOLOv7是目前主流的轻量级目标检测模型,在速度和精度方面取得了良好的平衡。然而,传统的YOLOv5/v7模型使用FPN和CSPNet等结构作为主干网络,在移动设备和嵌入式系统等资源受限的场景......
  • 【YOLOv5/v7改进系列】改进池化层为ASPP
    一、导言AtrousSpatialPyramidPooling(ASPP)模块是一种用于多尺度特征提取的创新技术,旨在提升深度学习模型在语义图像分割任务中的表现。ASPP模块通过在不同的采样率下应用空洞卷积,可以捕获不同大小的对象以及图像的上下文信息,从而增强模型在处理不同尺度物体时的鲁棒性......
  • 口罩佩戴检测系统 YOLOv5
    正确的佩戴口罩对现阶段有效减低人员之间感染新型冠状病毒具有重要意义。基于YOLOv5在图像识别检测领域的优异性能,本文研究基于基于YOLOv5的口罩佩自动戴检测方法。首先从网络和真实生活中中寻找并采集不同场景人群口罩佩戴的图片约500张并自建数据集,然后利用YOLOv5模型框架,修改其......
  • YOLOv5改进 | 损失函数 | EIoU、SIoU、WIoU、DIoU、FocuSIoU等多种损失函数
    秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转   ......