yolo数据集的制作教程之海绵宝宝数据集的制作

yolo海绵宝宝数据集的制作

1、视频转图片

新建名为hm的文件目录,用于存放图片

代码如下:

import cv2
from datetime import datetime
def video_to_frames(path,savepath,m):
    video_cap = cv2.VideoCapture()
    video_cap.open(path)
    fps  = video_cap.get(cv2.CAP_PROP_FPS)
    frames = video_cap.get(cv2.CAP_PROP_FRAME_COUNT)
    print("fps",int(fps),"frames",int(frames))

    pp = int(fps)
    ppp = m*pp

    count = 0
    for i in range(int(frames)):
        ret,frame1 = video_cap.read()
        if i%ppp == 0:
            cv2.imwrite(savepath+"/%d.jpg"%(int(i/ppp)),frame1)
            count = count+1
    return count
    

if __name__ == '__main__':
    video_path = 'hm.mp4'
    savepath = 'hm/'
    m = 10
    t1 = datetime.now()
    count = video_to_frames(video_path,savepath,m)
    t2 = datetime.now()
    print("Time cost",(t2-t1))
    print(count)

2、人工删除不需要的图片

3、重命名

import os

# 图片文件夹存放的绝对路径,依据实际情况修改
path = r"D:/***/***/hm"

print(len(os.listdir(path)))

num = 1
for file in os.listdir(path):
    os.rename(os.path.join(path,file),os.path.join(path,"%05d"%num)+".jpg")
    num = num + 1

如果报错提示不能修改,已经有重复的文件时,先将其修改成其他的,比如修改这句代码,加上xxx,或者其他。

 os.rename(os.path.join(path,file),os.path.join(path,"%05d"%num)+"xxx.jpg")

成功后即可删除xxx,重新运行代码,这样子就看到很多海绵宝宝派大星的图片了。

4、 使用labelImg软件对数据集进行打标签

该软件只有data文件夹和labelImg.exe文件

文件目录,新建hm-label文件夹用于存放标签数据,hm就是我们刚刚生成的数据集,data文件里面有个predefined_classes.txt用来存放检测的类型

├─data
├─hm
├─hm-label
└─labelImg.exe

记事本打开predefined_classes.txt,修改为如下:

SpongeBob
PatrickStar 

yolo数据集的制作教程之海绵宝宝数据集的制作_第1张图片

打开labelImg.exe,进行以下操作:

1 首先open dir 选中hm文件夹,即可打开,

2然后change save dir 设置保存标签的文件夹为hm-label

3 设置生成的是yolo格式的标签

4 “w"或者create box对人物进行标注

yolo数据集的制作教程之海绵宝宝数据集的制作_第2张图片

5 view—>auto save mode,进入自动保存模式

然后就可以愉快的标注了,比较费时间,标注完成后,发现hm-label文件夹下一堆标签文件

yolo数据集的制作教程之海绵宝宝数据集的制作_第3张图片

里面都是各个类别yolo格式的位置信息
yolo数据集的制作教程之海绵宝宝数据集的制作_第4张图片

到这一步海绵宝宝的数据集就制作完成了。

你可能感兴趣的:(深度学习,python,yolo,目标检测)