yolov5学习总结

学习获取最佳的训练效果:

python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt

--img 640: 这是设置训练时输入图像的大小为 640x640 像素。这个参数指定了训练过程中图像的尺寸。

--epochs 3: 这是指定训练的轮数(或称为 epochs),设置为 3 表示模型会在数据集上进行 3 轮的训练。

--data coco128.yaml: 这是指定训练所使用的数据集配置文件。coco128.yaml 文件包含了数据集的相关信息,例如数据路径、类别信息等。

--weights yolov5s.pt: 这是指定模型的初始权重文件。yolov5s.pt 文件是一个预训练的 YOLOv5 小型模型的权重文件,这些权重将被用作训练的起点。yolov5s.pt 预训练权重文件来初始化模型参数,是一个二进制文件不可看。

总之,这个命令会执行 YOLOv5 目标检测模型的训练过程,使用输入图像大小为 640x640,进行 3 轮的训练,在名为 coco128.yaml 的数据集配置文件上进行训练,并且使用 yolov5s.pt 预训练权重文件来初始化模型参数。

所有训练结果都通过递增的运行目录(即 等)保存到。有关更多详细信息,请参阅教程笔记本的培训部分。runs/train/runs/train/exp2runs/train/ex根据命令的设置,训练结果将是一个或多个模型权重文件,用于保存训练过程中学到的模型参数。具体来说,以下是训练过程中生成的几个重要的文件:最终权重文件:

在训练过程中,模型会进行多个 epochs 的训练,每个 epoch 结束后,模型的参数会被保存为一个权重文件。在您的命令中,--epochs 3 表示进行了 3 轮的训练,所以训练结束后会有一个或多个训练轮数对应的权重文件,例如 yolov5s_last.pt。这个文件包含了最终训练结果,可以在后续用于目标检测任务。日志文件:训练过程中,会输出日志信息,显示每个 epoch 的训练进度、损失情况、性能评估等。这些日志通常保存在终端或日志文件中,以供后续分析和调试。

coco128.yaml与coco.yaml的区别:

coco.yaml 和 coco128.yaml 都是用于配置 COCO(Common Objects in Context)数据集的 YAML 文件,但它们之间有一些区别。数据集规模:coco.yaml: 通常用于配置完整的 COCO 数据集,该数据集包含数千张图像和多个类别的目标物体。coco128.yaml: 用于配置一个缩小版的 COCO 数据集,该数据集只包含 128 张图像和少量的目标类别。图像数量和类别:coco.yaml: 配置的 COCO 数据集通常包含大量的图像和多个目标类别,用于训练较大规模的目标检测模型。coco128.yaml: 配置的 COCO128 数据集是一个缩减版的数据集,用于快速验证模型的训练流程和功能。总之,coco.yaml 适用于正式的、完整规模的 COCO 数据集训练,而 coco128.yaml 则是一个适用于快速验证和实验的小规模数据集配置文件。选择使用哪个配置文件取决于训练的目标、可用资源和时间限制。

要自定义 coco.yaml 文件,您需要根据您的数据集和训练需求来配置不同的参数。以下是一些您可能需要配置的参数示例:路径和数据信息:

train: 指定用于训练的图像和标签文件的路径。

val: 指定用于验证的图像和标签文件的路径。

类别信息:names: 列出数据集中的目标类别名称。每个类别名称都应该与数据集中的实际类别名称相匹配。输入图像尺寸:

nc: 类别数量,即数据集中目标类别的数量。

img_size: 指定输入图像的大小。例如:img_size: [640, 640] 表示输入图像尺寸为 640x640 像素。锚点框(Anchor Boxes):anchors: 指定锚点框的尺寸。可以根据数据集的目标物体尺寸来调整锚点框。数据增强augment: 布尔值,指定是否在训练过程中应用数据增强技术,如随机裁剪、翻转等。

批处理大小:batch_size: 指定训练时的批处理大小。学习率和优化器:lr:学习率,控制模型参数的更新速率。optimizer: 指定使用的优化器,如 Adam、SGD 等。损失函数:loss: 指定使用的损失函数,如 YOLO 损失函数。训练时长:epochs: 指定训练的轮数。权重文件路径:weights: 指定预训练的权重文件路径,可以是空白的或者是一个现有的权重文件。

coco128-seg.yaml又是啥:

coco128-seg.yaml 是 YOLOv5 项目中的一个配置文件,用于指定用于语义分割任务的 COCO128 数据集的相关参数。与目标检测不同,语义分割任务旨在将图像中的每个像素分配到特定的语义类别,从而实现对图像的像素级别分割。

YOLOv5s仅支持640的图像大小吗

不完全是的。YOLOv5s(即 YOLOv5 Small)的默认输入图像大小是 640x640 像素,这是因为它在预训练过程中使用了这个固定的输入尺寸。然而,YOLOv5s在推理(检测)阶段是可以处理不同尺寸的图像的。在推理阶段,YOLOv5s支持对不同大小的图像进行目标检测,而不需要严格限制输入图像的大小为 640x640。模型会自动根据输入图像的尺寸进行适应和调整。这是通过一种称为“多尺度推理”(multi-scale inference)的技术实现的,模型会在不同尺度下对图像进行检测,从而提高了模型的鲁棒性和泛化能力。

您可以在推理时使用不同大小的图像作为输入,例如更大或更小的图像。只需要确保图像的尺寸是 32 的倍数,以便与模型的网络结构兼容。在使用不同大小的图像进行推理时,可能需要适当地调整预测出的边界框坐标以匹配原始图像尺寸。

path: ../datasets/coco128  # dataset root dir

train: images/train2017  # train images (relative to 'path') 128 images

val: images/train2017  # val images (relative to 'path') 128 images

test:  # test images (optional)这些需要图片地址还是标注后的json文件地址?

path: 数据集根目录的路径。这是数据集图片和标注文件的根路径,所有路径都将相对于这个根目录进行解析。

train: 训练图像的路径,相对于 path 的路径。这里是 images/train2017,表示训练数据集图像位于 path/images/train2017 这个目录中。

val: 验证图像的路径,同样是相对于 path 的路径。这里也是 images/train2017,表示验证数据集图像也位于 path/images/train2017 这个目录中。

test: 测试图像的路径(可选)。如果你有一个测试集,可以在这里指定测试图像所在的目录,同样是相对于 path 的路径。

需要注意的是,上述配置文件中的路径仅仅指定了图像所在的目录,并没有包含标注文件的路径。在目标检测任务中,除了图像,还需要标注信息(如 COCO 格式的 JSON 文件)来描述目标的位置和类别。如果您希望在训练过程中使用标注信息,您需要在每个图像对应的文件夹中放置与图像文件名相对应的标注文件。通常,标注文件的文件名应该与图像文件名相关联,例如:image1.jpg 的标注文件可能是 image1.json。这些标注文件应该包含了与每个目标相关的信息,包括类别、边界框等。在配置文件中,您还需要提供标注文件的路径以便训练脚本能够找到它们。

总之,上述配置文件中的路径字段只表示图像所在的目录,而您在训练过程中还需要提供与图像对应的标注文件路径,以便训练模型使用这些标注信息进行训练。

LABELS标注文件(比如 image1.json)应该是 COCO 格式的 JSON 文件,与图片文件放在一个datasets总文件夹下就可以了,无需单独声明其位置。

python detect.py --weights yolov5s.pt --source 0                    #打开摄像头检测

需要修改代码指定源显示输出效果

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值