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
打开labelImg.exe
,进行以下操作:
1 首先open dir 选中hm
文件夹,即可打开,
2然后change save dir 设置保存标签的文件夹为hm-label
3 设置生成的是yolo
格式的标签
4 “w"或者create box对人物进行标注
5 view—>auto save mode,进入自动保存模式
然后就可以愉快的标注了,比较费时间,标注完成后,发现hm-label
文件夹下一堆标签文件
里面都是各个类别yolo
格式的位置信息
到这一步海绵宝宝的数据集就制作完成了。