1.创建VOC数据集
VOC数据集是YOLO模型训练的传统标准文件格式,在模型训练前首先需要创建自己的VOC数据集。下载Pascal VOC数据集,然后把官方VOC数据集里面的内容删除,只保留各个文件夹,然后将自己的数据放置在对应的文件夹中,这样确保待训练的数据格式不出错。该文件夹的主要内容如下所示:
└── VOCdevkit #根目录
└── VOC2012 #不同年份的数据集,这里只下载了2012的,还有2007等其它年份的
├── Annotations #存放xml文件,与JPEGImages中的图片一一对应,解释图片的内容等等
├── ImageSets #该目录下存放的都是txt文件,txt文件中每一行包含一个图片的名称,末尾会加上±1表示正负样本
│ ├── Action
│ ├── Layout
│ ├── Main
│ └── Segmentation
├── JPEGImages #存放源图片
├── SegmentationClass #存放的是图片,语义分割相关
└── SegmentationObject #存放的是图片,实例分割相关
(1)准备好自己用来训练模型的图像,将其存放至上述的JPEGImages 文件夹中,统一命名为000001.jpg , 000002.jpg……格式。
在此过程中可能存在将视频分解为图片来作为训练样本的情况,如果训练的原始数据均为图片,直接阅读 ③,通过Python来统一命名图片。
①首先获取视频的帧数,代码如下:
# -*- coding: utf-8 -*-
import cv2
filename = r"C:\Users\Lenovo\Desktop\lettuce_imgdata\videos\G-L-4.avi"
video_cap = cv2.VideoCapture(filename) # 读取视频
#读取视频帧数
frame_count = 0
all_frames = []
while(True):
ret, frame = video_cap.read()
if ret is False:
break
all_frames.append(frame)
frame_count = frame_count + 1
frame_num = len(all_frames)
print(frame_num)
② 得到视频