Kamera ile hız belirlemek (bir tür radar) konusunda öğrenciler ya da meraklılar için basit bir HALCON kodu ile yardımcı olmak istedim. Kameralı hız belirleme konusunda bir çok yaklaşım olabilir. En sık kullanılan yaklaşım, ardışıl olarak alınan 2 görüntü arasında, farklılıkları belirlemek, (bu farklılıklar genellikle yer değiştiren nesneler, yani araçlardır) ve bu farklılıktan kaynaklanan yer değiştirme mesafesini bulup, arada geçen zamana bölmek suretiyle hızın elde edilmesidir.
Örnek olması açısından, şirketimizin balkonundan cep telefonumla sokaktan geçen araçlarn resimlerini çektim. (Normalde, kullanılan endüstriye kameralar, resim ile birlikte resmin alındığı hassas zaman bilgisini de verirler. Konuyla ciddi ilgilenenler o tür kameralar bulmalıdır. örneğin iDS imaging ürünleri) Ben cep telefonumla çektiğim için, ortalama 2 sn bekledim. (Yani, umarım) Tabii elim sabit olmadığı için kamera biraz titredi 🙂 Yine de tüm bunlar, yoldan geçen güzelim twingonun hızını iyi kötü belirlemem için engel teşkil etmedi.
İşte aldığım resimler ve işte bunları işleyen HALCON kodu.
Aslında buradan rar dosyasını da indirebilirsiniz.
Programın çalıştırılması ile oluşan ekran görüntüsü ise
Programın çalışma şekli.
Program aslında thresholding ile, lacivert renkli nesneleri arar. Görüntü renkli kamera ile alındığı için, önce RGB kanallarına ayırıyor resmi. Sonra HSV değerlerini buluyor. Threshold işlemlerini HSV kanallarında yapıyor.
Bir kere aracı bulduktan sonra, gerisi zaten 4 işlem. Anlatmaya gerek yok.
İdealde, bunun gibi sadece özel bir renge göre radar yapılmaz tabii 🙂
İdealde olması gereken, iki resmin karşılaştırılıp, aradaki farkı oluşturan noktalardan araçlar bulunup hız belirleme yapılmasıdır. check_difference isimli HALCON örneği incelemeye değer güzel bir çalışmadır mesela.
Konuyla ilgilenenlere kolay gelsin diyorum. İlgi alaka olursa, daha profesyonel olarak konuya yaklaşımları da irdeleyebiliriz.
Sayın Sarı,
Yazınızda geçen konunun ilk aşaması “object tracking” dir. Bu aşamada yazınızda bahsettiğiniz yöntemler belki de verdiğiniz örnekte işe yaramakla beraber artık uygun metodlar var.
Halcon destekliyor mu bilmiyorum ama “object tracking” konusunda şu başlıkları bir araştırın derim:
– Mean-shift
– EM-based mean shift (shape adapted mean shift)
Makale (belirtildiği üzere) öğrenciler veya konuya ilgi duyan amatörler için yazılmıştır. Lise ya da seçmeli ders üniv. öğrencilerinin 3-5 satır kod yazarak proje / ödev vb. yapabilmeleri için istek üzerine yazılmıştır.
Object tracking konusunda sayısız farklı yaklaşım vardır. HALCON hemen her yaklaşımın kullanacağı fonksiyon setini barındırmaktadır.
yaptıgın program etkıleyıcı ancak yetersız gelıstırılmesı lazım savunma sanayı ıle ılgılı calısmalarınızı takıp etmek ısterız ıyı çalışmalar…