30 Ağustos 2016 Salı

Python - OPENCV ile kişi sayma


Bu yazı kapsamında Python ile OPENCV kütüphanesini kullanarak tavana yerleştirilmiş bir kameradan elde edilen görüntüler ile hareket eden nesneleri (bizim örneğimizde kişileri) saymaya çalıştık. Bunun için kullanacağımız algoritmanın temel adımlarını şu şekilde sıralayabiliriz;


1- Background Subtraction : Sabit bir arka plandan her gelen yeni görüntüyü çıkararak görüntüde (videoda) değişen kısımların yani hareketli nesnelerin belirlenmesi

2- Object Tracking : Belirlenen bu ön plandaki nesnelerin takip edilmesi

3- People Counting : Takip edilen bu nesnelerin (hareketli kişilerin) belirli noktayı geçtiklerinde sayılması ve geçiş yönünün belirtilmesi

( Kullandığımız videoyu şuradan indirebilirsiniz.. )

Background Subtraction için OPENCV kütüphanesi içerisindeki fonksiyonlardan arka planının modellenmesinde Gaussian Mixture Model'in kullanıldığı cv2.BackgroundSubtractorMOG() fonksiyonunu kullanıyoruz.

Bunun için ilk olarak masaüstünde kayıtlı olan çekilen alanın boş bir görüntüsünü yüklüyoruz. Daha sonra ise videoyu yükleyip her bir gelen frame 'e backgroundsubtraction işlemini uyguluyoruz.