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

机器学习笔记 - 在Vehicles数据集上训练 YOLOv5 目标检测器

一、yolov5源码下载 

https://github.com/ultralytics/yolov5https://github.com/ultralytics/yolov5

         下图显示了五种 YOLOv5 变体,从为在移动和嵌入式设备上运行而构建的最微型 YOLOv5 nano 模型开始,到另一端的 YOLOv5 XLarge。我们这里将使用基本模型 YOLOv5s,它在准确性和速度之间提供了较好的平衡。

二、下载数据集

        该数据集仅包含 627 个用于对象检测的各种车辆类别的图像,例如CarBusAmbulanceMotorcycleTruck。这些图像来自Open Images开源计算机视觉数据集。

        数据集网页地址,这个网站还是非常不错的数据集汇集地,值得探索一下,另外建议使用下面的两个方式下载。

Vehicles-OpenImages Object Detection DatasetDownload 627 free images labeled with bounding boxes for object detection.https://public.roboflow.com/object-detection/vehicles-openimages        1、可以使用如下命令下载

        2、也可以直接从百度网盘下载

链接:https://pan.baidu.com/s/1qa5iI9-uBhYGzp7BMPx0rw?pwd=cpgi 
提取码:cpgi

三、准备训练

        注意不要放在中文路径内。

1、准备数据

        创建data.yml,可以放在data目录下

path: 'vehicles'
train: 'train'
val: 'valid'
nc: 5
names: ['Ambulance', 'Bus', 'Car', 'Motorcycle', 'Truck']

2、训练超参数和模型配置

        YOLOv5 有大约 30 个超参数用于各种训练设置。这些定义在hyp.scratch-low.yaml用于从头开始的低增强 COCO 训练,放置在/data目录。训练数据超参数如下所示,这对于产生良好的结果非常重要,因此请确保在开始训练之前正确初始化这些值。对于本教程,我们将简单地使用默认值,从头开始针对 YOLOv5 COCO 训练进行了优化。

3、运行train.py脚本

        默认会下载yolov5s.pt文件,如果下载缓慢可以手动下载放到根目录下。

        目录结构如下。

         开始训练,运行完成会提示保存位置,

 4、运行验证脚本

        主要修改两个参数,一个是data.yaml,另一个是训练完得到的best.pt的路径。

parser.add_argument('--data', type=str, default=ROOT / 'data/data.yaml', help='dataset.yaml path')
parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'runs/train/exp19/weights/best.pt', help='model path(s)')

四、代码下载

ml_toolset/案例102 使用yolov5训练vehicles数据集 at main · bashendixie/ml_toolset · GitHubContribute to bashendixie/ml_toolset development by creating an account on GitHub.https://github.com/bashendixie/ml_toolset/tree/main/%E6%A1%88%E4%BE%8B102%20%E4%BD%BF%E7%94%A8yolov5%E8%AE%AD%E7%BB%83vehicles%E6%95%B0%E6%8D%AE%E9%9B%86

五、其它参考

机器学习笔记 - 使用pytorch + yolov5训练自定义数据集_坐望云起的博客-CSDN博客学习使用pytorch版本的yolo5模型进行自定义数据的目标识别训练。https://skydance.blog.csdn.net/article/details/122563689

相关文章:

  • 分布式处理
  • 高效 CUDA 调试:将 NVIDIA Compute Sanitizer 与 NVIDIA 工具扩展结合使用并创建自定义工具
  • 2024 ccfcsp认证打卡 2023 03 02 垦田计划
  • 蓝桥杯刷题计划-洛谷-持续更新
  • Web Components初探
  • Python爬虫之pyquery和parsel的使用
  • 开源软件:引领技术革新,塑造行业未来
  • 工业RTU串口网关有哪些使用用途和使用场景
  • 数据库 -neo4j的基本操作
  • 基于Java学生管理系统设计与实现(源码+部署文档)
  • 同源不同页面之间的通信,SharedWorker使用
  • 【小程序】首屏渲染优化
  • flutter系列之:把box布局用出花来
  • 计算机毕业设计JAVA旧物置换网站mybatis+源码+调试部署+系统+数据库+lw
  • GridView使用详情
  • springboot(四)
  • 基于腾讯云Docker部署PXC搭建MySQL集群
  • Node.js:模块化
  • java面试-GC垃圾回收机制
  • 没有谷歌翻译,我该怎么办?
  • Java Web Spring核心之AOP的解析及实战(AOP的实现、切入点、Aspect Spring的持久化 Hibernate)
  • kali中实用的小工具
  • C++ 算法竞赛中的排序算法
  • 斯坦福大学吴恩达教授最新来信:AI, GPU和芯片的未来
  • 高薪程序员面试题精讲系列155之项目介绍,说说你最熟悉的项目,遇到了哪些困难?
  • “数据中台、读写分离、表分区”解决MySQL 单表数据量、并放量双高的效率瓶颈
  • 调用百度云语音转文本
  • SDWAN的功能和场景应用
  • JS 第三课(JS的变量类型和数据类型)
  • Matlab论文插图绘制模板第56期—曲面图(Surf)
  • 全志 Tina Linux 存储介质切换:eMMC,SPI NAND,SPI NOR,SD Card,SD NAND
  • FPGA—从加法运算理解流水线的作用