OPENCV İLE STEREO GÖRÜNTÜLERDEN DERİNLİK KESTİRİMİ Murat Olcay ÖZCAN Eser SERT Deniz TAŞKIN Cem TAŞKIN
İçerik Stereo Görüş OpenCV Stereo Eşleme ve Derinlik Kestirimi Gerekli Öncü İşlemler Stereo Kalibrasyon Stereo Düzeltme Kullanılan Algoritmalar Deneysel Sonuçlar Sonuç ve Öneriler
Binoküler Görüş Binoküler görüş iki gözün meydana getirdiği görüş olarak tanımlanabilir. İki gözden alınan veriler beyin tarafından üst üste bindirilerek derinlik algısı yaratılmasında kullanılır. İnsanlarda bulunan binoküler sistemin incelenmesi ile stereo görüş sistemleri modellenmiştir.
Stereo Görüş Stereo görüşte iki yada daha fazla kamera ile farklı bakış açılarından alınan görüntüler kullanılarak üç boyutlu sahne çıkarımı yapılabilir. Stereo görüş uygulamaları robot yöngüdümü, teleoperasyon ve sanal gerçeklik gibi bir çok alanda kullanılmaktadır.
OpenCV ve OpenCVSharp OpenCV C++ dili ile geliştirilmiş, bir çok bilgisayarla görü algoritmasına sahip olan açık kaynak kodlu bir kütüphanedir. BSD lisansı ile yayınlamakta olan OpenCV akademik ve ticari amaçla ücretsiz olarak kullanılabilir. Windows, Linux, Android ve Ios işletim sistemlerinde çalışabilmektedir. Bu çalışmada .NET altyapısı ve C# programlama dilini kullanabilmek için ayrıca C# ile yazılmış olan OpenCVSharp isimli ara kütüphane kullanılmıştır. 2500 algoritma
Stereo Eşleme Bir sahnenin 3 boyutlu yapısını elde edebilmek için farklı bakış açılarından çekilmiş stereo görüntülerinde görülen her noktanın uzaydaki koordinatlarının elde edilmesi gerekir. Bu koordinatları elde etmek için ise bir görüntü üzerindeki her bir noktanın diğer görüntü üzerindeki eşinin bulunması gereklidir. Stereo eşleme problemi aslında bir arama problemi olarak düşünülebilir.
Derinlik Kestirimi Stereo eşleştirme algoritmalarının büyük bölümümün amacı genel olarak sol görüntüyü referans görüntü olarak belirleyerek, her bir piksel için bir aykırılık (disparity) kestirimi yapmaktır. Bu aykırılıklar sağ ve sol kameralarda görülen özelliklerin resim düzlemindeki koordinatları arasındaki farktır. Aykırılık kestirimleri gözlemlenen nesnelerin ters çevrilmiş uzaklıkları olarak yorumlanır.
Tsukuba stereo çifti ve kesin referans verisi (ground truth data) Açık renkli pikseller kameraya daha yakın olan nesneleri göstermektedir.
Gerekli ön adımlar Stereo eşleme yapılabilmesi için kameraların stereo kalibrasyon ve alınan görüntülerin stereo düzeltme (rectification) işlemlerinin de yapılmış olması gerekmektedir. Ancak kalibre edilmiş ve düzeltilmiş görüntüler üzerinde sağlıklı bir derinlik kestirimi yapılabilir.
Stereo Kalibrasyon Gerçekte hiç bir lens/kamera mükemmel değildir ve görüntüde üretim sürecinden kaynaklanan bozulmalar meydana gelir. Radyal ve teğetsel bozukluklar Kameralar ölçüleri bilinen bir kalibrasyon nesnesinin farklı açılardan alınmış görüntüleri kullanılarak kalibre edilir. Radyal bozukluk kamerada kullanılan lensin küresel biçimde olmasından kaynaklanan bozukluktur.
Stereo Kalibrasyon Kalibrasyon sonrasında elde edilen iç (intrinsic) parametreler lens bozukluklarının düzeltilmesinde kullanılır. Dış (extrinsic) parametreler ise kameralar arasında ki birbirlerine göreceli geometrik ilişkiyi göstermektedir. Stereo düzeltme işleminin ve derinlik kestiriminin gerçekleştirilebilmesi için kameralar arasındaki geometrik ilişkinin bilinmesi gereklidir.
Stereo Düzeltme Bu işlemden sonra iki görüntü üzerindeki satırlarının hizalanması sonucunda stereo eşleme işlemi daha gerçekçi ve hesaplanabilir olmaktadır. Satır hizalanmış görüntülerde eşleştirilecek karşılıklı piksellerin aranması işlemi 2 boyutlu bir aramadan aynı yatay çizgide tek boyutlu bir aramaya dönüşmektedir.
OpenCV ile Stereo Eşleme Blok Eşleme Algoritması Her bir pikselin diğer görüntüde ki eşini bulmak yerine, arama işlemine komşu pikselleri de dahil ederek bir blok halinde arama yapar. Referans görüntü üzerindeki bu blok ile diğer görüntü üzerindeki blokların benzerlikleri parlaklık yoğunluğu farkı kullanılarak ölçülür. FindStereoCorrespondenceBM (left, right, disparity, state)
OpenCV ile Stereo Eşleme II Yarı-Global Blok Eşleme Algoritması H. Hirschmüller tarafından 2005 yılında tanımlanmış olan yarı global eşleme algoritması temel alınarak geliştirilmiştir. Blok eşleme algoritmasında ki bazı iyileştirme işlemleri bu algoritmaya da dahil edilmiştir. StereoSGBM sınıfının FindStereoCorrespondence (left, right, disparity) metodu kullanılmaktadır.
Deneysel Sonuçlar (Tsukuba)
Deneysel Sonuçlar (Middlebury)
Deneysel Sonuçlar (Uygulama)
Farklı Parametre Değişimi
Uygun Parametrelerin Belirlenmesi
Sonuç ve Öneriler Bu çalışmada OpenCV kütüphanesi ile farklı algoritmalar kullanılarak stereo görüntülerden derinlik kestirimi yapılmıştır. Kalibrasyon ve düzeltme adımları OpenCV ile başarılı şekilde gerçekleştirilmiştir. Kullanılan algoritmalar varsayılan parametrelerle bazı örneklerde başarılı sonuç vermese de, parametreler değiştirilerek daha başarılı sonuçlara ulaşılmıştır. Derinlik kestirimi konusunda daha iyi sonuç veren algoritmalar bulunmakta birlikte; gerek kullanım kolaylığı, gerekse açık kaynak kodlu, ücretsiz ve gelişime açık oluşuyla OpenCV kütüphanesi çok çeşitli bilgisayarla görü uygulamaları için tercih edilebilir.
Teşekkürler! Sorular?