Kamera kalibrasyonu 3 boyutlu bilgisayarlı görme uygulamalarında son
derece önemlidir. Malumunuz kamera ile elde edilen görüntüler 2
boyutludur ve ayrıca kullanılan lensten kaynaklanan bozulmalar da
vardır. Örneğin kullanılan lense göre görüntünün
merkezindeki pikseller ile kenarlardaki piksellerin yer değiştirme
oranları(nasıl tarif edeceğimi tam bulamadım ama literatürde
bknz. lens distortion) farklı olabilir (Şekil 1). Kameranın
üretiminden kaynaklanan bu bozukluğu gidermek için; kameranın iç
parametreleri diye adlandırılan lens parametrelerini tahmin edip
görüntüye düzeltme işlemi uygulamak gerekir. Bunun için gerçek
büyüklüğü bilinen bir nesne referans olarak kullanılmalıdır.
Genelde satranç tahtası (chessboard) bu amaçla
kullanılır ve görüntü işlemede yaygın kullanılan OPENCV
içerisinde de bu amaçla geliştirilmiş fonksiyonlar mevcuttur.
Şekil 1
Satranç tahtası ile farklı açılardan çok sayıda görüntüler alınarak kalibrasyon işlemi gerçekleştirilir.
Ayrıca iki kamera kullanılarak elde edilen stereo görüntü ile
görüntüdeki nesnelerin dünya koordinatları (yani kameraya göre
tam konumları) elde edilebilir. Bunun için de her bir kameranın
kalibrasyonuna ek olarak Stereo kalibrasyon yapılmalıdır yani kameraların birbirlerine göre konumları
da dikkate alınmalıdır. Python ile Opencv kullanarak kamera kalibrasyonunun gerçekleştirilmesine dair örnek kodu aşağıda bulabilirsiniz.
Örnekte; klasör içerisinde left* ve right* (* lar görüntü numaları) formatında kayıtlı jpg görüntüleri okunarak kalibrasyon matrisleri oluşturulur. Doğru bir kalibrasyon işleminden sonra bu matrisleri kaydedip aynı kameralar ile elde edilen görüntüler için kullanabilirsiniz.
Hiç yorum yok:
Yorum Gönder