Hareket tanıma görev kılavuzu

MediaPipe Hareket Tanımlayıcı görevi, el hareketlerini gerçek zamanlı olarak tanımanızı sağlar. tanınan el hareketi sonuçlarını, el hareketinin önemli noktalarıyla birlikte tespit etti. Bu görevi, bir kullanıcının belirli el hareketlerini tanımak için kullanabilirsiniz. söz konusu hareketlere karşılık gelen uygulama özelliklerini çağırır.

Bu görev, makine öğrenimi (ML) modeliyle görüntü verileri üzerinde çalışır ve statik veri veya sürekli akış olabilir. Görev, el ile önemli noktaları resim koordinatları, dünya koordinatlarında el önemli noktaları, el (sol/sağ el) ve birden fazla elin el hareketi kategorileri.

Deneyin!

Başlayın

Aşağıdaki uygulama rehberlerinden birini izleyerek bu görevi kullanmaya başlayın: yardımcı olur. Platforma özel bu kılavuzlar, Google'ın temel özelliklerini önerilen bir model kullanarak bu görevin uygulanmasını sağlama ve örnek olarak önerilen yapılandırma seçenekleriyle:

ziyaret edin.

Görev ayrıntıları

Bu bölümde özellikler, girişler, çıkışlar ve yapılandırma açıklanmaktadır. bu görev için kullanılabilir.

Özellikler

  • Giriş resmi işleme: İşleme, resim döndürme, yeniden boyutlandırma, normalleştirme ve renk alanı dönüştürme gibi teknikler sunar.
  • Puan eşiği: Sonuçları tahmin puanlarına göre filtreleyin.
  • Etiket izin verilenler listesi ve ret listesi - Hareket kategorilerini belirtin kabul etmesini sağlar.
Görev girişleri Görev çıkışları
Hareket Tanıyıcı, aşağıdaki veri türlerinden birinin girişini kabul eder:
  • Hareketsiz resimler
  • Kodu çözülmüş video kareleri
  • Canlı video feed'i
Hareket Tanıyıcı aşağıdaki sonuçları verir:
  • El hareketleri kategorileri
  • Algılanan ellerin el tercihi
  • Resim koordinatlarında algılanan ellerin önemli noktaları
  • Algılanan ellerin dünya koordinatlarındaki önemli noktaları

Yapılandırma seçenekleri

Bu görev aşağıdaki yapılandırma seçeneklerine sahiptir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan Değer
running_mode Görev için çalışma modunu ayarlar. Üç tane var modlar:

. IMAGE: Tek resimli giriş modu.
.
. VIDEO: Bir videonun kodu çözülmüş karelerine yönelik mod.
.
. LIVE_STREAM: Giriş canlı yayını modu kameradan alınan veriler gibi. Bu modda, resultListener, sonuçları almak üzere bir dinleyici ayarlamak için çağrıldı eşzamansız olarak ayarlayabilirsiniz.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
num_hands Maksimum el sayısı şu kullanıcı tarafından algılanabilir: GestureRecognizer. Any integer > 0 1
min_hand_detection_confidence El algılama için minimum güven puanı için başarılı bir yöntem olarak nitelendiriliyor. 0.0 - 1.0 0.5
min_hand_presence_confidence Elde tutma puanının minimum güven puanı önemli nokta algılama modelidir. Hareket Tanıyıcı'nın Video ve Canlı yayın modunda ise el yer işareti modelinin el varlığı güven puanı aşağıdaysa avuç içi algılama modelini tetikler. Aksi halde, konumunu belirlemek için basit bir el izleme algoritması ellerinizi rahatça kullanabileceksiniz. 0.0 - 1.0 0.5
min_tracking_confidence El takibi için dikkate alınacak minimum güven puanı işidir. Bu, testteki eller arasındaki sınırlayıcı kutu IoU eşiğidir geçerli kareyi ve son kareyi gösterir. Video modunda ve Akış modunda: Hareket Tanıyıcı, izleme başarısız olursa Hareket Tanıyıcı eli tetikler tespit edebilir. Aksi takdirde, el algılama özelliği atlanır. 0.0 - 1.0 0.5
canned_gestures_classifier_options Hazır hareketler 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 adlar yerel ayarı: varsa TFLite Model Meta Verileri ile belirtilen görünen adlar için kullanılacak yerel ayar.
  • Maksimum sonuç sayısı: Döndürülecek en yüksek puanlı sınıflandırma sonuçlarının maksimum sayısı. < 0 ise tüm mevcut sonuçlar döndürülür.
  • Puan eşiği: Aşağıdaki sonuçların reddedildiği puan. 0 değerine 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 bulunmayan sınıflandırma sonuçları filtrelenir. Ret listesiyle birlikte kullanılamaz.
  • Kategori ret listesi: Kategori adlarının ret listesi. Boş değilse, kategorisi bu kümede bulunan sınıflandırma sonuçları filtrelenir. İzin verilenler listesi ile birlikte hariç tutulur.
    • Görünen adlar yerel ayarı: any string
    • Maksimum sonuç sayısı: 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ç sayısı: -1
    • Puan eşiği: 0
    • Kategori izin verilenler listesi: boş
    • Kategori ret listesi: boş
    custom_gestures_classifier_options Özel hareketler sınıflandırıcı davranışını yapılandırma seçenekleri.
  • Görünen adlar yerel ayarı: varsa TFLite Model Meta Verileri ile belirtilen görünen adlar için kullanılacak yerel ayar.
  • Maksimum sonuç sayısı: Döndürülecek en yüksek puanlı sınıflandırma sonuçlarının maksimum sayısı. < 0 ise tüm mevcut sonuçlar döndürülür.
  • Puan eşiği: Aşağıdaki sonuçların reddedildiği puan. 0 değerine 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 bulunmayan sınıflandırma sonuçları filtrelenir. Ret listesiyle birlikte kullanılamaz.
  • Kategori ret listesi: Kategori adlarının ret listesi. Boş değilse, kategorisi bu kümede bulunan sınıflandırma sonuçları filtrelenir. İzin verilenler listesi ile birlikte hariç tutulur.
    • Görünen adlar yerel ayarı: any string
    • Maksimum sonuç sayısı: 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ç sayısı: -1
    • Puan eşiği: 0
    • Kategori izin verilenler listesi: boş
    • Kategori ret listesi: boş
    result_callback Sonuç işleyiciyi sınıflandırma sonuçlarını alacak şekilde ayarlar hareket tanıyıcı canlı yayın modundayken eşzamansız olarak ayarlayabilirsiniz. Yalnızca koşu modu LIVE_STREAM olarak ayarlandığında kullanılabilir ResultListener Yok Yok

    Modeller

    Hareket Tanıyıcı, iki önceden paketlenmiş model paketi içeren bir model paketi kullanır: el işaret modeli paketi ve hareket sınıflandırma model paketi. İlgili içeriği oluşturmak için kullanılan önemli nokta modeli, ellerin ve el geometrisinin varlığını ve hareketi algılar tanıma modeli, el geometrisine dayalı olarak hareketleri tanır.

    Model adı Giriş şekli Nicelendirme türü Model Kartı Sürümler
    HandGestureClassifier 192 x 192, 224 x 224 kayan noktalı 16 bilgi En yeniler

    Bu görev, Model Maker kullanılarak model paketinde değişiklik yapılmasını da destekler. Bu görev için modelleri özelleştirmek üzere Model Maker'ı kullanma hakkında daha fazla bilgi için Hareket Tanımlayıcı için modelleri özelleştirme sayfasına bakın.

    Elle ilgili önemli nokta model paketi

    Elle ilgili önemli nokta model paketi, 21 adet el ekleminin tuş noktası yerelleştirmesini algılar koordinatlarıyla birlikte çalışır. Modelin eğitildiği tarih: yaklaşık 30 bin gerçek dünya görüntüsü ve çok sayıda sentetik el görseli farklı arka planlar üzerine dayandırılan modeldir. Aşağıdaki 21 önemli noktanın tanımını görebilirsiniz:

    El işaretleyici model paketi, avuç içi algılama modelini ve el önemli noktaları algılama modeli. Avuç içi algılama modeli, kullanıcının bulunduğu bölgeyi ellerini dokunmaya teşvik eder. El önemli noktaları algılama modeli, kırpılmış el resmindeki avuç içi algılama modeli tarafından tanımlanan önemli noktalar.

    Avuç içi algılama modeli çok daha fazla zaman aldığından Video modu veya Canlı akış modunda ise Hareket Tanımlayıcı, algılanan el tarafından tanımlanan sınırlayıcı kutu kullanır ellerin bölgesini yerelleştirmek için geçerli karedeki önemli noktaları çerçeve. Bu, Hareket Tanımlayıcı'nın avuç içi algılama modelini tetikleme sayısını azaltır. Yalnızca el önemli noktaları modeli artık yeterli sayıda gerekli kimlik belirleyemediğinde veya el takibinin başarısız olması durumunda, avuç içi algılama modeli yeniden konumlandırmak için kullanılır.

    Hareket sınıflandırma model paketi

    Hareket sınıflandırma modeli paketi, şu 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ıladığı halde bir hareketi tanımazsa, hareket tanıyıcı, "Yok" sonucunu döndürür. Model, elleri algılamazsa hareket tanıyıcı boş döndürüyor.

    Hareket sınıflandırma model paketi, iki adımlı nöral ağ ardışık düzeni içerir ardından hareket sınıflandırma modelinden yararlanıyor. Daha fazla ayrıntı için Hareket sınıflandırma modeli kartı bölümüne bakın.

    Hareketle yerleştirme modeli, resim özelliklerini bir özellik vektörü olarak kodlar ve sınıflandırma modeli, bu özelliği alan hafif bir hareket sınıflandırıcıdır kullanır. Sağlanan hareket sınıflandırma model paketi, kullanıma sunulan 7 yaygın el hareketini algılayan hazır hareketler sınıflandırıcısı bölümünü ziyaret edin. Egzersiz yaparak daha fazla hareketi tanımak için model paketini genişletebilirsiniz. kendi özel hareket sınıflandırıcınızı kullanabilirsiniz. Aşağıda daha ayrıntılı bilgi bulabilirsiniz Özel modeller bölümüne gidin.

    Hem hazır hareket sınıflandırıcı hem de özel hareket sınıflandırıcıya sahip Hareket Tanıyıcı her iki sınıflandırıcı da aynı hareketi tanırsa özel hareketi tercih eder yardımcı olur. Yalnızca bir hareket sınıflandırıcı hareketi tanırsa Hareket Tanıyıcı, tanınan hareketi doğrudan bildirir.

    Görev karşılaştırmaları

    Aşağıda, yukarıdakilere dayalı olarak ardışık düzenin tamamı için görev karşılaştırmaları verilmiştir modeller. Gecikme sonucu, Pixel 6'da kullanılan ortalama gecikmedir. CPU / GPU.

    Model Adı CPU Gecikmesi GPU Gecikmesi
    GestureRecognizer 16,76 ms. 20,87 ms.

    Özel modeller

    Bu belgede sağlanan modellerin özelliklerini iyileştirmek veya değiştirmek isterseniz görev için Model Oluşturucu'yu kullanarak mevcut modelleri değiştirebilirsiniz. Kullanılan özel modeller with MediaPipe, bir model paket dosyası olan .task biçiminde olmalıdır. Siz bu görev için sağlanan modelleri değiştirmek amacıyla Model Maker'ı kullanmayı düşünmelidir inceleyin.

    Bu görev için model özelleştirme hakkında daha fazla bilgi edinmek üzere şu makaleyi inceleyin: Hareket Tanıyıcı için modelleri özelleştirme.