本博客选择VOC2007数据集
注:本文需要用脚本操作实现VOC数据集格式转换成.txt格式,同时实现训练集、验证集、测试集、训练验证集的划分。VOC格式的转换我们在本地实现,因此这个转换并不涉及路径的问题,但是后续的数据集的划分需要涉及路径,我们首先要明白在本地运行脚本生成的路径和在云端运行生成的路径是不同的,因我们实在云端训练模型的所以我们选择在云端运行数据集的划分的脚本。
VOC格式数据集转换yolo数据集格式详见博客里面写的很详细yolov5训练—VOC数据集划分(训练集、验证集、测试集)和转换YOLO格式_下雨天不下雨的博客-CSDN博客_yolov5数据集格式
1、本地数据集操作
运用上面博客中的脚本生成每个图片中框框的.txt文件
同时将生成的txt文件复制到 JPEGImages文件中
2、下载yolov7模型
https://github.com/WongKinYiu/yolov7
将数据集与下载好的yolov7模型整合上传到Google Drive中
第一步:添加voc.yaml配置文件
# PASCAL VOC dataset http://host.robots.ox.ac.uk/pascal/VOC/
# Train command: python train.py --data voc.yaml
# Default dataset location is next to /yolov5:
# /parent_folder
# /VOC
# /yolov5
# download command/URL (optional)
download: bash data/scripts/get_voc.sh
# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
train: 2007_train.txt # 16551 images
val: 2007_val.txt # 4952 images
# number of classes
nc: 20
# class names
names: [ 'aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog',
'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor' ]
第二步:修改yolov7.yaml文件
种类nc修改为20
扫描二维码关注公众号,回复:
14636568 查看本文章
3、打开Colab
第一步:连接Googl Drive
第二步:下载上传云端的模型
!cp /content/drive/MyDrive/yolov7-main.zip ./
!unzip ./yolov7-main.zip -d ./
第三步:删除本地生成的划分数据集的txt文件
由于之前我在本地提前生成了数据集的划分所以我需要删除这些数据集的划分,因为路径是不对的
!rm /content/yolov7-main/2007_train.txt /content/yolov7-main/2007_test.txt /content/yolov7-main/2007_train.cache /content/yolov7-main/2007_val.cache /content/yolov7-main/2007_val.txt
第四步:生成云端的数据集路径
%cd /content/yolov7-main
!python covert.py
第五步:修改参数后训练模型
根据自己的实际情况调整路径
!python train.py
小tips:
在Google colab的按F12,点击网页的控制台,粘贴如下代码:
function ConnectButton(){
console.log("Connect pushed");
document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click()
}
setInterval(ConnectButton,60000);