YOLOV8的训练、验证、测试
为了训练一个基于YOLOv8的手势识别模型,我使用了HaGRID数据集,在完成数据集的标注后,我们就可以将其应用到YOLOV8的训练当中(标注时,务必记住每个手势所对应的顺序,因为模型会对每一类标记的手势分配一个数字做为该类的象征数,比如用0表示call这个手势,而1表示dislike等,这些类对应的数字,我们要修改在训练所需要的__yaml文件当中)。
在开始训练前,我先创建了3个文件夹,分别对应了训练集、验证集、测试集。其中我将每个集对应的label(标签)和图像数据(image)直接放一个数据集中,因为label的名和图像的名是一一对应的。
分配好训练集、验证集、测试集,我们需要修改__.yaml文件,我的handgestur.yaml内容如下:
# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco128 ← downloads here (7 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: /root/autodl-tmp/yolo/pythonProject/datasets # dataset root dir
train: handgesture/Train/train
val: handgesture/Val/val
test: handgesture/Test
# Classes
names:
0: call
1: dislike
2: fist
3: four
4: like
5: mute
6: ok
7: one
8: palm
9: peace
10: rock
11: stop
12: stop_inverted
13: three
14: two_up
15: two_up_inverted
16: three2
17: peace_inverted
18: no_gesture
其中train、val、test指的是训练、验证、测试的路径,输入对应的地址即可。names中输入对应编号的手势即可。
接下来,打开终端(Anaconda Prompt),我使用的是Linux,打开终端后输入指令