MediaPipe Hareket Tanımlayıcı görevi, el hareketlerini gerçek zamanlı olarak tanımanıza olanak tanır ve algılanan ellerin yer işaretleriyle birlikte tanınan el hareketi sonuçlarını sağlar. Kullanıcının yaptığı belirli el hareketlerini tanımak ve bu hareketlere karşılık gelen uygulama özelliklerini çağırmak için bu görevi kullanabilirsiniz.
Bu görev, makine öğrenimi (ML) modeli ile görüntü verileri üzerinde çalışır ve statik verileri veya sürekli bir akışı kabul eder. Görev, resim koordinatlarında el yer işaretleri, dünya koordinatlarında el yer işaretleri, el tercihi (sol/sağ el) ve birden fazla elin el hareketi kategorilerini döndürür.
Başlayın
Hedef platformunuzla ilgili bu uygulama kılavuzlarından birini uygulayarak bu görevi kullanmaya başlayın. Platforma özel bu kılavuzlar, önerilen bir model kullanarak bu görevin temel uygulamasını adım adım gösterir ve önerilen yapılandırma seçenekleriyle kod örnekleri sunar:
- Android - Kod örneği
- Python - Kod örneği
- Web - Kod örneği - Kılavuz
Görev ayrıntıları
Bu bölümde, bu görevin özellikleri, girişleri, çıkışları ve yapılandırma seçenekleri açıklanmaktadır.
Özellikler
- Giriş resmi işleme: İşleme, resim döndürme, yeniden boyutlandırma, normalleştirme ve renk alanı dönüştürme işlemlerini içerir.
- Skor eşiği: Sonuçları tahmin puanlarına göre filtreleyin.
- İzin verilenler listesi ve engellenenler listesi etiketi: Model tarafından tanınan hareket kategorilerini belirtin.
Görev girişleri | Görev çıkışları |
---|---|
Hareket Tanımlayıcı, aşağıdaki veri türlerinden birini kabul eder:
|
Hareket Tanımlayıcı aşağıdaki sonuçları döndürür:
|
Yapılandırma seçenekleri
Bu görev için aşağıdaki yapılandırma seçenekleri vardır:
Seçenek Adı | Açıklama | Değer Aralığı | Varsayılan değer | |
---|---|---|---|---|
running_mode |
Görevin çalışma modunu ayarlar. Üç mod vardır: RESİM: Tek resim girişleri için kullanılan mod. VIDEO: Bir videonun kod çözülmüş karelerinin modu. LIVE_STREAM: Kameradan alınan giriş verilerinin canlı yayını için kullanılan mod. Bu modda, sonuçları asenkron olarak alacak bir dinleyici oluşturmak için resultListener çağrılmalıdır. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
|
num_hands |
GestureRecognizer , maksimum sayıda eli algılayabilir.
|
Any integer > 0 |
1 |
|
min_hand_detection_confidence |
Avuç içi algılama modelinde el algılamanın başarılı olarak kabul edilmesi için gereken minimum güven puanı. | 0.0 - 1.0 |
0.5 |
|
min_hand_presence_confidence |
El yer işareti algılama modelindeki el varlığı puanının minimum güven puanı. Hareket Tanımlayıcı'nın video modunda ve canlı yayın modunda, el yer işareti modelinden elde edilen el varlığı güven puanı bu eşiğin altındaysa avuç içi algılama modeli tetiklenir. Aksi takdirde, sonraki yer işareti algılama için ellerin konumunu belirlemek amacıyla hafif bir el izleme algoritması kullanılır. | 0.0 - 1.0 |
0.5 |
|
min_tracking_confidence |
El izlemenin başarılı kabul edilmesi için gereken minimum güven puanı. Bu, geçerli çerçevedeki ve son çerçevedeki eller arasındaki sınırlayıcı kutu IoU eşiğidir. Hareket Tanımlayıcı'nın Video modu ve Akış modunda, izleme başarısız olursa Hareket Tanımlayıcı el algılamayı tetikler. Aksi takdirde el algılama atlanır. | 0.0 - 1.0 |
0.5 |
|
canned_gestures_classifier_options |
Hazır hareket sınıflandırıcı davranışını yapılandırma seçenekleri. Hazır hareketler ["None", "Closed_Fist", "Open_Palm", "Pointing_Up", "Thumb_Down", "Thumb_Up", "Victory", "ILoveYou"] |
|
|
|
custom_gestures_classifier_options |
Özel hareket sınıflandırıcı davranışını yapılandırma seçenekleri. |
|
|
|
result_callback |
Sonuç dinleyicisini, jest tanımlayıcı canlı yayın modundayken sınıflandırma sonuçlarını asenkron olarak alacak şekilde ayarlar.
Yalnızca çalışma modu LIVE_STREAM olarak ayarlandığında kullanılabilir. |
ResultListener |
Yok | Yok |
Modeller
Hareket Tanımlayıcı, önceden paketlenmiş iki model paketi içeren bir model paketi kullanır: el yer işareti model paketi ve hareket sınıflandırması model paketi. Yer işareti modeli, ellerin ve el geometrisinin varlığını algılar. Hareket tanıma modeli ise el geometrisine göre hareketleri tanır.
Model adı | Giriş şekli | Kesirli sayılaştırma türü | Model Kartı | Sürümler |
---|---|---|---|---|
HandGestureClassifier | 192 x 192, 224 x 224 | float 16 | info | En son |
Bu görev, Model Maker'ı kullanarak model paketinin değiştirilmesini de destekler. Bu görev için modelleri özelleştirmek üzere Model Oluşturucu'yu kullanma hakkında daha fazla bilgi için Hareket Tanımlayıcı için modelleri özelleştirme sayfasına bakın.
El yer işareti modeli paketi
El belirgin işareti model paketi, algılanan el bölgelerinde 21 el eklemi koordinatının önemli nokta konumunu algılar. Model, yaklaşık 30.000 gerçek görüntünün yanı sıra çeşitli arka planlara yerleştirilmiş çeşitli oluşturulmuş sentetik el modelleriyle eğitildi. Aşağıda 21 önemli yerin tanımını bulabilirsiniz:
El önemli nokta algılama modeli paketi, avuç içi algılama modelini ve el önemli noktaları algılama modelini içerir. Avuç içi algılama modeli, giriş resminin tamamında ellerin bulunduğu bölgeyi yerelleştirir ve el önemli noktaları algılama modeli, avuç içi algılama modeli tarafından tanımlanan kırpılmış el resmindeki önemli noktaları bulur.
Avuç içi algılama modeli çok daha zaman alıcı olduğundan, Jest Tanımlayıcı, video modunda veya canlı yayın modunda, bir sonraki karedeki ellerin bölgesini yerelleştirmek için geçerli karede algılanan el yer işaretleri tarafından tanımlanan sınırlayıcı kutuyu kullanır. Bu, Hareket Tanımlayıcı'nın avuç içi algılama modelini tetikleme sayısını azaltır. El yer işaretleri modeli artık gerekli sayıda eli tespit edemediğinde veya el takibi başarısız olduğunda avuç içi algılama modeli çağrılarak eller yeniden konumlandırılır.
Hareket sınıflandırması modeli paketi
Hareket sınıflandırması model paketi, aşağıdaki yaygın el hareketlerini tanıyabilir:
0 - Unrecognized gesture, label: Unknown
1 - Closed fist, label: Closed_Fist
2 - Open palm, label: Open_Palm
3 - Pointing up, label: Pointing_Up
4 - Thumbs down, label: Thumb_Down
5 - Thumbs up, label: Thumb_Up
6 - Victory, label: Victory
7 - Love, label: ILoveYou
Model elleri algılar ancak hareketi tanıyamazsa hareket tanımlayıcı "Yok" sonucunu döndürür. Model el algılamazsa jest tanımlayıcı boş değer döndürür.
Hareket sınıflandırması modeli paketi, bir hareket yerleştirme modelinin ardından bir hareket sınıflandırması modeli içeren iki adımlı bir sinir ağı ardışık düzeni içerir. Daha fazla bilgi için İşaret sınıflandırması model kartını inceleyin.
Jest yerleştirme modeli, resim özelliklerini bir özellik vektörüne kodlar. Sınıflandırma modeli ise özellik vektörünü giriş olarak alan hafif bir jest sınıflandırıcısıdır. Sağlanan hareket sınıflandırması model paketi, yukarıda açıklanan 7 yaygın el hareketini algılayan hazır hareket sınıflandırıcıyı içerir. Kendi özel hareket sınıflandırıcınızı eğiterek model paketini daha fazla hareketi tanıyacak şekilde genişletebilirsiniz. Daha fazla bilgi için aşağıdaki Özel modeller bölümüne bakın.
Hem hazır hareket sınıflandırıcısı hem de özel hareket sınıflandırıcısı içeren Hareket Tanımlayıcı, her iki sınıflandırıcı da kategorilerinde aynı hareketi tanıdıysa özel hareketi tercih eder. Hareketi yalnızca bir hareket sınıflandırıcı tanırsa Hareket Tanımlayıcı, tanınan hareketi doğrudan çıkışa gönderir.
Görev karşılaştırmaları
Yukarıdaki önceden eğitilmiş modellere dayalı olarak tüm ardışık düzenin görev karşılaştırmalarını aşağıda bulabilirsiniz. Gecikme sonucu, CPU / GPU kullanan Pixel 6'taki ortalama gecikmedir.
Model Adı | CPU Gecikmesi | GPU Gecikmesi |
---|---|---|
GestureRecognizer | 16,76 ms | 20,87 ms |
Özel modeller
Bu görevde sağlanan modellerin özelliklerini iyileştirmek veya değiştirmek istiyorsanız mevcut modelleri değiştirmek için Model Oluşturucu'yu kullanabilirsiniz. MediaPipe ile kullanılan özel modeller, model paketi dosyası olan .task
biçiminde olmalıdır. Kendi modelinizi oluşturmadan önce, bu görev için sağlanan modelleri değiştirmek üzere Model Oluşturucu'yu kullanabilirsiniz.
Bir modeli bu görev için özelleştirme hakkında daha fazla bilgi için Hareket Tanımlayıcı için modelleri özelleştirme başlıklı makaleyi inceleyin.