{"id":21024374,"url":"https://github.com/hukenovs/hagrid","last_synced_at":"2025-04-10T06:18:36.742Z","repository":{"id":37268125,"uuid":"503798793","full_name":"hukenovs/hagrid","owner":"hukenovs","description":"HAnd Gesture Recognition Image Dataset","archived":false,"fork":false,"pushed_at":"2025-02-27T13:24:21.000Z","size":13995,"stargazers_count":723,"open_issues_count":14,"forks_count":111,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-03T03:58:26.826Z","etag":null,"topics":["bounding-boxes","computer-vision","dataset","deep-learning","gesture-recognition","gestures-classification","hands","image-classification"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/2206.08219","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hukenovs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license/en_us.pdf","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-15T14:24:25.000Z","updated_at":"2025-03-31T03:58:47.000Z","dependencies_parsed_at":"2023-02-15T09:31:37.347Z","dependency_job_id":"6ca98335-67d6-4297-b447-361a6970f76d","html_url":"https://github.com/hukenovs/hagrid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hukenovs%2Fhagrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hukenovs%2Fhagrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hukenovs%2Fhagrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hukenovs%2Fhagrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hukenovs","download_url":"https://codeload.github.com/hukenovs/hagrid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166864,"owners_count":21058481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bounding-boxes","computer-vision","dataset","deep-learning","gesture-recognition","gestures-classification","hands","image-classification"],"created_at":"2024-11-19T11:25:37.056Z","updated_at":"2025-04-10T06:18:36.721Z","avatar_url":"https://github.com/hukenovs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HaGRID - HAnd Gesture Recognition Image Dataset\n\n![hagrid](images/hagrid.jpg)\n\nWe introduce a large image dataset **HaGRIDv2** (**HA**nd **G**esture **R**ecognition **I**mage **D**ataset) for hand gesture recognition (HGR) systems. You can use it for image classification or image detection tasks. Proposed dataset allows to build HGR systems, which can be used in video conferencing services (Zoom, Skype, Discord, Jazz etc.), home automation systems, the automotive sector, etc. We have also released an algorithm for dynamic gesture recognition, which we described in our paper. This model is trained entirely on HaGRIDv2 and enables the recognition of dynamic gestures while being trained exclusively on static ones. You can find it in our [repository](https://github.com/ai-forever/dynamic_gestures).\n\nHaGRIDv2 size is **1.5T** and dataset contains **1,086,158** FullHD RGB images divided into **33** classes of gestures and a new separate \"no_gesture\" class, containing domain-specific natural hand postures. Also, some images have `no_gesture` class if there is a second gesture-free hand in the frame. This extra class contains **2,164** samples. The data were split into training 76%, 9% validation and testing 15% sets by subject `user_id`, with 821,458 images for train, 99,200 images for validation and 165,500 for test.\n\n![gestures](images/gestures.png)\n\nThe dataset contains **65,977** unique persons and at least this number of unique scenes. The subjects are people over 18 years old. The dataset was collected mainly indoors with considerable variation in lighting, including artificial and natural light. Besides, the dataset includes images taken in extreme conditions such as facing and backing to a window. Also, the subjects had to show gestures at a distance of 0.5 to 4 meters from the camera.\n\nExample of sample and its annotation:\n\n![example](images/hagrid_samples.jpg)\n\nFor more information see our arxiv [paper](https://arxiv.org/abs/2412.01508).\n\n## 🔥 Changelog\n- **`2025/02/27`**: We release [Dynamic Gesture Recognition algorithm](https://github.com/ai-forever/dynamic_gestures). 🙋\n  - Introduced a novel algorithm that enables dynamic gesture recognition while being trained exclusively on static gestures\n  - Fully trained on the HaGRIDv2-1M dataset\n  - Designed for real-time applications in video conferencing, smart home control, automotive systems, and more\n  - Open-source implementation with pretrained models available in the repository\n- **`2024/09/24`**: We release [HaGRIDv2](https://github.com/hukenovs/hagrid/tree/Hagrid_v2-1M). 🙏\n  - The HaGRID dataset has been expanded with 15 new gesture classes, including two-handed gestures\n  - New class \"no_gesture\" with domain-specific natural hand postures was addad (**2,164** samples, divided by train/val/test containing 1,464, 200, 500 images, respectively)\n  - Extra class `no_gesture` contains **200,390** bounding boxes\n  - Added new models for gesture detection, hand detection and full-frame classification\n  - Dataset size is **1.5T**\n  - **1,086,158** FullHD RGB images\n  - Train/val/test split: (821,458) **76%** / (99,200) **9%** / (165,500) **15%** by subject `user_id`\n  - **65,977** unique persons\n- **`2023/09/21`**: We release [HaGRID 2.0.](https://github.com/hukenovs/hagrid/tree/Hagrid_v2) ✌️\n  - All files for training and testing are combined into one directory\n  - The data was further cleared and new ones were added\n  - Multi-gpu training and testing\n  - Added new models for detection and full-frame classification\n  - Dataset size is **723GB**\n  - **554,800** FullHD RGB images (cleaned and updated classes, added diversity by race)\n  - Extra class `no_gesture` contains **120,105** samples\n  - Train/val/test split: (410,800) **74%** / (54,000) **10%** / (90,000) **16%** by subject `user_id`\n  - **37,583** unique persons\n- **`2022/06/16`**: [HaGRID (Initial Dataset)](https://github.com/hukenovs/hagrid/tree/Hagrid_v1) 💪\n  - Dataset size is **716GB**\n  - **552,992** FullHD RGB images divided into **18** classes\n  - Extra class `no_gesture` contains **123,589** samples\n  - Train/test split: (509,323) **92%** / (43,669) **8%** by subject `user_id`\n  - **34,730** unique persons from 18 to 65 years old\n  - The distance is 0.5 to 4 meters from the camera\n\n## Installation\nClone and install required python packages:\n```bash\ngit clone https://github.com/hukenovs/hagrid.git\n# or mirror link:\ncd hagrid\n# Create virtual env by conda or venv\nconda create -n gestures python=3.11 -y\nconda activate gestures\n# Install requirements\npip install -r requirements.txt\n```\n\n## Downloads\nWe split the train dataset into 34 archives by gestures because of the large size of data. Download and unzip them from the following links:\n\n### Dataset\n\n| Gesture                           | Size    | Gesture                                   | Size    | Gesture | Size\n|-----------------------------------|---------|-------------------------------------------|---------|--------|----|\n| [`call`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/call.zip)    | 37.2 GB | [`peace`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/peace.zip)           | 41.4 GB | [`grabbing`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/grabbing.zip) | 48.7 GB\n| [`dislike`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/dislike.zip) | 40.9 GB | [`peace_inverted`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/peace_inverted.zip)  | 40.5 GB | [`grip`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/grip.zip) | 48.6 GB\n| [`fist`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/fist.zip)    | 42.3 GB | [`rock`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/rock.zip)            | 41.7 GB | [`hand_heart`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/hand_heart.zip) | 39.6 GB\n| [`four`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/four.zip)    | 43.1 GB | [`stop`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/stop.zip)            | 41.8 GB | [`hand_heart2`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/hand_heart2.zip) | 42.6 GB\n| [`like`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/like.zip)    | 42.2 GB | [`stop_inverted`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/stop_inverted.zip)   | 41.4 GB | [`holy`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/holy.zip) | 52.7 GB\n | [`mute`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/mute.zip)    | 43.2 GB | [`three`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/three.zip)           | 42.2 GB | [`little_finger`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/little_finger.zip) | 48.6 GB\n| [`ok`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/ok.zip)      | 42.5 GB | [`three2`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/three2.zip)          | 40.2 GB | [`middle_finger`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/middle_finger.zip) | 50.5 GB\n| [`one`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/one.zip)     | 42.7 GB | [`two_up`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/two_up.zip)          | 41.8 GB | [`point`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/point.zip) | 50.4 GB\n| [`palm`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/palm.zip)    | 43.0 GB | [`two_up_inverted`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid/hagrid_dataset_new_554800/hagrid_dataset/two_up_inverted.zip) | 40.9 GB | [`take_picture`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/take_picture.zip) | 37.3 GB\n| [`three3`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/three3.zip) | 54 GB | [`three_gun`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/three_gun.zip) | 50.1 GB | [`thumb_index`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/thumb_index.zip) | 62.8 GB\n| [`thumb_index2`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/thumb_index2.zip) | 24.8 GB | [`timeout`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/timeout.zip) | 39.5 GB | [`xsign`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/xsign.zip) | 51.3 GB\n| [`no_gesture`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagrid_v2_zip/no_gesture.zip) | 493.9 MB\n\n`dataset` **annotations**: [`annotations`](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/annotations_with_landmarks/annotations.zip)\n\n[HaGRIDv2 512px - lightweight version of the full dataset with](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/hagridv2_512.zip) `min_side = 512p` `119.4 GB`\n\nor by using python script\n```bash\npython download.py --save_path \u003cPATH_TO_SAVE\u003e \\\n                   --annotations \\\n                   --dataset\n```\n\nRun the following command with key `--dataset` to download dataset with images. Download annotations for selected stage by `--annotations` key.\n\n```bash\nusage: download.py [-h] [-a] [-d] [-t TARGETS [TARGETS ...]] [-p SAVE_PATH]\n\nDownload dataset...\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -a, --annotations     Download annotations\n  -d, --dataset         Download dataset\n  -t TARGETS [TARGETS ...], --targets TARGETS [TARGETS ...]\n                        Target(s) for downloading train set\n  -p SAVE_PATH, --save_path SAVE_PATH\n                        Save path\n```\nAfter downloading, you can unzip the archive by running the following command:\n```bash\nunzip \u003cPATH_TO_ARCHIVE\u003e -d \u003cPATH_TO_SAVE\u003e\n```\nThe structure of the dataset is as follows:\n```\n├── hagrid_dataset \u003cPATH_TO_DATASET_FOLDER\u003e\n│   ├── call\n│   │   ├── 00000000.jpg\n│   │   ├── 00000001.jpg\n│   │   ├── ...\n├── hagrid_annotations\n│   ├── train \u003cPATH_TO_JSON_TRAIN\u003e\n│   │   ├── call.json\n│   │   ├── ...\n│   ├── val \u003cPATH_TO_JSON_VAL\u003e\n│   │   ├── call.json\n│   │   ├── ...\n│   ├── test \u003cPATH_TO_JSON_TEST\u003e\n│   │   ├── call.json\n│   │   ├── ...\n```\n\n## Models\nWe provide some models pre-trained on HaGRIDv2 as the baseline with the classic backbone architectures for gesture classification, gesture detection and hand detection.\n\n| Gesture Detectors                                         | mAP      |\n|--------------------------------------------------|----------|\n| [YOLOv10x](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/YOLOv10x_gestures.pt)  | **89.4**     |\n| [YOLOv10n](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/YOLOv10n_gestures.pt)  | 88.2     |\n| [SSDLiteMobileNetV3Large](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/SSDLiteMobileNetV3Large.pth) | 72.7 |\n\nIn addition, if you need to detect hands, you can use YOLO detection models, pre-trained on HaGRIDv2\n\n| Hand Detectors                                         | mAP      |\n|--------------------------------------------------|----------|\n| [YOLOv10x](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/YOLOv10x_hands.pt)  | **88.8**     |\n| [YOLOv10n](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/YOLOv10n_hands.pt)  | 87.9     |\n\n\n\nHowever, if you need a single gesture, you can use pre-trained full frame classifiers instead of detectors.\nTo use full frame models, **remove the no_gesture class**\n\n| Full Frame Classifiers                    | F1 Gestures |\n|-------------------------------------------|---------|\n| [MobileNetV3_small](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/MobileNetV3_small.pth) | 86.7    |\n| [MobileNetV3_large](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/MobileNetV3_large.pth) | 93.4    |\n| [VitB16](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/VitB16.pth) | 91.7    |\n| [ResNet18](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/ResNet18.pth)      | 98.3    |\n| [ResNet152](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/ResNet152.pth)    | **98.6**    |\n| [ConvNeXt base](https://rndml-team-cv.obs.ru-moscow-1.hc.sbercloud.ru/datasets/hagrid_v2/models/ConvNeXt_base.pth)    | 96.4 |\n\n\n\u003cdetails\u003e\u003csummary\u003e\u003ch3\u003eTrain\u003c/h3\u003e\u003c/summary\u003e\n\nYou can use downloaded trained models, otherwise select a parameters for training in `configs` folder.\nTo train the model, execute the following command:\n\nSingle GPU:\n\n```bash\npython run.py -c train -p configs/\u003cconfig\u003e\n```\nMulti GPU:\n```bash\nbash ddp_run.sh -g 0,1,2,3 -c train -p configs/\u003cconfig\u003e\n```\nwhich -g is a list of GPU ids.\n\n\nEvery step, the current loss, learning rate and others values get logged to **Tensorboard**.\nSee all saved metrics and parameters by opening a command line (this will open a webpage at `localhost:6006`):\n```bash\ntensorboard --logdir=\u003cworkdir\u003e\n```\n\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003e\u003ch3\u003eTest\u003c/h3\u003e\u003c/summary\u003e\n\nTest your model by running the following command:\n\nSingle GPU:\n\n```bash\npython run.py -c test -p configs/\u003cconfig\u003e\n```\nMulti GPU:\n```bash\nbash ddp_run.sh -g 0,1,2,3 -c test -p configs/\u003cconfig\u003e\n```\nwhich -g is a list of GPU ids.\n\u003c/details\u003e\n\n## Demo\n ```bash\npython demo.py -p \u003cPATH_TO_CONFIG\u003e --landmarks\n```\n![demo](images/demo.gif)\n\n## Demo Full Frame Classifiers\n ```bash\npython demo_ff.py -p \u003cPATH_TO_CONFIG\u003e\n```\n\n## Annotations\n\nThe annotations consist of bounding boxes of hands and gestures in COCO format `[top left X position, top left Y position, width, height]` with gesture labels. We provide `user_id` field that will allow you to split the train / val / test dataset yourself, as well as a meta-informations contains automatically annotated age, gender and race.\n```json\n\"04c49801-1101-4b4e-82d0-d4607cd01df0\": {\n    \"bboxes\": [\n        [0.0694444444, 0.3104166667, 0.2666666667, 0.2640625],\n        [0.5993055556, 0.2875, 0.2569444444, 0.2760416667]\n    ],\n    \"labels\": [\n        \"thumb_index2\",\n        \"thumb_index2\"\n    ],\n    \"united_bbox\": [\n        [0.0694444444, 0.2875, 0.7868055556, 0.2869791667]\n    ],\n    \"united_label\": [\n        \"thumb_index2\"\n    ],\n    \"user_id\": \"2fe6a9156ff8ca27fbce8ada318c592b\",\n    \"hand_landmarks\": [\n            [\n                [0.37233507701702123, 0.5935673528948108],\n                [0.3997604810145188, 0.5925499847441514],\n                ...\n            ],\n            [\n                [0.37388438145820907, 0.47547576284667353],\n                [0.39460467775730607, 0.4698847093520443],\n                ...\n            ]\n        ]\n    \"meta\": {\n        \"age\": [24.41],\n        \"gender\": [\"female\"],\n        \"race\": [\"White\"]\n    }\n```\n- Key - image name without extension\n- Bboxes - list of normalized bboxes for each hand `[top left X pos, top left Y pos, width, height]`\n- Labels - list of class labels for each hand e.g. `like`, `stop`, `no_gesture`\n- United_bbox - united combination of two hand boxes in the case of two-handed gestures (\"hand_heart\", \"hand_heart2\", \"thumb_index2\", \"timeout\", \"holy\", \"take_picture\", \"xsign\") and 'null' in the case of one-handed gestures\n- United_label - a class label for united_bbox in case of two-handed gestures and 'null' in the case of one-handed gestures\n- User ID - subject id (useful for split data to train / val subsets).\n- Hand_landmarks - auto-annotated with MediaPipe landmarks for each hand.\n- Meta - automatically annotated with FairFace and MiVOLO neural networks meta-information contains age, gender and race\n\n\n### Bounding boxes\n\n| Object       | Train       | Val     | Test    |Total    |\n|--------------|-------------|---------|---------|---------|\n| gesture      | 980 924     | 120 003 | 200 006 |1 300 933|\n| no gesture   | 154 403     | 19 411  | 29 386  | 203 200 |\n| total boxes  | 1 135 327   | 139 414 | 229 392 |1 504 133|\n\n### Landmarks\n\n| Object                    | Train       | Val     | Test    |Total    |\n|---------------------------|-------------|---------|---------|---------|\n|Total hands with landmarks |  983 991    | 123 230 |201 131  |1 308 352|\n\n\n\n### Converters\n\n\u003cdetails\u003e\u003csummary\u003e \u003cb\u003eYolo\u003c/b\u003e \u003c/summary\u003e\n\nWe provide a script to convert annotations to [YOLO](https://pjreddie.com/darknet/yolo/) format. To convert annotations, run the following command:\n\n```bash\npython -m converters.hagrid_to_yolo --cfg \u003cCONFIG_PATH\u003e --mode \u003c'hands' or 'gestures'\u003e\n```\n\nafter conversion, you need change original definition [img2labels](https://github.com/WongKinYiu/yolov7/blob/2fdc7f14395f6532ad05fb3e6970150a6a83d290/utils/datasets.py#L347-L350) to:\n\n```python\ndef img2label_paths(img_paths):\n    img_paths = list(img_paths)\n    # Define label paths as a function of image paths\n    if \"train\" in img_paths[0]:\n        return [x.replace(\"train\", \"train_labels\").replace(\".jpg\", \".txt\") for x in img_paths]\n    elif \"test\" in img_paths[0]:\n        return [x.replace(\"test\", \"test_labels\").replace(\".jpg\", \".txt\") for x in img_paths]\n    elif \"val\" in img_paths[0]:\n        return [x.replace(\"val\", \"val_labels\").replace(\".jpg\", \".txt\") for x in img_paths]\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003e \u003cb\u003eCoco\u003c/b\u003e \u003c/summary\u003e\n\nAlso, we provide a script to convert annotations to [Coco](https://cocodataset.org/#home) format. To convert annotations, run the following command:\n\n```bash\npython -m converters.hagrid_to_coco --cfg \u003cCONFIG_PATH\u003e --mode \u003c'hands' or 'gestures'\u003e\n```\n\n\u003c/details\u003e\n\n### License\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-sa/4.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003eThis work is licensed under a variant of \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\"\u003eCreative Commons Attribution-ShareAlike 4.0 International License\u003c/a\u003e.\n\nPlease see the specific [license](https://github.com/hukenovs/hagrid/blob/master/license/en_us.pdf).\n\n### Authors and Credits\n- [Alexander Kapitanov](https://www.linkedin.com/in/hukenovs)\n- [Andrey Makhlyarchuk](https://www.linkedin.com/in/makhliarchuk)\n- [Karina Kvanchiani](https://www.linkedin.com/in/kvanchiani)\n- [Aleksandr Nagaev](https://www.linkedin.com/in/nagadit)\n- [Roman Kraynov](https://ru.linkedin.com/in/roman-kraynov-25ab44265)\n- [Anton Nuzhdin](https://www.linkedin.com/in/anton-nuzhdin-46b799234 )\n\n### Links\n- [Github (HaGRIDv2-1M)](https://github.com/hukenovs/hagrid)\n\u003c!-- - [Mirror](https://gitlab.aicloud.sbercloud.ru/rndcv/hagrid) --\u003e\n- [arXiv](https://arxiv.org/abs/2206.08219)\n- [Github (Dynamic Gesture Recognition)](https://github.com/ai-forever/dynamic_gestures)\n\u003c!-- - [Kaggle](https://www.kaggle.com/datasets/kapitanov/hagrid) --\u003e\n\u003c!-- - [Habr](https://habr.com/ru/company/sberdevices/blog/671614/) --\u003e\n\u003c!-- - [Paperswithcode](https://paperswithcode.com/paper/hagrid-hand-gesture-recognition-image-dataset) --\u003e\n\n### Citation\nYou can cite the paper using the following BibTeX entry:\n\n    @misc{nuzhdin2024hagridv21mimagesstatic,\n        title={HaGRIDv2: 1M Images for Static and Dynamic Hand Gesture Recognition}, \n        author={Anton Nuzhdin and Alexander Nagaev and Alexander Sautin and Alexander Kapitanov and Karina Kvanchiani},\n        year={2024},\n        eprint={2412.01508},\n        archivePrefix={arXiv},\n        primaryClass={cs.CV},\n        url={https://arxiv.org/abs/2412.01508}, \n    }\n\n    @InProceedings{Kapitanov_2024_WACV,\n        author    = {Kapitanov, Alexander and Kvanchiani, Karina and Nagaev, Alexander and Kraynov, Roman and Makhliarchuk, Andrei},\n        title     = {HaGRID -- HAnd Gesture Recognition Image Dataset},\n        booktitle = {Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)},\n        month     = {January},\n        year      = {2024},\n        pages     = {4572-4581}\n    }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhukenovs%2Fhagrid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhukenovs%2Fhagrid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhukenovs%2Fhagrid/lists"}