เราขอแนะนำชุดข้อมูลภาพขนาดใหญ่ HaGRIDv2 ( HA nd G esture R ecognition I mage D ataset) สำหรับระบบการจดจำท่าทางมือ (HGR) คุณสามารถใช้มันเพื่อการจัดหมวดหมู่รูปภาพหรืองานตรวจจับรูปภาพได้ ชุดข้อมูลที่เสนออนุญาตให้สร้างระบบ HGR ซึ่งสามารถใช้ในบริการการประชุมทางวิดีโอ (Zoom, Skype, Discord, Jazz ฯลฯ) ระบบอัตโนมัติภายในบ้าน ภาคยานยนต์ ฯลฯ
ขนาด HaGRIDv2 คือ 1.5T และชุดข้อมูลประกอบด้วยรูปภาพ FullHD RGB 1,086,158 ภาพ แบ่งออกเป็นท่าทาง 33 คลาส และคลาส "no_gesture" ใหม่แยกกัน ซึ่งมีท่าทางมือตามธรรมชาติเฉพาะโดเมน นอกจากนี้ รูปภาพบางรูปยังมีคลาส no_gesture
หากมีมือที่ไม่มีท่าทางคนที่สองอยู่ในเฟรม ชั้นเรียนพิเศษนี้มี 2,164 ตัวอย่าง ข้อมูลถูกแบ่งออกเป็นการฝึกอบรม 76% การตรวจสอบความถูกต้อง 9% และการทดสอบ 15% กำหนดตามหัวข้อ user_id
โดยมีรูปภาพ 821,458 ภาพสำหรับรถไฟ 99,200 ภาพสำหรับการตรวจสอบ และ 165,500 ภาพสำหรับการทดสอบ
ชุดข้อมูลประกอบด้วยบุคคลที่ไม่ซ้ำกัน 65,977 คน และฉากที่ไม่ซ้ำกันอย่างน้อยจำนวนนี้ วิชาคือผู้ที่มีอายุมากกว่า 18 ปี ชุดข้อมูลถูกรวบรวมในอาคารเป็นหลักโดยมีการเปลี่ยนแปลงของแสงอย่างมาก รวมถึงแสงประดิษฐ์และแสงธรรมชาติ นอกจากนี้ ชุดข้อมูลยังรวมถึงภาพที่ถ่ายในสภาวะที่รุนแรง เช่น หันหน้าไปทางหน้าต่าง นอกจากนี้ ผู้ทดสอบยังต้องแสดงท่าทางที่ระยะห่าง 0.5 ถึง 4 เมตรจากกล้อง
ตัวอย่างตัวอย่างและคำอธิบายประกอบ:
สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสาร TBA ของ arxiv ของเรา
2024/09/24
: เราเปิดตัว HaGRIDv2 -
ชุดข้อมูล HaGRID ได้รับการขยายด้วยคลาสท่าทางใหม่ 15 คลาส รวมถึงท่าทางสองมือด้วย
เพิ่มคลาสใหม่ "no_gesture" ที่มีท่าทางมือตามธรรมชาติเฉพาะโดเมน ( 2,164 ตัวอย่าง หารด้วย train/val/test ที่มี 1,464, 200, 500 ภาพ ตามลำดับ)
คลาสพิเศษ no_gesture
มีกล่องล้อมรอบ 200,390 กล่อง
เพิ่มโมเดลใหม่สำหรับการตรวจจับท่าทาง การตรวจจับมือ และการจำแนกฟูลเฟรม
ขนาดชุดข้อมูลคือ 1.5T
ภาพ FullHD RGB 1,086,158 ภาพ
รถไฟ/วาล์ว/แยกการทดสอบ: (821,458) 76% / (99,200) 9% / (165,500) 15% ตามหัวเรื่อง user_id
บุคคลที่ไม่ซ้ำกัน 65,977 คน
2023/09/21
: เราเปิดตัว HaGRID 2.0
ไฟล์ทั้งหมดสำหรับการฝึกอบรมและการทดสอบจะรวมกันเป็นไดเร็กทอรีเดียว
ข้อมูลถูกล้างเพิ่มเติมและมีการเพิ่มข้อมูลใหม่
การฝึกอบรมและการทดสอบ Multi-Gpu
เพิ่มโมเดลใหม่สำหรับการตรวจจับและการจำแนกฟูลเฟรม
ขนาดชุดข้อมูลคือ 723GB
ภาพ FullHD RGB 554,800 ภาพ (คลาสที่สะอาดและอัปเดต เพิ่มความหลากหลายตามเชื้อชาติ)
คลาสพิเศษ no_gesture
มีตัวอย่าง 120,105 ตัวอย่าง
รถไฟ/วาล์ว/แยกการทดสอบ: (410,800) 74% / (54,000) 10% / (90,000) 16% ตามหัวเรื่อง user_id
บุคคลที่ไม่ซ้ำกัน 37,583 คน
2022/06/16
: HaGRID (ชุดข้อมูลเริ่มต้น) ?
ขนาดชุดข้อมูลคือ 716GB
ภาพ FullHD RGB จำนวน 552,992 ภาพ แบ่งออกเป็น 18 คลาส
คลาสพิเศษ no_gesture
มีตัวอย่าง 123,589 ตัวอย่าง
แยกรถไฟ/ทดสอบ: (509,323) 92% / (43,669) 8% ตามหัวเรื่อง user_id
34,730 คน ที่มีอายุตั้งแต่ 18 ถึง 65 ปี
ระยะห่างจากกล้อง 0.5 ถึง 4 เมตร
โคลนและติดตั้งแพ็คเกจหลามที่จำเป็น:
git clone https://github.com/hukenovs/hagrid.git# หรือมิเรอร์ลิงก์: cd hagrid# สร้าง env เสมือนโดย conda หรือ venvconda สร้าง -n ท่าทาง python=3.11 -y conda เปิดใช้งานท่าทาง # ติดตั้งข้อกำหนด pip ติดตั้ง -r ข้อกำหนด.txt
เราแบ่งชุดข้อมูล Train ออกเป็น 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.5 กิกะไบต์ |
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 ลบ |
คำอธิบายประกอบ dataset
: annotations
HaGRIDv2 512px - ชุดข้อมูลเต็มเวอร์ชันน้ำหนักเบาที่มี min_side = 512p
119.4 GB
หรือโดยใช้สคริปต์หลาม
หลาม download.py --save_path--คำอธิบายประกอบ --ชุดข้อมูล
รันคำสั่งต่อไปนี้ด้วยคีย์ --dataset
เพื่อดาวน์โหลดชุดข้อมูลที่มีรูปภาพ ดาวน์โหลดคำอธิบายประกอบสำหรับขั้นตอนที่เลือกโดยใช้คีย์ --annotations
การใช้งาน: download.py [-h] [-a] [-d] [-t เป้าหมาย [เป้าหมาย ...]] [-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 ไว้เป็นพื้นฐานด้วยสถาปัตยกรรมแกนหลักแบบคลาสสิกสำหรับการจำแนกท่าทาง การตรวจจับท่าทาง และการตรวจจับมือ
เครื่องตรวจจับท่าทาง | แผนที่ |
---|---|
โยโลฟ10x | 89.4 |
YOLOv10n | 88.2 |
SSDLiteMobileNetV3ขนาดใหญ่ | 72.7 |
นอกจากนี้ หากคุณต้องการตรวจจับมือ คุณสามารถใช้โมเดลการตรวจจับ YOLO ที่ได้รับการฝึกอบรมล่วงหน้าบน HaGRIDv2
เครื่องตรวจจับมือ | แผนที่ |
---|---|
โยโลฟ10x | 88.8 |
YOLOv10n | 87.9 |
อย่างไรก็ตาม หากคุณต้องการท่าทางเดียว คุณสามารถใช้ตัวแยกประเภทฟูลเฟรมที่ได้รับการฝึกล่วงหน้าแทนตัวตรวจจับได้ หากต้องการใช้โมเดลฟูลเฟรม ให้ลบคลาส no_gesture ออก
ตัวแยกประเภทแบบเต็มเฟรม | ท่าทาง F1 |
---|---|
MobileNetV3_small | 86.7 |
MobileNetV3_large | 93.4 |
วิตบี16 | 91.7 |
ResNet18 | 98.3 |
ResNet152 | 98.6 |
ฐาน ConvNeXt | 96.4 |
คุณสามารถใช้โมเดลการฝึกที่ดาวน์โหลดมาได้ หรือไม่ก็เลือกพารามิเตอร์สำหรับการฝึกในโฟลเดอร์ configs
หากต้องการฝึกโมเดล ให้ดำเนินการคำสั่งต่อไปนี้:
GPU ตัวเดียว:
หลาม run.py -c train -p configs/
มัลติ GPU:
ทุบตี ddp_run.sh -g 0,1,2,3 -c รถไฟ -p configs/
ซึ่ง -g คือรายการรหัส GPU
ทุกขั้นตอน การสูญเสียในปัจจุบัน อัตราการเรียนรู้ และค่าอื่นๆ จะถูกบันทึกไว้ใน Tensorboard ดูเมตริกและพารามิเตอร์ที่บันทึกไว้ทั้งหมดโดยการเปิดบรรทัดคำสั่ง (ซึ่งจะเปิดหน้าเว็บที่ localhost:6006
):
เทนเซอร์บอร์ด --logdir=
ทดสอบโมเดลของคุณโดยรันคำสั่งต่อไปนี้:
GPU ตัวเดียว:
หลาม run.py -c test -p configs/
มัลติ GPU:
ทุบตี ddp_run.sh -g 0,1,2,3 -c ทดสอบ -p configs/
ซึ่ง -g คือรายการรหัส GPU
หลาม demo.py -p--landmarks
หลาม demo_ff.py -p
คำอธิบายประกอบประกอบด้วยกล่องใส่มือและท่าทางในรูปแบบ COCO [top left X position, top left Y position, width, height]
พร้อมป้ายกำกับท่าทาง เรามีฟิลด์ user_id
ที่จะช่วยให้คุณสามารถแยกชุดข้อมูล train / val / test ด้วยตัวคุณเอง เช่นเดียวกับ meta-information ที่มีคำอธิบายประกอบอายุ เพศ และเชื้อชาติโดยอัตโนมัติ
"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": { "อายุ": [24.41], "เพศ": ["หญิง"], "เชื้อชาติ": ["ขาว"] -
คีย์ - ชื่อรูปภาพที่ไม่มีนามสกุล
Bboxes - รายการ bboxes ปกติสำหรับแต่ละมือ [top left X pos, top left Y pos, width, height]
Labels - รายการป้ายกำกับคลาสสำหรับแต่ละมือ เช่น like
, stop
, no_gesture
United_bbox - การรวมกล่องสองมือเข้าด้วยกันในกรณีของท่าทางสองมือ ("hand_heart", "hand_heart2", "thumb_index2", "หมดเวลา", "ศักดิ์สิทธิ์", "take_picture", "xsign") และ 'null' ใน กรณีของท่าทางมือเดียว
United_label - ป้ายกำกับคลาสสำหรับ united_bbox ในกรณีของท่าทางสองมือและ 'null' ในกรณีของท่าทางมือเดียว
User ID - subject id (มีประโยชน์สำหรับการแบ่งข้อมูลเพื่อ train / val subsets)
Hand_landmarks - เพิ่มคำอธิบายประกอบอัตโนมัติด้วยจุดสังเกต MediaPipe สำหรับแต่ละมือ
Meta - เพิ่มคำอธิบายประกอบโดยอัตโนมัติด้วยข้อมูลเมตาของโครงข่ายประสาทเทียม FairFace และ MiVOLO ประกอบด้วยอายุ เพศ และเชื้อชาติ
วัตถุ | รถไฟ | วาล | ทดสอบ | ทั้งหมด |
---|---|---|---|---|
ท่าทาง | 980 924 | 120 003 | 200 006 | 1 300 933 |
ไม่มีท่าทาง | 154 403 | 19 411 | 29 386 | 203 200 |
กล่องทั้งหมด | 1 135 327 | 139 414 | 229 392 | 1 504 133 |
วัตถุ | รถไฟ | วาล | ทดสอบ | ทั้งหมด |
---|---|---|---|---|
รวมมือกับจุดสังเกต | 983 991 | 123 230 | 201 131 | 1 308 352 |
เรามีสคริปต์สำหรับแปลงคำอธิบายประกอบเป็นรูปแบบ YOLO หากต้องการแปลงคำอธิบายประกอบ ให้รันคำสั่งต่อไปนี้:
python -m converters.hagrid_to_yolo --cfg--mode <'hands' หรือ 'gestures'>
หลังจากการแปลง คุณต้องเปลี่ยนคำจำกัดความดั้งเดิม img2labels เป็น:
def img2label_paths(img_paths): img_paths = list(img_paths) # กำหนดพาธเลเบลเป็นฟังก์ชันของพาธรูปภาพ ถ้า "train" ใน img_paths[0]: return [x.replace("train", "train_labels").replace(" .jpg", ".txt") สำหรับ x ใน img_paths] elif "test" ใน img_paths[0]: return [x.replace("test", "test_labels").replace(".jpg", ".txt" ) สำหรับ x ใน img_paths] elif "val" ใน img_paths[0]: return [x.replace("val", "val_labels").replace(".jpg", ".txt") สำหรับ x ใน img_paths]
นอกจากนี้เรายังมีสคริปต์สำหรับแปลงคำอธิบายประกอบเป็นรูปแบบ Coco หากต้องการแปลงคำอธิบายประกอบ ให้รันคำสั่งต่อไปนี้:
python -m converters.hagrid_to_coco --cfg--mode <'hands' หรือ 'gestures'>
งานนี้ได้รับอนุญาตภายใต้ Creative Commons Attribution-ShareAlike 4.0 International License
โปรดดูใบอนุญาตเฉพาะ
อเล็กซานเดอร์ คาปิตานอฟ
อันเดรย์ มาคลีอาร์ชุก
คารินา ควานเชียนี
อเล็กซานเดอร์ นาเยฟ
โรมัน เครย์นอฟ
แอนตัน นูซดิน
Github
อาร์เอ็กซ์
คุณสามารถอ้างอิงบทความได้โดยใช้รายการ 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} }