Hareket tanıma görev kılavuzu

MediaPipe Hareket Tanıyıcı görevi, el hareketlerini gerçek zamanlı olarak tanımanızı sağlar ve algılanan ellerin yer işaretleriyle birlikte tanınan el hareketi sonuçları sunar. Bu görevi, bir kullanıcının belirli el hareketlerini tanımak ve bu hareketlere karşılık gelen uygulama özelliklerini çağırmak için kullanabilirsiniz.

Bu görev, makine öğrenimi (ML) modeliyle görüntü verileri üzerinde çalışır ve statik verileri veya sürekli akışı kabul eder. Görev, resim koordinatlarındaki el yer işaretlerini, dünya koordinatlarındaki el yerlerini, el kullanımını (sol/sağ el) ve birden fazla elin el hareketi kategorilerini üretir.

Deneyin!

Başlayın

Hedef platformunuz için bu uygulama rehberlerinden birini izleyerek bu görevi kullanmaya başlayın. Platforma özgü bu kılavuzlar, önerilen bir model kullanarak bu görevin temel bir şekilde uygulanmasında size yol gösterir ve önerilen yapılandırma seçenekleriyle kod örnekleri sağlar:

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

  • Resim işleme: İşleme resim döndürme, yeniden boyutlandırma, normalleştirme ve renk alanı dönüştürme işlemlerini içerir.
  • Puan eşiği - Sonuçları tahmin puanlarına göre filtreleyin.
  • Etiket izin verilenler listesi ve ret listesi: Modelin tanıdığı hareket kategorilerini belirtin.
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ıma Aracı aşağıdaki sonuçları verir:
  • El hareketlerinin kategorileri
  • Algılanan ellerin el şekli
  • Resim koordinatlarında algılanan ellerin yer işaretleri
  • Dünya koordinatında algılanan ellerin ö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örevin çalışma modunu ayarlar. Üç mod vardır:

RESİM: Tek resimli girişler için mod.

VİDEO: Bir videonun kodu çözülmüş karelerine yönelik mod.

LIVE_STREAM: Kamera gibi giriş verilerini içeren bir canlı yayın modu. Bu modda, sonuçları eşzamansız olarak almak üzere bir işleyici ayarlamak için resultListener çağrılmalıdır.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
num_hands GestureRecognizer, maksimum el sayısını algılayabilir. Any integer > 0 1
min_hand_detection_confidence El algılamasının, avuç içi algılama modelinde başarılı olarak değerlendirilebilmesi için gereken minimum güven puanı. 0.0 - 1.0 0.5
min_hand_presence_confidence El önemli nokta algılama modelinde el varlığının minimum güven puanı. Hareket Tanıma Aracı'nın Video ve Canlı yayın modunda, el önemli nokta modelindeki el varlığı güven puanı bu eşiğin altındaysa avuç içi algılama modelini tetikler. Aksi takdirde, daha sonraki önemli nokta tespiti için ellerin konumunu belirlemek üzere hafif bir el takip algoritması kullanılır. 0.0 - 1.0 0.5
min_tracking_confidence Elle izlemenin başarılı olarak kabul edilmesi için gereken minimum güven puanı. Bu, geçerli çerçevede ve son karede bulunan eller arasındaki sınırlayıcı kutu IoU eşiğidir. Hareket Tanıyıcı'nın Video ve Yayın modunda, izleme başarısız olursa Hareket Tanıyıcı el algılamayı tetikler. Aksi halde, 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 aracılığıyla belirtilen görünen adlar için kullanılacak yerel ayar.
  • Maksimum sonuç: Döndürülecek en yüksek puanlı sınıflandırma sonuçlarının maksimum sayısı. < 0 ise mevcut tüm sonuçlar döndürülür.
  • Puan eşiği: Altına düşen 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 grupta bulunmayan sınıflandırma sonuçları filtrelenir. Reddetme listesi ile birlikte kullanılamaz.
  • Kategori ret listesi: Kategori adlarının ret listesi. Boş değilse kategorisi bu grupta yer alan sınıflandırma sonuçları filtrelenir. İzin verilenler listesi ile birlikte kullanılamaz.
    • Görünen adlar yerel ayarı: any string
    • Maksimum sonuçlar: 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çlar: -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 aracılığıyla belirtilen görünen adlar için kullanılacak yerel ayar.
  • Maksimum sonuç: Döndürülecek en yüksek puanlı sınıflandırma sonuçlarının maksimum sayısı. < 0 ise mevcut tüm sonuçlar döndürülür.
  • Puan eşiği: Altına düşen 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 grupta bulunmayan sınıflandırma sonuçları filtrelenir. Reddetme listesi ile birlikte kullanılamaz.
  • Kategori ret listesi: Kategori adlarının ret listesi. Boş değilse kategorisi bu grupta yer alan sınıflandırma sonuçları filtrelenir. İzin verilenler listesi ile birlikte kullanılamaz.
    • Görünen adlar yerel ayarı: any string
    • Maksimum sonuçlar: 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çlar: -1
    • Puan eşiği: 0
    • Kategori izin verilenler listesi: boş
    • Kategori ret listesi: boş
    result_callback Hareket tanıyıcı canlı yayın modundayken sınıflandırma sonuçlarını eşzamansız olarak almak için sonuç işleyiciyi ayarlar. Yalnızca çalıştırma modu LIVE_STREAM olarak ayarlandığında kullanılabilir ResultListener Yok Yok

    Modeller

    Hareket Tanıma Aracı, önceden paketlenmiş iki model paketi içeren bir model paketi kullanır: bir el önemli nokta model paketi ve bir hareket sınıflandırma model paketi. Önemli nokta modeli, ellerin ve el geometrisinin olup olmadığını algılar. Hareket tanıma modeli ise el geometrisine dayalı olarak hareketleri tanır.

    Model adı Giriş şekli Nicelleştirme türü Model Kartı Sürümler
    HandGestureClassifier 192 x 192, 224 x 224 kayan nokta 16 bilgi En son

    Bu görev, Model Oluşturucu kullanılarak model paketinin değiştirilmesini de destekler. Bu göreve ilişkin modelleri özelleştirmek için Model Maker'ı kullanma hakkında daha fazla bilgi edinmek için Hareket Tanıyıcı için modelleri özelleştirme sayfasına bakın.

    Önemli el modeli paketi

    El önemli nokta modeli paketi, algılanan el bölgelerindeki 21 el birleşimi koordinatının anahtar noktası yerelleştirmesini algılar. Model, gerçek dünyadan yaklaşık 30 bin görüntü ve çeşitli arka planlar üzerine empoze edilen çeşitli sentetik el modelleri konusunda eğitildi. Aşağıdaki 21 önemli noktanın tanımını inceleyin:

    El işaretçisi model paketi, avuç içi algılama modelini ve el ile ilgili önemli noktaları algılama modelini içerir. Avuç içi algılama modeli, giriş görüntüsünün tamamından ellerin bulunduğu bölgeyi yerelleştirir ve el ile önemli noktaları algılama modeli, avuç içi algılama modeli tarafından tanımlanan kırpılmış el görüntüsündeki önemli noktaları bulur.

    Avuç içi algılama modeli, Video modunda veya Canlı yayın modunda çok daha fazla zaman aldığından, Hareket Tanıma Aracı, bir sonraki karede ellerin bölgesini yerelleştirmek için geçerli karede algılanan el işaretlerinin tanımladığı sınırlayıcı kutuyu kullanır. Bu sayede, Hareket Tanıma Aracı'nın avuç içi algılama modelini tetikleme süresi azalır. Yalnızca el ile ilgili önemli noktalar modeli artık yeterli sayıda el varlığını belirleyemediğinde veya el izleme başarısız olduğunda ellerin yeniden yerelleştirilmesi için avuç içi algılama modeli çağrılır.

    Hareket sınıflandırma model paketi

    Hareket sınıflandırma modeli 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 eller algılar ancak bir hareketi tanımazsa hareket tanımlayıcı "Yok" sonucunu döndürür. Model elleri algılamazsa hareket tanıyıcı boş döner.

    Hareket sınıflandırma modeli paketi, hareket yerleştirme modelinin ve ardından hareket sınıflandırma modelinin bulunduğu iki adımlı nöral ağ ardışık düzeni içerir. Daha fazla ayrıntıyı Hareket sınıflandırma modeli kartı bölümünde bulabilirsiniz.

    Hareket yerleştirme modeli, resim özelliklerini bir özellik vektörü olarak kodlar. Sınıflandırma modeli ise özellik vektörünü giriş olarak alan hafif bir hareket sınıflandırıcıdır. Sağlanan hareket sınıflandırma model paketi, yukarıda açıklanan 7 yaygın el hareketini algılayan hazır hareket sınıflandırıcısını içerir. Kendi özel hareket sınıflandırıcınızı eğiterek model paketini daha fazla hareketi tanıyacak şekilde genişletebilirsiniz. Aşağıdaki Özel modeller bölümünde daha fazla ayrıntı bulabilirsiniz.

    Hem hazır hareket sınıflandırıcı hem de özel hareket sınıflandırıcıya sahip Hareket Tanımlayıcı, her iki sınıflandırıcı da kendi kategorilerinde aynı hareketi tanırsa özel hareketi tercih eder. Yalnızca bir hareket sınıflandırıcı hareketi tanırsa Hareket Tanımlayıcı, tanınan hareketi doğrudan çıkarır.

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

    Yukarıda önceden eğitilmiş modellere dayalı olarak ardışık düzenin tamamı için görev karşılaştırmaları aşağıda verilmiştir. Gecikme sonucu, Pixel 6'da CPU / GPU kullanılarak elde edilen ortalama gecikmedir.

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

    Özel modeller

    Bu görevde verilen modellerin özelliklerini iyileştirmek veya değiştirmek isterseniz, mevcut modelleri düzenlemek için Model Maker'ı 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 verilen modelleri değiştirmek üzere Model Maker'ı kullanmayı düşünmelisiniz.

    Bu görev için bir modeli özelleştirme hakkında daha fazla bilgi edinmek için Hareket Tanıyıcı için modelleri özelleştirme bölümüne bakın.