使用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
最终结果:
热门推荐
龙的传人:历史与民俗的交融
新能源汽车续航里程文献综述及发展趋势分析
如何“对付”懒惰的伴侣?
化学结构式绘图编辑软件有哪些 化学结构式绘图编辑软件哪个好用
被骂上热搜的预制菜到底健不健康?
比散步还轻松的运动,坐着也能无痛燃脂
银行的金融服务数字化转型的技术支撑与应用?
什么是人工智能?一场跨越70年的争议之旅
新能源汽车补贴:政策驱动下的市场繁荣与未来展望
手机游戏app开发常用编程语言大盘点
肺纤维化晚期24小时吸氧能活多久
佛教七宝:详解佛教七珍及其象征意义
如何分辨傷口與蟲咬:專業指南助你辨識與處理
揭秘桂圆的甜度真相(从营养价值到食用方法)
港股委托方式的选择方法是什么?这种选择方法有哪些考虑因素?
手机选号,风水与数字的奇妙结合——探索网站选号的奥秘
米糊与增肌粉共同食用的营养解析
探秘越南武庙供奉的18位名将,其中12位竟是中国人?
中医治疗肺气肿的方法
广东外语外贸大学奖学金有哪些,一般多少钱?
《科学》杂志发文,25位世界顶尖科学家呼吁:采取更强有力行动防范AI风险
电脑装机所需具备的基础知识以及装机常用的工具,步骤和注意事项
两种中药能否同服?安全用药小妙招
探視權能到幾歲?律師分享:合理範圍、注意事項、範本看這篇!
情侣之间如何在平淡生活中增添情调?
戴墨镜可以保护眼睛吗
miRNA如何被发现,会对人类带来哪些影响?医科院基础所专家解读
“升米恩,斗米仇”的含义是什么?故事的来源及寓意!
金蟾茶宠的摆放方法以及相关注意事项
舌苔发黄有裂纹是怎么回事