使用Label Studio标注YOLOv8数据集
约 1061 字大约 4 分钟...
摘要
本文将介绍如何使用Label Studio来标注YOLOv8的数据集, 以及如何使用Python从视频文件中抽取图片帧。
下载/安装
pip install label-studio opencv-python
视频文件抽帧
import cv2
def main(source: str, s: int = 60) -> None:
"""
:param source: 视频文件
:param s: 抽帧间隔, 默认每隔60帧保存一帧
:return:
"""
video = cv2.VideoCapture(source)
frame_num = 0
success, frame = video.read()
while success:
if frame_num % s == 0:
cv2.imwrite(f"./images/{frame_num // s}.png", frame)
success, frame = video.read()
frame_num += 1
video.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
main('./videos/sample.mp4')
图片标注
label-studio start
导出数据集
.
│ classes.txt
│ notes.json
│
├─images
│ a4d2cef8-hutao_bg.jpg
│
└─labels
a4d2cef8-hutao_bg.txt
.
│ classes.txt
│ notes.json
│
├─images
│ ├─test
│ │ a4d2cef8-hutao_bg.jpg
│ │
│ ├─train
│ │ a4d2cef8-hutao_bg.jpg
│ │
│ └─val
│ a4d2cef8-hutao_bg.jpg
│
└─labels
├─test
│ a4d2cef8-hutao_bg.txt
│
├─train
│ a4d2cef8-hutao_bg.txt
│
└─val
a4d2cef8-hutao_bg.txt
注意
data.yaml
中nc
代表数据集中标签的总类别数, names
代表这些标签的名称, 这些信息都在classes.txt
中。
文件内容
# dataset path
train: ./images/train
val: ./images/val
test: ./images/test
# number of classes
nc: 3
# class names
names: [
"bag",
"hutao",
"other person",
]
目录结构
.
│ classes.txt
│ data.yaml
│ notes.json
│
├─images
│ ├─test
│ │ a4d2cef8-hutao_bg.jpg
│ │
│ ├─train
│ │ a4d2cef8-hutao_bg.jpg
│ │
│ └─val
│ a4d2cef8-hutao_bg.jpg
│
└─labels
├─test
│ a4d2cef8-hutao_bg.txt
│
├─train
│ a4d2cef8-hutao_bg.txt
│
└─val
a4d2cef8-hutao_bg.txt
至此, 一个适用于YOLOv8的自定义数据集就创建完成了。下一期, 我们将讲解如何使用YOLOv8训练自定义数据集(使用YOLOv8在Label Studio的自定义数据集上进行训练/推理)。
Powered by Waline v3.3.0