使用YOLOv5训练自己的数据集实现目标检测
创作时间:
作者:
@小白创作中心
使用YOLOv5训练自己的数据集实现目标检测
引用
CSDN
1.
https://blog.csdn.net/weixin_54186806/article/details/145634727
本文将详细介绍如何使用YOLOv5进行目标检测模型的训练。从资源下载、环境配置到模型训练和测试,每个步骤都配有详细的说明和代码示例。适合对目标检测感兴趣的读者,尤其是初学者。
0. YOLOv5的简单介绍
YOLOv5是一种实时目标检测算法,其核心工作原理包括:
网络架构:
- Backbone: 使用CSPDarknet进行特征提取
- Neck: 使用PANet进行特征融合
- Head: 用于预测目标的类别、位置和置信度
预测流程:
- 将输入图像分割成 SxS 网格
- 每个网格预测多个边界框
- 每个边界框包含:
- 中心点坐标(x,y)
- 宽高(w,h)
- 置信度分数
- 类别概率
YOLOv5的优势:
- 速度快: 实时检测能力强
- 精度高: 在各种数据集上表现优异
- 部署便捷: 支持多种推理框架
- 使用简单: 配置和训练流程清晰
- 代码开源: 社区支持度高
1. 下载YOLOv5资源
项目地址:https://github.com/ultralytics/yolov5/tree/v5.0
在GitHub中的项目ultralytics/yolov5中,有很多标签,如下图所示:
使用以下命令下载资源:
git clone https://github.com/ultralytics/yolov5.git
进入下载的YOLOv5目录,查看当前分支:
git branch
查看所有标签:
git tag
切换到v5.0标签:
git checkout v5.0
2. 训练数据集的介绍
下载后的文件结构如下:
打开data文件夹,以coco128.yaml为例:
# COCO 2017 dataset http://cocodataset.org - first 128 training images
# Train command: python train.py --data coco128.yaml
# Default dataset location is next to /yolov5:
# /parent_folder
# /coco128
# /yolov5
download: https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip
train: ../coco128/images/train2017/ # 128 images
val: ../coco128/images/train2017/ # 128 images
nc: 80
names: [ 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
'hair drier', 'toothbrush' ]
3. 如何配置文件
- 下载coco128数据集并解压,放在YOLOv5目录下
- 修改coco128.yaml文件,注释掉download并修改路径
4. 下载各种依赖和环境
创建conda虚拟环境:
conda create -n yolov5 python=3.8
conda activate yolov5
pip install -r requirements.txt
5. 训练YOLOv5模型
修改train.py中的超参数:
python train.py
如果遇到numpy版本问题,可以降级到1.22版本:
pip uninstall numpy
pip install numpy==1.22
或者使用conda安装:
conda install numpy==1.22
6. 测试YOLOv5模型
修改test.py中的超参数:
python test.py
7. 使用YOLOv5模型进行目标检测
修改detect.py中的超参数:
python detect.py
8. 训练自己的数据集
提供了一个关于奶牛行为识别的数据集,可以从百度网盘下载:
链接: https://pan.baidu.com/s/1Bc1zjrG49LfM_2JDfLB1vA?pwd=yfyf 提取码: yfyf
数据集文件结构如下:
配置cow_detect.yaml:
# COCO 2017 dataset http://cocodataset.org - first 128 training images
# Train command: python train.py --data coco128.yaml
# Default dataset location is next to /yolov5:
# /parent_folder
# /coco128
# /yolov5
# download command/URL (optional)
#download: https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip
train: cow_detect/images/train # train images (relative to 'path') 128 images
val: cow_detect/images/val # val images (relative to 'path') 128 images
nc: 2
names: [ 'lie', 'stand']
配置yolov5_cowdetect.yaml:
nc: 2
训练、测试和检测模型:
python train.py
python test.py
python detect.py
最终结果:
热门推荐
带你识花 ---勿忘我
骑电动车被别人撞了怎么办
一场119-112让湖人坐立难安!冲前3不易,湖人争冠关键不在詹姆斯
世界10大烧脑电影,部部脑洞大开,你看过几部?
中国的8大烧鸡,堪称烧鸡界的“天花板”,中秋节送长辈太适合了
铝碳酸镁片饭前吃还是饭后吃
没有时间去健身房?这份在家徒手健身指南请收好!
丹麦及其两个自治领地:格陵兰与法罗群岛
从智慧停车到数字场景,易知微数字孪生缓解停车难
桂圆泡水喝有什么好处
小米高层“大变动”!任命集团总裁卢伟冰兼任手机部总裁
大自然为何阻止超光速的发生?就是因为因果律!
继承人与被继承人的概念及其关系
骨裂吃啥补的快一点
迎春花的养殖方法和注意事项
小腹右侧经常疼痛,或与这几种疾病有关,需及时检查,对症治疗
补课背后的家庭故事:家长的忧虑与孩子的无奈选择
浅析伟大的马克吐温生活在一个怎样的时代背景下
葡萄酒睡前喝好吗?多角度解析睡前饮用葡萄酒的影响
十类最受欢迎小学生义卖物品 小学义卖什么最畅销
腱鞘囊肿手术方法详解
浅谈第二次工业革命:电力和内燃机兴起,垄断经济盛行
体循环和肺循环的途径
春季旅游的好景点,强烈推荐九寨沟
国家贝类产业技术体系首席科学家率队考察调研福建 花蛤苗种养殖产业
深入理解数组与链表:数据结构的基础与进阶
给宠物绝育的好处
羊水过多或过少护理需注意什么?
共益债:平衡债权人利益与企业复兴的法律杠杆
深入解析:虚拟内存如何影响SSD的性能与寿命