机器学习笔记-在vehicles数据集上训练yolov5目标检测器(代码片段)

坐望云起 坐望云起     2022-12-16     126

关键词:

一、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

我应该如何在包含文本的训练集上使用机器学习分类器?

】我应该如何在包含文本的训练集上使用机器学习分类器?【英文标题】:HowshouldIusemachinelearningclassifiersonaatrainingsetthatcontainstext?【发布时间】:2014-11-0615:39:50【问题描述】:我正在通过查看日志文件来查找错误并预测其可能的... 查看详情

机器学习笔记-使用tensorflowlite从头创建模型(代码片段)

一、概述        目标是使用TFLiteModelMakerLibrary创建TensorFlowLite模型。将在自定义数据集上微调预训练的图像分类模型,并进一步探索该库当前支持的不同类型的模型优化技术,并将其导出到TFLite模型。最后对创建的TFL... 查看详情

机器学习笔记:过拟合

1过拟合介绍如果模型设计的太复杂,可能会过拟合下图的1~5分别代表最高项为1~5次幂的线性回归问题: 当模型太复杂的时候,虽然训练集上我们得到较小的误差,但是在测试集上,误差就奇大无比       ... 查看详情

机器学习第2章学习笔记模型评估与选择

1.训练误差:学习器在训练集上的误差,也称“经验误差”2.泛化误差:学习器在新样本上的误差显然,我们的目标是得到在新样本上表现更好的学习器,即泛化误差要小 3.过拟合:学习器把训练样本学的太好了,导致... 查看详情

机器学习100天:005数据预处理之划分训练集

机器学习100天,今天讲的是:数据预处理之划分训练集。在上一节,我们对类别特征进行了编码,X和y已经变成了机器学习可以理解和处理的数据格式。下面我们就要对数据集进行划分,划分成训练集和测试集。在监督式机器学... 查看详情

机器学习100天:005数据预处理之划分训练集

机器学习100天,今天讲的是:数据预处理之划分训练集。在上一节,我们对类别特征进行了编码,X和y已经变成了机器学习可以理解和处理的数据格式。下面我们就要对数据集进行划分,划分成训练集和测试集。在监督式机器学... 查看详情

机器学习中用来防止过拟合的方法有哪些?

...含在训练集上。所以,必须要解决过拟合问题。为什么在机器学习中比较常见?这是因为机器学习算法为了满足尽可能复杂的任务,其模型的拟合能力一般远远高于问题复杂度,也就是说,机器学习算法有「拟合出正确规则的前... 查看详情

机器学习实战笔记-1基础

机器学习基础什么是机器学习机器学习能让我们从数据集中受到启示。换句话说。我们会利用计算机来彰显数据背后的真实含义。简单的说机器学习就是把无序数据转换成实用的信息。关键术语特征(属性):对一类物体我们关心... 查看详情

运行经过训练的机器学习模型时出错

】运行经过训练的机器学习模型时出错【英文标题】:GettingerroronrunningthetrainedMachineLearningmodel【发布时间】:2019-05-1601:56:44【问题描述】:我有一个包含“studentDetails”和“studentId”列的数据集。我在这个数据集上训练了我的模... 查看详情

rcnn学习笔记

fine-tuning:把已经训练过的模型应用到新的数据集上,相当于继续训练例子:fine-tuning:先拿CNN在cifar100上训练,然后仅仅修改最后一层softmax的输出节点个数(100改为10),再放到cifar10上训练。训练过程:第一步,fine-tuning训练过程... 查看详情

机器学习总结笔记

机器学习是什么机器学习为:在进行特定编程的情况下,给予计算机学习能力的领域什么是有监督学习?什么是无监督学习监督学习指的就是我们给学习算法一个数据集(训练集)。这个数据集由“正确答案”组成训练集有输入... 查看详情

结构化机器学习项目

...+其他n-1个指标满足阈值即可。1.5—1.6数据集的划分  机器学习过程:在训练集上用不同的思路训练(不同的模型),然后用验证集来评估选择一个模型,然后不停地迭代去改善验证集的性能,最后得到一个最好的成本,拿去... 查看详情

机器学习模型的泛化能力不足,有啥改进思路

...行,在测试集上效果更差。这时候你要考虑的是你选择的机器学习算法到底有没有用,你选取的特征到底有没有用,换个算法,换个特征,也许才能提高。本回答被提问者采纳 查看详情

机器学习深度学习20个笔试题

请不要在题上写画答案,写在答题纸上假设你训练SVM后,得到一个线性决策边界,你认为该模型欠拟合。在下次迭代训练模型时,应该考虑:A、增加训练数据B、减少训练数据C、计算更多变量D、减少特征答案:... 查看详情

吴恩达-深度学习-课程笔记-6:深度学习的实用层面(week1)

...参数可以通过在验证集上的表现好坏来进行选择。前几年机器学习普遍的做法:把数据分成60%训练集,20%验证集,20%测试集。如果有指明的测试集,那就用把数据分成70%训练集,30%验证集。现在数据量大了,那么验证集和数据集... 查看详情

局部加权回归(hgl的机器学习笔记3)

局部加权回归(LocallyWeightedRegression,LWR)局部加权回归使一种非参数方法(Non-parametric)。在每次预测新样本时会重新训练临近的数据得到新参数值。意思是每次预测数据需要依赖训练训练集,所以每次估计的参数值是不确定的。 局... 查看详情

局部加权回归(hgl的机器学习笔记3)

局部加权回归(LocallyWeightedRegression,LWR)局部加权回归使一种非参数方法(Non-parametric)。在每次预测新样本时会重新训练临近的数据得到新参数值。意思是每次预测数据需要依赖训练训练集,所以每次估计的参数值是不确定的。 局... 查看详情

机器学习笔记

1、机器学习的主要任务是通过样本的特征进行分类,一般有两套独立的样本集:训练数据和测试数据。其中特征和属性通常是训练集样本的列,是独立测得结果,而测试数据集在测试阶段只输入特征,通过分... 查看详情