LSTM ile frame etiket tahmini nasıl yapılır?


#1

Merhaba yaklaşık bir dakikalık 10 farklı sıralı olayı videolarım var. Bu videoların her framesini 10 farklı olaya göre etiketledim ama LSTM ile nasıl eğiteceğimi bilmiyorum. İnternetet araştırdığımda ya bir sonraki framenin tahmini ya da text generation gibi örnekler çıkıyor. Halbuseki benim isteğim sadece verdiğim framenin hangi sınıfa ait olduğunu tahmin etmesi. Anlattığım olaya göre bir tutorial, kod, ya da paper biliyor musunuz?


CNN-LSTM yapısı ile Sequential Classification
#2

senin anlatımında bir problem var
" her framesini 10 farklı olaya göre etiketledim"
frame bazında etiketleme için LSTM e gerek yok direk çoklu sınıflandırıcı deneyebilirsin
Eğer sıralı bir sistem eğitmek istiyorsan
maksimum bilemem kaç framen oluşan video klipler üretmen ve onları etiketlemen lazım
bu durumda her frame bir vektöre sıkıştırılır ve artık elinde bir birini takip eden vektörler gurubu vardır
Bunu LSTM ile verip sonuca bağlaya bilirsin


#4

Eğer den sonraki kısmı okuyunuz
Frame bazlı değil video klip bazlı etiketleyeceksiniz


#3

LSTM’e neden gerek yok, olaylar akış olduğu için geçmişe göre yorumlaması önemli, çoklu sınıflandırıcı yaptığımda teker teker karelere bakmayacak mı?

LSTM ile işaretlenmiş sıralı video karelerini eğitemez miyim?


#5

ultra yüzeysel yazıyorsunuz. Bilgi çıkartmak mümkün değil, teşekkürler.


#6

Anlamadığınız yeri sorun açalım ?


#8

Evet hatta genellikle önceden eğitilmiş büyük Ağ yapılarının CNN ksımının bittiği kısımın sonuna gloabal bir pooling katmanıyla vektöre çevrilmiş hali ile yapılır

Evet YSA genellikle Giriş yapısı sabit sistemlerdir. Bütün ağ eğitildiği yapıyla giriş yapmanız lazım
LSTM yapısı timesteps, input_dim parametereleri içerir
sizin uygulamada timesteps frame sayısı , input_dim da CNN sonunda aldığımız vektör büyüklüğü
teker teker veremezsiniz.

Evet detaylı açıklama için bakınız

Bu klasik bir problem giriş adımnızı bir şekilde sabitlemniz lazım daha kısa olanlar için yapılması gereken nispeten kolay sonunu boş vektörlerle tamamlamak - padding -
çok daha fazla frame gerektirenler için ne yapılabilir diye sorarsanız doğrudan bir cevap vermemiz mümkün değil. Tanınması gereken eylemlerin sınıırlandırılması, belki görüntünün özetlenmesi - birbirine çok yakın faramelerle - Elhasıl sistemin -problemin gereğine göre düşünmek lazım.

bu sorunun cevabıda yukardaki cevapda saklı aslında aktivite1 ve aktivite2 bir birini takip ediyorsa niye böldük ? sistemi problemi iyi analiz edip doğru kurgulamak lazım yoksa kısır döngüye girmek zorunda kalırız


#7

10 sıralı aktivite içeren bir video düşünün, bu videoyu LSTM ile eğitmek için, 10 aktiviteden de x frame al diyorsunuz, her frameyi vektöre çevir(CNN gibi bir yapı kurup FC layer’i alarak sanırım) ve LSTM’e ver.

  • Bu senaryoya göre, öncelikle ilk sorum:

    • Bu modeli test edeceğim sırada, test ettirmek içinde n adet frame mi vermem gerekiyor ki bana bu hareketi yapıyorsun desin? Yani n= 30 seçersem (30 FPS lik bir kamerada, Real time çalıştırdığımda bu modeli 1 FPS alacağım maksimum?) Yoksa test sırasında teker teker frame verip bu neydi demek yetiyor mu? Bu kısımda kafam biraz karışık.

    • İkinci sorum ise, LSTM’e verilirken githubda kodları incelediğim kadarıyla tek yaptıkları “LSTM(256,…)” bunu yapmak. Bu kadar mı LSTM’i kurmak bu sistem için?

  • Senaryo dışındaki sorum ise,

    • 10 aktivitenin her birisi için frame sayısı o kadar çok farklı ki, örneğin ilk aktivide ortalama 25,ikinci 70, üçüncü 45, dördüncü 170, beşinci 270,… bu aktiviteleri en az frame sayısına sahip olan aktivite ile (20-25 frame) sınırlarsam diğer aktivitelerin bu kadar az frame ile anlamlı olması imkansız. Bu durumda n ni nasıl seçeceğim? Ya da illa bir n seçmem gerekiyor mu, her aktivite farklı frame sayısı ile eğitilemez mi?

    • Tüm bunları hallettikten sonra networkü kurup eğitimi yaparken örneğin n = 20 frame sequencesine bakmayı seçtim diyelim. (1 videoda 10 adet aktivite vardı.) Eğitim sırasında LSTM’e aktivite1(aktivite1’in 20 resimi için üretilmiş vektör),aktivite2(aktivite2’in 20 resimi için üretilmiş vektör),aktivite3,…,aktivite10 ve tekrar aktivite1,…,aktivite10 şeklinde sıra ile mi eğitilmesi lazım, yoksa CNN eğitir gibi tüm aktiviteleri karıştırmak(aktivite5,aktivite1,…) mı lazım? Karıştırınca bu sefer aktivite1 den sonra aktivite2 geleceğini öğrenemeyecek ama karıştırmayıncada aktivite10 dan sonra aktivide1 geliyor gibi öğrenecek her zaman.

    • Ya da örneğin aktivite1 videolarından birisi 50 frame ise, n=5 için network kurularak, 10 tane 5lik aktivite1 sample’ ı içerecek şekilde: aktivite1,aktivite1,aktivite1,aktivite1,aktivite1,aktivite2,aktivite2,…,aktivite10,aktivite10
      eğitilebilir mi?

Sorum çok uzun oldu kusura bakmayın ama paper lara falan bakıyorum, çok güzel resimler eklemişler ama detaylı anlatım bulamıyorum sıralı resimler ile LSTM kullanımı hakkında. Genelde LSTM ile ilgili bulabildiğim şey, kelimeler verip, bir sonraki kelimeyi tahmin edebilmek.


#9

Tüm sorularıma verdiğiniz detaylı cevaplar için teşekkürler.


closed #10

Bu konu son cevaptan 60 dakika sonra otomatik olarak kapatıldı. Yeni cevap girilmesine izin verilmiyor.