ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

yolov5训练KITTI数据集以及KITTI数据集划分详解(下)

2022-03-01 19:30:00  阅读:765  来源: 互联网

标签:yolov5 Conv -- yaml 详解 master C3 KITTI


前言

本文章是基于KITTI数据集训练yolov5,朋友们可以完全按照我的步骤来划分数据集(严格按照我列出的目录结构就不会出任何问题),从而在KITTI成功训练yolov5。如果严格按照我的目录结构来进行的话,大家无需修改代码中任何一句话。

本章内容基于yolov5训练KITTI数据集以及KITTI数据集划分详解(上)内容


以下是本篇文章正文内容

四、训练网络

4.1 新建自己的yaml文件

在~/yolov5-master/data文件夹下使用touch kitti.yaml新建文件并复制以下内容

train: /home/djx/yolov5/datasets/kitti/images/train #train dataset path
val: /home/djx/yolov5/datasets/kitti/images/val  # val dataset path
test: /home/djx/yolov5/datasets/kitti/images/test  # test dataset path

# Classes
nc: 1  # number of classes 我这里只检测Car,所以nc为1,name列表里只有Car类,根据自己需求修改
name: ['Car']

4.2 下载预训练权重模型yolov5s.pt

权重模型下载地址
打开下载地址下拉至底部,打开Assets下拉框即可下载对应模型,s为轻量化模型,为了演示我选择下载s模型,模型放至~/yolov5-master/即可。
在这里插入图片描述

4.3 训练模型

4.3.1 修改yolov5s.yaml

打开~/yolov5-master/datasets/models/yolov5s.yaml,并修改为下方代码,我这里修改了nc,如果大家不用s模型,用l的话,就打开yolov5l.yaml进行修改即可。

# Parameters
nc: 1  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32

# YOLOv5 backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Focus, [64, 3]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 9, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 1, SPP, [1024, [5, 9, 13]]],
   [-1, 3, C3, [1024, False]],  # 9
  ]

# YOLOv5 head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)

   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

4.3.2 运行

进入~/yolov5-master目录下,运行python文件,中间无需回车,都是用空格隔开。可以适当调整batch_size和epochs的大小。

python train.py --img 640 --batch-size 32 --epochs 80 
				--data data/kitti.yaml --cfg models/yolov5s.yaml 
				--weights yolov5s.pt

五、结果检测

目前只是进行了train和val,还没有进行test,不过无所谓,数据集已经划分好了,后期看自己需求要不要test,这里训练好后直接运行,使用训练好的best.pt权重文件进行detect,expX处自己查看训练后的输出该填多少。

python train.py --img 640 --batch-size 32 --epochs 80 
				--data data/kitti.yaml --cfg models/yolov5s.yaml 
				--weights ~/yolov5-master/runs/train/expX/weights/best.pt

detect的图片放在~/yolov5-master/data/images中,检测结果会存放在
~/yolov5-master/runs/detect中。这里由于用的服务器没有屏幕就不展示识别效果了。

标签:yolov5,Conv,--,yaml,详解,master,C3,KITTI
来源: https://blog.csdn.net/Adams_just/article/details/123213111

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有