我们为手势识别( HGR )系统引入了大型图像数据集HaGRIDv2 ( HA和手势识别图像数据集)。您可以将其用于图像分类或图像检测任务。提议的数据集允许构建 HGR 系统,可用于视频会议服务(Zoom、Skype、Discord、Jazz 等)、家庭自动化系统、汽车行业等。
HaGRIDv2 大小为1.5T ,数据集包含1,086,158张全高清 RGB 图像,分为33 个手势类别和一个新的单独的“no_gesture”类别,其中包含特定领域的自然手势。此外,如果帧中存在第二只无手势手,则某些图像具有no_gesture
类。这个额外的类包含2,164 个样本。数据按主题user_id
分为训练集 76%、验证集 9% 和测试集 15%,训练图像为 821,458 张,验证图像为 99,200 张,测试图像为 165,500 张。
该数据集包含65,977 个独特的人物和至少这个数量的独特场景。受试者是18岁以上的人。该数据集主要在室内收集,光照变化很大,包括人造光和自然光。此外,该数据集还包括在极端条件下拍摄的图像,例如面向和背向窗户。此外,受试者必须在距摄像机 0.5 至 4 米的距离内做出手势。
示例及其注释示例:
欲了解更多信息,请参阅我们的 arxiv 论文 TBA。
2024/09/24
: 我们发布了 HaGRIDv2。 ?
HaGRID 数据集已扩展为 15 个新手势类别,包括双手手势
添加了具有特定领域自然手势的新类“no_gesture”( 2,164 个样本,除以训练/验证/测试,分别包含 1,464、200、500 个图像)
额外的no_gesture
类包含200,390 个边界框
添加了手势检测、手部检测和全帧分类的新模型
数据集大小为1.5T
1,086,158张全高清 RGB 图像
训练/验证/测试划分:(821,458) 76% / (99,200) 9% / (165,500) 15% (按主题user_id
划分)
65,977 个独特的人
2023/09/21
: 我们发布 HaGRID 2.0。 ✌️
所有用于训练和测试的文件都合并到一个目录中
数据进一步清理,新增数据
多GPU训练和测试
添加了新的检测和全帧分类模型
数据集大小为723GB
554,800张全高清 RGB 图像(清理和更新类别,按种族添加多样性)
额外类no_gesture
包含120,105 个样本
训练/验证/测试划分:(410,800) 74% / (54,000) 10% / (90,000) 16% (按主题user_id
划分)
37,583 个独特的人
2022/06/16
:HaGRID(初始数据集)?
数据集大小为716GB
552,992张全高清 RGB 图像,分为18 个类别
额外类no_gesture
包含123,589 个样本
训练/测试比例:(509,323) 92% / (43,669) 8% (按主题user_id
划分)
34,730 名18 岁至 65 岁的独特人士
距离摄像头0.5米至4米
克隆并安装所需的 python 包:
git clone https://github.com/hukenovs/hagrid.git# 或镜像链接:cd hagrid# 通过 conda 或 venvconda 创建虚拟环境 create -n 手势 python=3.11 -y conda 激活手势# 安装需求 pip install -r requests.txt
由于数据量较大,我们通过手势将训练数据集分成 34 个档案。从以下链接下载并解压它们:
手势 | 尺寸 | 手势 | 尺寸 | 手势 | 尺寸 |
---|---|---|---|---|---|
call | 37.2GB | peace | 41.4GB | grabbing | 48.7GB |
dislike | 40.9GB | peace_inverted | 40.5GB | grip | 48.6GB |
fist | 42.3GB | rock | 41.7GB | hand_heart | 39.6GB |
four | 43.1GB | stop | 41.8GB | hand_heart2 | 42.6GB |
like | 42.2GB | stop_inverted | 41.4GB | holy | 52.7GB |
mute | 43.2GB | three | 42.2GB | little_finger | 48.6GB |
ok | 42.5GB | three2 | 40.2GB | middle_finger | 50.5GB |
one | 42.7GB | two_up | 41.8GB | point | 50.4GB |
palm | 43.0GB | two_up_inverted | 40.9GB | take_picture | 37.3GB |
three3 | 54GB | three_gun | 50.1GB | thumb_index | 62.8GB |
thumb_index2 | 24.8GB | timeout | 39.5GB | xsign | 51.3GB |
no_gesture | 493.9 MB |
dataset
注释: annotations
HaGRIDv2 512px - 完整数据集的轻量级版本, min_side = 512p
119.4 GB
或者使用 python 脚本
python download.py --save_path--注释 --数据集
使用键--dataset
运行以下命令来下载带有图像的数据集。通过--annotations
键下载所选阶段的注释。
用法:download.py [-h] [-a] [-d] [-t TARGETS [TARGETS ...]] [-p SAVE_PATH] 下载数据集... 可选参数: -h, --help 显示此帮助消息并退出 -a, --annotations 下载注释 -d, --dataset 下载数据集 -t TARGETS [TARGETS ...], --targets TARGETS [TARGETS ... ] 下载训练集的目标 -p SAVE_PATH, --save_path SAVE_PATH 保存路径
下载后,您可以通过运行以下命令解压缩存档:
解压缩 <归档路径> -d <保存路径>
数据集的结构如下:
├── hagrid_dataset│ ├── call │ │ ├── 00000000.jpg │ │ ├── 00000001.jpg │ │ ├── ... ├── hagrid_annotations │ ├── train │ │ ├── call.json │ │ ├── ... │ ├── val │ │ ├── call.json │ │ ├── ... │ ├── test │ │ ├── call.json │ │ ├── ...
我们提供了一些在 HaGRIDv2 上预训练的模型作为基线,以及用于手势分类、手势检测和手部检测的经典骨干架构。
手势检测器 | 地图 |
---|---|
YOLOv10x | 89.4 |
YOLOv10n | 88.2 |
SSDLiteMobileNetV3Large | 72.7 |
另外,如果需要检测手,可以使用YOLO检测模型,在HaGRIDv2上预训练
手部探测器 | 地图 |
---|---|
YOLOv10x | 88.8 |
YOLOv10n | 87.9 |
但是,如果您需要单个手势,则可以使用预先训练的全帧分类器而不是检测器。要使用全帧模型,请删除 no_gesture 类
全帧分类器 | F1 手势 |
---|---|
MobileNetV3_small | 86.7 |
MobileNetV3_large | 93.4 |
维生素B16 | 91.7 |
残差网络18 | 98.3 |
残网152 | 98.6 |
ConvNeXt 基础 | 96.4 |
您可以使用下载的训练模型,或者在configs
文件夹中选择训练参数。要训练模型,请执行以下命令:
单GPU:
python run.py -c train -p configs/
多GPU:
bash ddp_run.sh -g 0,1,2,3 -c train -p configs/
其中 -g 是 GPU id 列表。
每一步,当前损失、学习率和其他值都会记录到Tensorboard中。通过打开命令行查看所有保存的指标和参数(这将打开一个位于localhost:6006
网页):
张量板 --logdir=<工作目录>
通过运行以下命令来测试您的模型:
单GPU:
python run.py -c test -p configs/
多GPU:
bash ddp_run.sh -g 0,1,2,3 -c test -p configs/
其中 -g 是 GPU id 列表。
python demo.py -p--landmarks
python demo_ff.py -p
注释由带有手势标签的 COCO 格式的手和手势的边界框[top left X position, top left Y position, width, height]
组成。我们提供user_id
字段,允许您自己分割训练/验证/测试数据集,以及包含自动注释的年龄、性别和种族的元信息。
“04c49801-1101-4b4e-82d0-d4607cd01df0”:{“bboxes”:[ [0.0694444444, 0.3104166667, 0.2666666667, 0.2640625], [0.5993055556、0.2875、0.2569444444、0.2760416667] ], "标签": [ "thumb_index2", "thumb_index2" ], "united_bbox": [ [0.0694444444、0.2875、0.7868055556、0.2869791667] ], "united_label": [ "thumb_index2" ], "user_id": "2fe6a9156ff8ca27fbce8ada318c592b", "hand_landmarks": [ [ [0.37233507701702123, 0.5935673528948108], [0.3997604810145188,0.5925499847441514],... ], [ [0.37388438145820907, 0.47547576284667353], [0.39460467775730607, 0.4698847093520443], ... ] ] "meta": { "age": [24.41], "gender": ["female"], "race": ["White"] }
键 - 不带扩展名的图像名称
Bboxes - 每只手的标准化 bbox 列表[top left X pos, top left Y pos, width, height]
标签 - 每只手的类标签列表, like
、 stop
、 no_gesture
United_bbox - 双手手势情况下两个手盒的联合组合(“hand_heart”、“hand_heart2”、“thumb_index2”、“timeout”、“holy”、“take_picture”、“xsign”)和“null”单手手势的情况
United_label - 在双手手势的情况下为 United_bbox 的类标签,在单手手势的情况下为 'null'
用户 ID - 主题 ID(对于将数据分割为训练/验证子集很有用)。
Hand_landmarks - 自动注释每只手的 MediaPipe 地标。
元 - 使用 FairFace 和 MiVOLO 神经网络自动注释元信息包含年龄、性别和种族
目的 | 火车 | 瓦尔 | 测试 | 全部的 |
---|---|---|---|---|
手势 | 980 924 | 120 003 | 200006 | 1 300 933 |
没有手势 | 154403 | 19411 | 29 386 | 203 200 |
总箱数 | 1 135 327 | 139 414 | 229 392 | 1 504 133 |
目的 | 火车 | 瓦尔 | 测试 | 全部的 |
---|---|---|---|---|
拥有地标的总手数 | 983 991 | 123230 | 201 131 | 1 308 352 |
我们提供了一个脚本将注释转换为 YOLO 格式。要转换注释,请运行以下命令:
python -m Converters.hagrid_to_yolo --cfg--mode <'手'或'手势'>
转换后,您需要将原始定义 img2labels 更改为:
def img2label_paths(img_paths): img_paths = list(img_paths) # 将标签路径定义为图像路径的函数 if "train" in img_paths[0]: return [x.replace("train", "train_labels").replace(" .jpg", ".txt") for x in img_paths] elif "test" in img_paths[0]: return [x.replace("test", "test_labels").replace(".jpg", ".txt" ) for x in img_paths] elif "val" in img_paths[0]: return [x.replace("val", "val_labels").replace(".jpg", ".txt") for x in img_paths]
此外,我们还提供了一个脚本将注释转换为 Coco 格式。要转换注释,请运行以下命令:
python -m Converters.hagrid_to_coco --cfg--mode <'手'或'手势'>
本作品根据 Creative Commons Attribution-ShareAlike 4.0 International License 的变体获得许可。
请查看具体许可证。
亚历山大·卡皮塔诺夫
安德烈·马克利亚丘克
卡琳娜·克万基亚尼
亚历山大·纳加耶夫
罗曼·克雷诺夫
安东·努日丁
吉图布
arXiv
您可以使用以下 BibTeX 条目引用该论文:
@InProceedings{Kapitanov_2024_WACV, author = {Kapitanov, Alexander and Kvanchiani, Karina and Nagaev, Alexander and Kraynov, Roman and Makhliarchuk, Andrei}, title = {HaGRID -- HAnd Gesture Recognition Image Dataset}, booktitle = {Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)}, month = {January}, year = {2024}, pages = {4572-4581} }