Hareket tanıma görev kılavuzu

Başparmağını kaldıran bir el. Model tarafından% 63 güven puanıyla başparmak yukarı hareketi olarak tanımlanmıştır.

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.

Deneyin.

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:

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:
  • Sabit resimler
  • Kodu çözülmüş video kareleri
  • Canlı video feed'i
Hareket Tanımlayıcı aşağıdaki sonuçları döndürür:
  • El hareketi kategorileri
  • Algılanan ellerin el tercihi
  • Algılanan ellerin resim koordinatlarındaki önemli noktaları
  • Dünya koordinatlarında algılanan ellerin yer işaretleri

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"]
  • Görünen ad yerel ayarı: Varsa TFLite Model Meta Verileri aracılığıyla belirtilen görünen adlar için kullanılacak yerel ayar.
  • Maksimum sonuç sayısı: Döndürülecek en yüksek puana sahip sınıflandırma sonucu sayısı. < 0 ise mevcut tüm sonuçlar döndürülür.
  • Puan eşiği: Sonuçların reddedildiği puan. 0 olarak ayarlanırsa mevcut tüm sonuçlar döndürülür.
  • Kategori izin verilenler listesi: Kategori adlarının izin verilenler listesi. Boş değilse kategorisi bu kümede olmayan sınıflandırma sonuçları filtrelenir. Reddetme listesi ile birbirini dışlar.
  • Kategori ret listesi: Kategori adlarının yer aldığı ret listesi. Boş değilse kategorisi bu kümede olan sınıflandırma sonuçları filtrelenir. İzin verilenler listesi ile birbirini dışlar.
    • Görünen adlar yerel ayarı: any string
    • Maksimum sonuç: any integer
    • Puan eşiği: 0.0-1.0
    • Kategori izin verilenler listesi: vector of strings
    • Kategori ret listesi: vector of strings
    • Görünen adlar yerel ayarı: "en"
    • Maksimum sonuç: -1
    • Puan eşiği: 0
    • Kategori izin verilenler listesi: boş
    • Kategori ret listesi: boş
    custom_gestures_classifier_options Özel hareket sınıflandırıcı davranışını yapılandırma seçenekleri.
  • Görünen ad yerel ayarı: Varsa TFLite Model Meta Verileri aracılığıyla belirtilen görünen adlar için kullanılacak yerel ayar.
  • Maksimum sonuç sayısı: Döndürülecek en yüksek puana sahip sınıflandırma sonucu sayısı. < 0 ise mevcut tüm sonuçlar döndürülür.
  • Puan eşiği: Sonuçların reddedildiği puan. 0 olarak ayarlanırsa mevcut tüm sonuçlar döndürülür.
  • Kategori izin verilenler listesi: Kategori adlarının izin verilenler listesi. Boş değilse kategorisi bu kümede olmayan sınıflandırma sonuçları filtrelenir. Reddetme listesi ile birbirini dışlar.
  • Kategori ret listesi: Kategori adlarının yer aldığı ret listesi. Boş değilse kategorisi bu kümede olan sınıflandırma sonuçları filtrelenir. İzin verilenler listesi ile birbirini dışlar.
    • Görünen adlar yerel ayarı: any string
    • Maksimum sonuç: any integer
    • Puan eşiği: 0.0-1.0
    • Kategori izin verilenler listesi: vector of strings
    • Kategori ret listesi: vector of strings
    • Görünen adlar yerel ayarı: "en"
    • Maksimum sonuç: -1
    • Puan eşiği: 0
    • Kategori izin verilenler listesi: boş
    • Kategori ret listesi: boş
    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:

    Belirli el yer işareti noktaları için kodlar

    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.