Yolov5模型训练——colab下yolov5的数据集训练

本文介绍如何使用Google Colab和谷歌云盘进行YoloV5目标检测模型的训练,包括连接Colab与谷歌云盘、上传及配置数据集、训练模型等步骤。
部署运行你感兴趣的模型镜像

Yolov5模型训练——colab下yolov5的数据集训练

本章将从以下两个个方面介绍从准备模型训练材料的整个过程。

  • 连接colab和谷歌云
  • 训练数据集

-连接colab和谷歌云

1、科学上网,注册谷歌账号

2、登陆google云盘   

      https://drive.google.com —— 谷歌云盘链接

3、将下好的yolov5包上传到谷歌云盘

     

4、连接colab和谷歌云

打开colab 

https://colab.research.google.com/notebooks/intro.ipynb  ——Colab链接

按顺序点击图中的 1和 2

2

1

点击上图的2之后中间就会跳出一段代码与提示,然后点击左边run按钮运行

跳出以下界面后,首先点击链接授权谷歌云盘的权限,复制密码串,再回到colab中粘贴密码串,按回车键。

完成两者的连接

-训练数据集

1、打开谷歌云盘,新建Colab Notebooks的笔记本

2、改运行类型为GPU(重要),然后点击下图所示按钮。

3、输入      !nvidia-smi    查看colab为我们分配的gpu资源

4、点击右侧的装载谷歌云盘

5. 新增代码段,输入以下代码然后运行

 !cd /content/drive/MyDrive/yolov5-master && pip install -r requirements.txt

6、将已经标注好的数据集上传到谷歌云中yolov5-master文件下

7、开始训练,新增代码,然后运行以下代码

     

 !cd /content/drive/MyDrive/yolov5-master && python train.py --img 640 --batch 32 --epochs 100 --data /content/drive/MyDrive/yolov5-master/yolo_A/yolo_A.yaml --weights yolov5s.pt --nosave --cache

batch越大,训练速度越快,但是colab一般最大支持64,我们普通的电脑一般支持8甚至1。如果运行时显示内存不足,就把64改成32。

img是指图片训练的大小,一般是32的倍数,默认640.如果标签识别很小的物体,可以把img改大,但是占用内存多,应把batch改小,从而训练速度会下降,但是会精准一点。

epochs是训练的次数。

8、训练完成后,结果会在yolov5下的runs中的train/exp中。然后可以得到其权重文件last.pt或者best.pt

9、新增代码,输入以下代码,调用训练出来的模型测试识别效果

 

%cd /content/drive/MyDrive/yolov5-master 
!python detect.py --source /content/drive/MyDrive/yolov5-master/runs/train/exp4/test.jpg --weights /content/drive/MyDrive/yolov5-master/runs/train/exp4/weights/last.pt --img 640 --conf 0.25

识别结果储存位置会显示出来,在左侧谷歌云中找到双击可打开,也可下载

10、在windows系统中直接运行,在colab中下载权重文件(位置看第8步),将其放到win系统下的yolov5/weigths中。

      找一些要检测的数据,然后放在yolov5/data/images下

11、进入yolov5的文件夹,输入cmd进入命令行模式

分别输入运行以下代码

pip install -r requirements.txt -i
python detect.py --weights D:\yolov5-master\weights\last.pt --img 640 --conf 0.25 --source data/images/test.jpg

根据指定路径找到识别后的图片。

同理,视频文件、整个文件夹都是可以的。

您可能感兴趣的与本文相关的镜像

Yolo-v8.3

Yolo-v8.3

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

### 使用YOLOv5训练自定义数据集并确保其符合YOLO格式 #### 准备环境与安装依赖库 为了在Google Colab环境中顺利运行YOLOv5,需先准备必要的Python包和其他资源。这通常涉及克隆官方GitHub仓库以及安装所需的pip软件包。 ```bash !git clone https://github.com/ultralytics/yolov5.git %cd yolov5/ !pip install -r requirements.txt ``` #### 创建和标注自定义数据集 对于创建自定义的数据集,推荐使用`labelImg`工具来标记图像中的对象位置[^1]。通过该图形界面应用程序,能够轻松地为每张图片添加边界框标签,并导出成XML文件形式存储于Pascal VOC标准下的Annotations文件夹内。 #### 数据预处理转换至YOLO格式 为了让YOLOv5识别这些带有注解的信息,在开始之前还需进一步加工原始的VOC2020风格的数据集[^2]。具体来说,要将其转化为适合YOLO框架使用的纯文本(.txt)记录方式——即每一行代表一个物体实例的位置坐标及其类别编号;同时调整相应的配置文件(data.yaml),指明各类别的名称列表及相对应的真实路径指向。 以下是将VOC格式转为YOLO所需格式的一个简单脚本: ```python import xml.etree.ElementTree as ET from os import getcwd sets=[('2007', 'train'), ('2007', 'val')] classes = ["your_class_name"] # 替换成实际类名数组 def convert(size, box): dw = 1./(size[0]) dh = 1./(size[1]) x = (box[0] + box[1])/2.0 - 1 y = (box[2] + box[3])/2.0 - 1 w = box[1] - box[0] h = box[3] - box[2] x = x*dw w = w*dw y = y*dh h = h*dh return (x,y,w,h) def convert_annotation(year, image_id, list_file): in_file = open('VOCdevkit/VOC%s/Annotations/%s.xml'%(year, image_id)) tree=ET.parse(in_file) root = tree.getroot() size = root.find('size') w = int(size.find('width').text) h = int(size.find('height').text) for obj in root.iter('object'): difficult = obj.find('difficult').text cls = obj.find('name').text if cls not in classes or int(difficult)==1: continue cls_id = classes.index(cls) xmlbox = obj.find('bndbox') b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text), float(xmlbox.find('ymax').text)) bb = convert((w,h), b) list_file.write(" " + ",".join([str(a) for a in bb]) + ',' + str(cls_id)) wd = getcwd() for year, image_set in sets: image_ids = open('VOCdevkit/VOC%s/ImageSets/Main/%s.txt'%(year, image_set)).read().strip().split() list_file = open('%s_%s.txt'%(year, image_set), 'w') for image_id in image_ids: list_file.write('%s/VOCdevkit/VOC%s/JPEGImages/%s.jpg\n'%(wd, year, image_id)) convert_annotation(year, image_id, list_file) list_file.close() ``` 此段代码会遍历指定年份内的所有训练样本(`ImageSet`),读取对应的`.xml`描述文档,解析其中的对象信息,并按照YOLO的要求重写到新的文本文件里去。 #### 修改配置文件适应新数据源 编辑位于项目根目录下的`data/custom_data.yaml`文件,设置如下参数以匹配个人定制化的资料结构: ```yaml # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..] path: ../datasets/my_custom_dataset # dataset root dir train: images/train # train images relative directory val: images/val # val images relative directory test: # test images relative directory # Classes nc: 80 # number of classes names: ['person', 'bicycle', ... ] # class names array ``` 注意替换上述模板里的占位符(如`my_custom_dataset`, `images/train`等),使之对应真实的磁盘布局情况。 #### 开始训练过程 一切就绪之后就可以调用命令启动模型的学习进程了。这里假设已经完成了前面所有的准备工作,则只需执行单条指令即可触发整个流程: ```bash !python train.py --img 640 --batch 16 --epochs 50 --data ./data/custom_data.yaml --weights yolov5s.pt ``` 这条语句将会基于预训练权重继续微调网络直至达到预定轮次结束条件为止。期间产生的日志会被自动收集起来供后续分析之用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值