Kişi Tespit Aşamaları ve Proje Yaşam Döngüsü

meyraaslihan
Dec 16, 2020 · 4 min read
Image for post
Image for post
Anlık kamera görüntüsü ile Person yerine kişi tespiti yapıldığı(Meyra) ekran görüntüleri

Anlık alınan görüntülerde tespit ettiğim kişi ve nesnelerin başarı oranlarını kıyaslayarak elde edilen sonuçlara bakalım. Öncelikle yukarıda yer alan görüntü de Meyra kişisinin tespit oranı 93.38% . Bu orandan yola çıkarak farklı konum ve farklı ışıkta farklı görüntüleri ele alıp tespit oranının başarılı olup olmadığına bakalım.

Image for post
Image for post
Webcam ile anlık kişi tespiti

Yukarıda görüldüğü gibi Meyra kişisinin tespit oranı 81.23%. Nesnelerin farklı konumlarda ve farklı ışıklarda tespit oranları da farklılık gösterebilir. Bunun sebebi de train işlemi sırasında train işlemine tabi tutulan her görüntü farklı ışık ve konumlarda çekilip eğitilmiş olmasıdır. Tüm bu sonuçlardan yola çıkarak artık tespit işlemlerinin başarılı bir şekilde gerçekleştiği söylenebilir.

Image for post
Image for post
Sistem üzerinde Webcam ile anlık kişi tespiti yapıldığı sırada alınan görüntüler

Tüm bu başarılı sonuçlar sonrasında serimin son yazısını projemin yaşam döngüsünden bahsederek sonlandırmak istiyorum. Yaşamımızın boyunca önceden planlar yapıp, planımızın gerçekleşeceği gün planımızdan bambaşka olaylar ile karşılaşabiliyoruz. Benim de projemin tüm aşamalarında planlı hareket edip sonraki yapılacak adımları önceden düşünsem bile süreç içerisinde değişikliğe gittiğim zamanlarım oldu.

Image for post
Image for post
Linux or Windows ?

Eye For You (I4U) projem kapsamında Darknet framework’ünün Windows işletim sistemi ile kurulumuna karar vermiştim fakat Windows işletim sistemi darknet framework’ünü kurma aşamasında bir çok problem ile karşılaşıp kaynakları taramış olsam bile yeterli kaynak elde edemediğim için Windows işletim sistemi kullanmaktan vazgeçtim. Windows işletim sistemi yerine Linux işletim sistemi ile kurulum aşamalarına kolaylıkla devam ettim.

Image for post
Image for post
Thread ve Multi-Proccessing sonucunda elde ettiğim FPS değerlerinde herhangi bir değişiklik olmadı

Benzer şekil de Darknet framework’ünün kurulumu aşamasında başta düşük seviyedeki donanımlarda da çalışmasını planlamıştım. Bunun için ise yapılan işlemler sırasında bilgisayarın ekran kartı gücü olan GPU yerine CPU kullanılması gerekiyordu. GPU ile anlık olarak gelen video yayınında ve daha önceden kaydedilmiş video dosyalarında yaptığım nesne tespit işlemlerinde yaklaşık 3 FPS gibi çok düşük FPS değerleri aldım. FPS değerini yükseltmek için tekrardan araştırma sürecine girdim. Tavsiyeler üzerine Thread ve Multi-Proccesing işlemlerini kullanarak FPS değerini yükseltmeye çalıştım. Thread ve Multi-Proccessing işlemlerim sonucunda elde ettiğim FPS değerlerinde herhangi bir değişiklik olmadı bu yüzden Thread ve Multi-Proccesing işlemlerini yapmaktan vazgeçtim.

Train aşamasında ise YoloV3 algoritması ile train işlemi yapmaya karar vermiştim. Bu sürece başladığımda bilgisayarımda train işlemi günlerce devam etti. Fazladan hem zaman kaybettim hem de avg değerleri çok uzun sürede bir düşüyordu. Sonuç olarak bilgisayarımın sistem kaynaklarının yetersiz kaldığını fark ettim. Çözüm olarak ise Google’ın imkanlarını sunduğu Google Colab platformu ile Google Colab’ın sağladığı GPU ile train işlemi yapmaya karar verdim.

Image for post
Image for post
Google Colab ile Train İşlemi

Sorunsuz bir şekilde ilerleyen Colab ve YoloV3 ile train işlemi ile avg değeri 0.02 lere kadar düşüyor ama bir türlü sonlanmıyordu. Bu yüzden başka bir alternatifler düşünüp uygulamaya başladım. Yolov3 dışında başka bir kullanabileceğimiz algoritma olan Yolov3-tiny kullandım. Yolov3-tiny kullanmamın temel sebeplerinden biri model dosyası ile daha hızlı veriyi eğitebildiği ve daha hızlı nesne tespit işlemini gerçekleştirebilmesiydi. Yolov3-tiny ile model dosyasının üzerine kendimiz eğittiğimiz dosyaları da eklenerek tekrar bir train işlemi başlattım. Yapılan tüm değişikler sonucunda 44.000 (22 * 2000) iterasyon sonrasında train işlemi kendi otomatik olarak sonlandırdı. Tüm bu train işlemi sonrasında resimde ve webcam de Meyra nesnesi algılanıp “Person” demek yerine “Meyra” diyerek ekranda gösterildi.

Image for post
Image for post
Model için mAP değerinin hesaplanması

Görüldüğü gibi oluşturulmuş olan modelin, mAP ve IoO oranları hesaplandığında yukarıda yer alan değerler karşımıza çıkıyor. mAP değerimiz 84.34 % olarak hesaplanıyor. Projem de IoU değeri ise 67.33% olarak karşımıza çıkıyor.

Son olarak projemdeki temel amacım hakkında bilgi vermek istiyorum. Projemin temel amacı kişi ve nesne tespit yapmak. İşleyişi ise; Öncelikle eğitilen modelde yer alan kişilerin tespit işlemi gerçekleştiriliyor eğer alınan görüntü karesinde herhangi bir kişi yok fakat insan yer alıyor ise bu kişiyi “Person” etiketi veriliyor sonrasında, eğitilen model ve yapay sinir ağları kullanılarak yapılan nesne ve kişi tespit yöntemine göre daha farklı bir tespit yöntemi olan “Template matching” işlemine tabi tutuluyor yani eğer bu kişinin daha önce sisteme görüntüsü bulunduysa, daha önceden verilen ID değeri ile tespit ediliyor, eğer daha önce bu kişi sistemde yer almadıysa yeni bir ID değeri veriliyor ve sisteme kaydediliyor. Kendi görsel verilerim ile model eğitimi gerçekleştirmeden önce örneğin Meyra kişisine “Person” etiketi veriyordu. Artık “Meyra” kişisi dışında başka insanların görüntü tespitine tabi tutulduğunda “Template matching” yöntemi devreye giriyor ve tespit işlemi başarıyla gerçekleştirilmiş oluyor.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store