Hareket Tanıma Sistemi için RNN (LSTM) Kullanımı


10

ASL (Amerikan İşaret Dili) Hareketlerini sınıflandırmak için bir jest tanıma sistemi oluşturmaya çalışıyorum, bu yüzden girdim bir kameradan veya video dosyasından kare dizisi olması gerekiyordu, ardından diziyi algılıyor ve karşılık gelenlerle eşleştiriyor sınıf (uyku, yardım, yemek, koş, vb.)

Şey, zaten benzer bir sistem oluşturdum ama statik görüntüler için (hareket dahil değil), sadece bir CNN oluşturmanın elin çok fazla hareket etmediği ve veri kümesi yapısı da keras kullanırken yönetilebilirdi ve belki de hala bunu yapmak niyetindeydim (her klasör belirli bir işaret için bir dizi resim içeriyordu ve klasörün adı bu işaretin sınıf adıdır örn. A, B, C , ..)

Benim buradaki soru, ben içine girdi bunu yapabilmek için benim veri kümesini düzenleyebilirsiniz nasıl RNN keras içinde ve hangi belirli işlevleri ben etkili Modelimin ve gerekli parametreleri yetiştirmek için kullanması gereken, bazı insanlar kullanılarak önerdi TimeDistributed sınıfını ama yok benim lehime nasıl kullanılacağına dair net bir fikre sahip olun ve ağdaki her katmanın giriş şeklini dikkate alın.

Ayrıca benim veri seti görüntülerinin oluşacak düşünüyor, muhtemelen kıvrımlı bir katman gerekir, nasıl birleştirmek mümkün olacağını dönüşüm içine katman LSTM (Acımasız kod açısından) one.

Örneğin, veri setimin böyle bir şey olduğunu hayal ediyorum

veri seti yapısı

'Çalıştır' adlı klasör 1, 2 ve 3 olmak üzere 3 klasör içerir, her klasör dizideki karesine karşılık gelir

resim açıklamasını buraya girin resim açıklamasını buraya girin resim açıklamasını buraya girin

Yani Run_1 ilk kare için görüntülerin bazı dizi içerecektir, Run_2 ikinci çerçeve ve için Run_3 üçte benim modelin amacı sözcüğü çıktı bu sekans ile eğitilecek olan Run .


ASL için hangi veri kümesini kullanıyorsunuz?
Sam Johnson

Üzgünüz ama kendi veri setimizi kaydettik ve herkese açık olarak yayınlamayı başaramadık, o kadar çok değildi ve beklenen doğruluğu vermedi.
Anasovich

Kesinlikle yapılabilir ve aşağıda belirtilen makaleden çok fazla kodlama gibi görünmüyor, ancak daha önce kullandığım bir mimari olmadığı için deneyimden bahsetmiyorum. Umarım bu makale sizi doğru yönde gösterecektir: machinelearningmastery.com/cnn-long-short-term-memory-networks
Ollie Graham

Yanıtlar:


2

Anladığım kadarıyla, bu çok sınıflı bir sınıflandırma sorununa (her bir kelime / sembole karşılık gelen el hareketlerinin her bir dizisi / sırası) kaynıyor gibi görünüyor. Bir RNN / LSTM / GRU mimarisi başlamak için harika bir yerdir, ancak hesaplama açısından pahalı ve eğitilmesi oldukça yavaş olacaktır. Bununla birlikte, bunlardan birine veya daha fazlasına kesinlikle ihtiyacınız olup olmadığı, verilerinizin nasıl yapılandırıldığına ve resimlerinize bir dizi yerine bir set olarak davranıp davranamayacağınıza bağlıdır.

İşte bazı potansiyel fikirler:

  1. Her "RUN_ *" klasörü için dropoutve / veya flatteningher katman arasında bir CNN katmanı oluşturarak başlayın .

  2. Sekansın tüm aşamalarını temsil eden tek bir uzun vektör oluşturarak başlayın ve ardından dropoutve / veya ile birkaç kat CNN ekleyin flattening.

Bu, neyin en iyi sonuç verdiğini görmek için biraz araştırma ve ayar yapmanız gerekecek ve optimize etmek istediğiniz değerlendirme metrikleri ile seçim yapmanız gerekecektir (örn. Hassas / hatırlama)

Bir CNN önermemin nedeni, bazı durumlarda, CNN'lerin tekrarlayan bir modele benzer performans sağlayabilmesidir, ancak maliyetin bir kısmıyla. Ne yazık ki, verileriniz hakkında çok az bilgiyle veya hiç bilgi vermek zor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.