目录
环境准备
一、在d盘下创建目录dataSet,然后再dataSet内分别创建目录images、marking和video目录,如下:
二、在dataSet目录下新建文本
打开新建文本后输入如下内容:
import cv2
import os.path
import random
# 检查已有图片的数量,确定本次图片抽取开始的下标
cnt = len(os.listdir('D:/dataSet/images')) + 1
# 视频存放路径
videoDir = os.listdir('D:/dataSet/video')
# 提示使用者抽取开始
print("Start!")
# 每30帧随机抽取一帧
start, ran = 0, random.randrange(0, 30)
try:
temp = 0
for video in videoDir:
# 拼接视频路径
videoPath = r'D:/dataSet/video/' + video
# 打开视频流
vc = cv2.VideoCapture(videoPath)
# 判断是否打开成功
if vc.isOpened():
while True:
# activity: 读取成功标签,frame: 读取的画面
activity, frame = vc.read()
# 如果读取不成功(没有下一帧),就退出
if not activity:
break
if temp == start + ran:
cv2.imwrite(f"D:/dataSet/images/{cnt}.jpg", frame)
cnt, start, ran = cnt + 1, start + 30, random.randrange(0, 30)
temp = temp + 1
vc.release()
# 提示抽取完成
print("Finish!")
except:
vc.release()
# 提示抽取出现错误
print("Error!")
保存后,将文件重命名为manage,后缀改为.py,如下:
(PS:图标不一样没关系)
安装标注工具labelimg
win+r打开cmd,输入如下命令:
pip install labelimg -i https://mirrors.aliyun.com/pypi/simple/
静候安装完成,出现如下情况即为安装成功:
素材准备
在video文件夹下存放自己的素材,如下图:
(也可以直接在images文件夹中存放图片)
从视频素材中抽取画面
在cmd窗口进入d盘,输入命令:
python manage.py
出现“Finish!”即为抽取完成,效果如下:
此时images文件夹里就有了图片素材。
使用labelimg
完成前面的工作后,在控制台输入labelimg:
弹出如下窗口:
点击View,勾选选项一和选项三。
更改素材路径:点击Open Dir打开我们选择我们图片存放的文件夹:
点击选择文件夹后出现图像:
更改标注保存:再点击Change Save Dir,选择dataSet目录下的making文件夹
标注:使用键盘A、D键控制选择上下图片,使用W键开始标注(此时鼠标出现十字,框选目标输入标注即可)
退出前点击Save,然后marking文件夹下就有我们的标注文件了。
总结
如上就是使用labelimg制作数据集的基本操作了,其中manage.py相关的步骤不是必备的,manage.py只是从视频中抽取视频帧作为图片素材的一个工具脚本。有图片素材的话,直接看使用部分即可。