2013-10-20 14 views
5

Merhaba Ben OpenCV için yeni ve sabit bir konuma yerleştirilmiş bir kamera kullanarak insan vücudu takip etmeye çalışıyorum. Biraz araştırma yaptım ve Histogram of Oriented Gradients metoduna rastladım, fakat ne yaptığımı anladığımdan yola çıkarak izleme yerine saptama dedim. Bu nedenle, OpenCV'de insan tespitini ve takibini gerçekleştirmenin en basit yolunun ne olduğunu merak ediyordum?OpenCV İnsan Vücudu Takip Etme

P/S: Bu video buldum ve elde etmek istediği tam da budur.

+0

Eğer yeterince iyi bir cevap kabul edebilir:

bu SO yayınlarına göz var. (sol taraftaki onay işaretine tıklayın.) – samkhan13

cevap

4

Ayrıca, insan vücudunun algılanması için HAAR çağlayanı kullanmayı da deneyebilirsiniz. Sadece kasayı CascadeClassifier::CascadeClassifier() kullanarak yükleyin ve ardından nesnenin (gövdenin) algılandığı verilen görüntüdeki bölgeleri elde etmek için CascadeClassifier::detectMultiScale() kullanın. Hızlandırmak ve algılamayı arttırmak için detectMultiScale()'a verilen parametreleri ayarlayın.

vücut tespiti için dahil olmak üzere kaskadlar here bir demet bulabilirsiniz.

+0

Detaylı öneri için teşekkürler ama çok rahatsız edici değil ise bir takip sorumlumum var. Gerçek zamanlı video beslemesinde izlediğim her kullanıcı için (yukarıdaki videoda gösterildiği gibi) benzersiz bir tanımlayıcı koymak istediğimden, hızlı yeniden algılamayı izleyerek "simülasyonu" önerdiğiniz yöntem mu geliyor? Yönteminizi kullanarak mümkün mü? Tekrar teşekkürler. – user2900552

+0

@ user2900552, HAAR veya LBP kaskadlarını kullanarak, her kamera çerçevesindeki bölgeleri yalnızca istenen nesneyi andıran bölgeleri tespit edebileceksiniz. Evet, her çerçevede "yeniden tespit edersiniz" ve böylece izleyebilirler. İstenen nesnenin bir örneğine benzersiz bir kimlik atamak, Temel Bileşen Analizi veya Doğrusal Ayırım Analizi veya "özellik tespiti ve özellik eşleştirmesi" kullanımını gerektirir. "Pratik bilgisayar vizyonu projelerine hakim opencv" adlı bir kitap arayın. İhtiyacınız olan şey için C++ recipies var. – samkhan13

+0

Nazik yanıt için teşekkürler. Kesinlikle önerilerinizi deneyeceğim ama şimdilik gerçekten OpenCV'ye geçmem gerekiyor. Tekrar teşekkürler. – user2900552

1

Sen kişinin sınırlayıcı kutu almak için "insan" modeli ile HOG dedektörü veya latent svm dedektör kullanmak ve sonra kişiyi takip edebilirsiniz. Yeni centroid yeri ölçün :

kişinin ağırlık merkezi aşağıda yoluyla yapılabilir İzleme. Hızını ölçün. Geçerli kare konumunu ve hızını kullanarak bir sonraki kare centroidin yerini tahmin edin. Daha sonra, centroid'in yeni ölçümünün tahminlere yakın olup olmadığını kontrol edin. Eğer öyleyse, önceki karedeki ile aynı kişiyse, değilse çerçeveye giren yeni bir kişidir.

Belki de centroid yerine sınırlayıcı kutuyu izlemelisiniz. Kare hızı yeterince yüksek, belki de sadece sınırlayıcı kutuyu çizebilir ve takip etmeyi unutabilirsiniz.