Kami memperkenalkan kumpulan data gambar besar HaGRIDv2 ( HA dan G esture R ecognition I mage D ataset) untuk sistem pengenalan isyarat tangan (HGR). Anda dapat menggunakannya untuk tugas klasifikasi gambar atau deteksi gambar. Kumpulan data yang diusulkan memungkinkan untuk membangun sistem HGR, yang dapat digunakan dalam layanan konferensi video (Zoom, Skype, Discord, Jazz, dll.), sistem otomasi rumah, sektor otomotif, dll.
Ukuran HaGRIDv2 adalah 1,5T dan kumpulan data berisi 1.086.158 gambar FullHD RGB yang dibagi menjadi 33 kelas gerakan dan kelas "no_gesture" baru yang terpisah, yang berisi postur tangan alami khusus domain. Selain itu, beberapa gambar memiliki kelas no_gesture
jika ada tangan kedua yang bebas isyarat di dalam bingkai. Kelas tambahan ini berisi 2.164 sampel. Data dibagi menjadi pelatihan 76%, validasi 9% dan pengujian 15% set berdasarkan subjek user_id
, dengan 821,458 gambar untuk pelatihan, 99,200 gambar untuk validasi, dan 165,500 untuk pengujian.
Kumpulan data berisi 65.977 orang unik dan setidaknya sejumlah adegan unik. Subjeknya adalah orang-orang yang berusia di atas 18 tahun. Kumpulan data dikumpulkan terutama di dalam ruangan dengan variasi pencahayaan yang cukup besar, termasuk cahaya buatan dan alami. Selain itu, kumpulan data tersebut mencakup gambar yang diambil dalam kondisi ekstrem seperti menghadap dan membelakangi jendela. Selain itu, subjek juga harus menunjukkan gerak tubuh pada jarak 0,5 hingga 4 meter dari kamera.
Contoh sampel dan penjelasannya:
Untuk informasi lebih lanjut lihat TBA kertas arxiv kami.
2024/09/24
: Kami merilis HaGRIDv2. ?
Dataset HaGRID telah diperluas dengan 15 kelas gestur baru, termasuk gestur dua tangan
Kelas baru "no_gesture" dengan postur tangan alami khusus domain telah ditambahkan ( 2.164 sampel, dibagi dengan train/val/test yang masing-masing berisi 1.464, 200, 500 gambar)
Kelas ekstra no_gesture
berisi 200.390 kotak pembatas
Menambahkan model baru untuk deteksi gerakan, deteksi tangan, dan klasifikasi full-frame
Ukuran kumpulan data adalah 1,5T
1.086.158 gambar FullHD RGB
Pembagian pelatihan/val/pengujian: (821.458) 76% / (99.200) 9% / (165.500) 15% berdasarkan subjek user_id
65.977 orang unik
2023/09/21
: Kami merilis HaGRID 2.0. ✌️
Semua file untuk pelatihan dan pengujian digabungkan menjadi satu direktori
Data selanjutnya dibersihkan dan data baru ditambahkan
Pelatihan dan pengujian multi-gpu
Menambahkan model baru untuk deteksi dan klasifikasi full-frame
Ukuran kumpulan data adalah 723 GB
554.800 gambar FullHD RGB (kelas yang dibersihkan dan diperbarui, menambah keragaman berdasarkan ras)
Kelas ekstra no_gesture
berisi 120.105 sampel
Pembagian pelatihan/val/ujian: (410.800) 74% / (54.000) 10% / (90.000) 16% berdasarkan subjek user_id
37.583 orang unik
2022/06/16
: HaGRID (Kumpulan Data Awal)?
Ukuran kumpulan data adalah 716 GB
552.992 gambar FullHD RGB dibagi menjadi 18 kelas
Kelas ekstra no_gesture
berisi 123.589 sampel
Pemisahan pelatihan/ujian: (509.323) 92% / (43.669) 8% berdasarkan subjek user_id
34.730 orang unik berusia 18 hingga 65 tahun
Jaraknya 0,5 hingga 4 meter dari kamera
Kloning dan instal paket python yang diperlukan:
git clone https://github.com/hukenovs/hagrid.git# atau mirror link:cd hagrid# Buat virtual env dengan conda atau venvconda buat -n isyarat python=3.11 -y conda aktifkan isyarat# Instal persyaratanpip install -r persyaratan.txt
Kami membagi kumpulan data kereta menjadi 34 arsip berdasarkan isyarat karena ukuran datanya yang besar. Unduh dan unzip dari tautan berikut:
Sikap | Ukuran | Sikap | Ukuran | Sikap | Ukuran |
---|---|---|---|---|---|
call | 37,2 GB | peace | 41,4 GB | grabbing | 48,7 GB |
dislike | 40,9 GB | peace_inverted | 40,5 GB | grip | 48,6 GB |
fist | 42,3 GB | rock | 41,7 GB | hand_heart | 39,6 GB |
four | 43,1 GB | stop | 41,8 GB | hand_heart2 | 42,6 GB |
like | 42,2 GB | stop_inverted | 41,4 GB | holy | 52,7 GB |
mute | 43,2 GB | three | 42,2 GB | little_finger | 48,6 GB |
ok | 42,5 GB | three2 | 40,2 GB | middle_finger | 50,5 GB |
one | 42,7 GB | two_up | 41,8 GB | point | 50,4 GB |
palm | 43,0 GB | two_up_inverted | 40,9 GB | take_picture | 37,3 GB |
three3 | 54 GB | three_gun | 50,1 GB | thumb_index | 62,8 GB |
thumb_index2 | 24,8 GB | timeout | 39,5 GB | xsign | 51,3 GB |
no_gesture | 493,9 MB |
anotasi dataset
: annotations
HaGRIDv2 512px - versi ringan dari kumpulan data lengkap dengan min_side = 512p
119.4 GB
atau dengan menggunakan skrip python
unduhan python.py --save_path--anotasi --kumpulan data
Jalankan perintah berikut dengan kunci --dataset
untuk mengunduh kumpulan data dengan gambar. Unduh anotasi untuk tahapan yang dipilih dengan tombol --annotations
.
penggunaan: download.py [-h] [-a] [-d] [-t TARGET [TARGET ...]] [-p SAVE_PATH] Unduh kumpulan data... argumen opsional: -h, --help tampilkan pesan bantuan ini dan keluar -a, --annotations Unduh anotasi -d, --dataset Unduh dataset -t TARGETS [TARGETS ...], --targets TARGETS [TARGETS ... ] Target untuk mengunduh set kereta -p SAVE_PATH, --save_path SAVE_PATH Simpan jalur
Setelah mengunduh, Anda dapat mengekstrak arsip dengan menjalankan perintah berikut:
buka zip-d
Struktur kumpulan datanya adalah sebagai berikut:
├── hagrid_dataset│ ├── call │ │ ├── 00000000.jpg │ │ ├── 00000001.jpg │ │ ├── ... ├── hagrid_annotations │ ├── train │ │ ├── call.json │ │ ├── ... │ ├── val │ │ ├── call.json │ │ ├── ... │ ├── test │ │ ├── call.json │ │ ├── ...
Kami menyediakan beberapa model yang telah dilatih sebelumnya di HaGRIDv2 sebagai dasar dengan arsitektur tulang punggung klasik untuk klasifikasi isyarat, deteksi isyarat, dan deteksi tangan.
Detektor Gerakan | peta |
---|---|
YOLOv10x | 89.4 |
YOLOv10n | 88.2 |
SSDLiteMobileNetV3Besar | 72.7 |
Selain itu, jika Anda perlu mendeteksi tangan, Anda dapat menggunakan model deteksi YOLO, yang telah dilatih sebelumnya di HaGRIDv2
Detektor Tangan | peta |
---|---|
YOLOv10x | 88.8 |
YOLOv10n | 87.9 |
Namun, jika Anda memerlukan satu isyarat, Anda dapat menggunakan pengklasifikasi bingkai penuh yang telah dilatih sebelumnya, bukan detektor. Untuk menggunakan model full frame, hapus kelas no_gesture
Pengklasifikasi Bingkai Penuh | Gerakan F1 |
---|---|
MobileNetV3_kecil | 86.7 |
MobileNetV3_large | 93.4 |
VitB16 | 91.7 |
ResNet18 | 98.3 |
ResNet152 | 98.6 |
Basis ConvNeXt | 96.4 |
Anda dapat menggunakan model terlatih yang diunduh, jika tidak, pilih parameter untuk pelatihan di folder configs
. Untuk melatih model, jalankan perintah berikut:
GPU tunggal:
python run.py -c kereta -p konfigurasi/
Multi GPU:
bash ddp_run.sh -g 0,1,2,3 -c kereta -p konfigurasi/
yang mana -g adalah daftar id GPU.
Setiap langkah, kerugian saat ini, kecepatan pembelajaran, dan nilai lainnya dicatat ke Tensorboard . Lihat semua metrik dan parameter yang disimpan dengan membuka baris perintah (ini akan membuka halaman web di localhost:6006
):
papan tensor --logdir=
Uji model Anda dengan menjalankan perintah berikut:
GPU tunggal:
python run.py -c tes -p konfigurasi/
Multi GPU:
bash ddp_run.sh -g 0,1,2,3 -c tes -p konfigurasi/
yang mana -g adalah daftar id GPU.
python demo.py -p--landmark
python demo_ff.py -p
Anotasinya terdiri dari kotak pembatas tangan dan gestur dalam format COCO [top left X position, top left Y position, width, height]
dengan label gestur. Kami menyediakan bidang user_id
yang memungkinkan Anda membagi sendiri kumpulan data kereta / val / pengujian, serta informasi meta yang berisi usia, jenis kelamin, dan ras yang dianotasi secara otomatis.
"04c49801-1101-4b4e-82d0-d4607cd01df0": { "bbox": [ [0,0694444444, 0,3104166667, 0,2666666667, 0,2640625], [0,5993055556, 0,2875, 0,2569444444, 0,2760416667] ], "label": [ "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": { "usia": [24.41], "gender": ["perempuan"], "ras": ["Putih"] }
Kuncinya adalah nama gambar tanpa ekstensi
Bboxes - daftar bbox yang dinormalisasi untuk masing-masing tangan [top left X pos, top left Y pos, width, height]
Labels - daftar label kelas untuk masing-masing tangan misalnya like
, stop
, no_gesture
United_bbox - kombinasi gabungan dua kotak tangan dalam kasus gerakan dua tangan ("hand_heart", "hand_heart2", "thumb_index2", "timeout", "holy", "take_picture", "xsign") dan 'null' di kasus gerakan satu tangan
United_label - label kelas untuk united_bbox untuk gerakan dua tangan dan 'null' untuk gerakan satu tangan
ID Pengguna - id subjek (berguna untuk membagi data ke subset pelatihan / val).
Hand_landmarks - dianotasi secara otomatis dengan landmark MediaPipe untuk masing-masing tangan.
Meta - secara otomatis dianotasi dengan informasi meta jaringan saraf FairFace dan MiVOLO yang berisi usia, jenis kelamin, dan ras
Obyek | Kereta | Val | Tes | Total |
---|---|---|---|---|
sikap | 980 924 | 120 003 | 200 006 | 1 300 933 |
tidak ada isyarat | 154 403 | 19 411 | 29386 | 203 200 |
jumlah kotak | 1 135 327 | 139 414 | 229 392 | 1 504 133 |
Obyek | Kereta | Val | Tes | Total |
---|---|---|---|---|
Total tangan dengan landmark | 983 991 | 123 230 | 201 131 | 1 308 352 |
Kami menyediakan skrip untuk mengonversi anotasi ke format YOLO. Untuk mengonversi anotasi, jalankan perintah berikut:
python -m converters.hagrid_to_yolo --cfg--mode <'tangan' atau 'gerakan'>
setelah konversi, Anda perlu mengubah img2label definisi asli menjadi:
def img2label_paths(img_paths): img_paths = daftar(img_paths) # Tentukan jalur label sebagai fungsi jalur gambar jika "kereta" di img_paths[0]: return [x.replace("train", "train_labels").replace(" .jpg", ".txt") untuk x di img_paths] elif "test" di img_paths[0]: return [x.replace("test", "test_labels").replace(".jpg", ".txt" ) untuk x di img_paths] elif "val" di img_paths[0]: kembalikan [x.replace("val", "val_labels").replace(".jpg", ".txt") untuk x di img_paths]
Kami juga menyediakan skrip untuk mengonversi anotasi ke format Coco. Untuk mengonversi anotasi, jalankan perintah berikut:
python -m converters.hagrid_to_coco --cfg--mode <'tangan' atau 'gerakan'>
Karya ini dilisensikan di bawah varian Lisensi Internasional Creative Commons Attribution-ShareAlike 4.0.
Silakan lihat lisensi spesifiknya.
Alexander Kapitanov
Andrey Makhlyarchuk
Karina Kvanchiani
Aleksandr Nagaev
Roman Kraynov
Anton Nuzhdin
Github
arXiv
Anda dapat mengutip makalah menggunakan entri BibTeX berikut:
@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} }