3D Görüntü İşleme Teknikleri – 2

Stereovision Prensibi

Bir önceki makalede, 3D görüntü işleme teknolojilerine ana başlık olarak değinmiştik. Bu makalede biraz daha teknik ayrıntıya girebiliriz.

Önce işin biraz matematiğine değinelim. Stereovision nasıl çalışır?

Nesne farklı açılardan gözlemlenir.

Eğer α ve β açıları ile b mesafesi biliniyorsa, basit bir geometrik hesaplama ile P nin pozisyonunu bulabiliriz.

Buna, triangulation (üçgenleme) prensibi denir.

P noktası her iki kamerada bir miktar kaymış olarak görünür (sırasıyla tek gözümüzü kapattığınızda gördüğümüz nesnelerin bir miktar kayması gibi)

Sonuç olarak, her iki kamera arasındaki mesafe, açı, focal mesafe biliniyorsa, kaymanın kaç pixel olduğu da hesaplanabilir. Buna Disparity denir. Uzaktaki nesneler için kayma az olacaktır, yakındaki nesneler için ise kayma daha fazla olacaktır. Bu durumda, stereovision da temel prensip, her bir pixel için Disparity değerini hesaplayabilmektir.

Nemrutun her iki (sol ve sağ kamera) tarafından alınmış görüntüsü soldaki gibidir. Şapkasının hemen üst noktası, sağ kameraya daha yakın olduğundan 156. pixelde iken, sol kamerada 160. pixeldedir. Kameralar kalibre edilmiş olduğundan aynı Y değerlerini vermektedirler. Yine kalibrasyon sonucu, bu 4 pixel kaymanın, ne kadar mesafeye dek düştüğü bulunabilir. Burada, sistemin hızlı çalışması için, sol resimdeki P(160,120) noktasının, sağ resimde nerelerde aranacağını sistem kestirebilmek zorundadır. Kalibrasyon sonucu, sol kameradaki her bir satır (row) sağ kamerada da aynı satıra denk düşecek şekilde resim dönüştürülür (rectification). Son olarak, stereo kamera, hangi mesafeden çalışıyor ise, (10 cm, 30 cm, 1 mt., 2 mt. vs.) yaklaşık olarak, kaç pixel kayma olabileceği bellidir. Böylelikle, sol kameradaki her bir tekil pixel, sağ kamerada tek bir satır üzerinde, dar bir alanda aranır ve hızlıca bulunur.

Şimdi işin matematiğine daha ayrıntılı girelim.

Stereo Teori – Perspective Projection

3 boyutlu olarak algılanmak istenen nesne üzerindeki her bir nokta (p), biri sol kamerada (p’), diğeri sağ kamerada (p”) olmak üzere bir geometrik yüzey oluşturur. Buna epilolar yüzey denir.

Her bir kameranın, x-y eksenlerinden oluşan yüzey ile epipolar yüzeyin kesişim noktalarının kenara olan uzaklıkları, l1 ve l2 olsun. Sistem, sol kameradaki her bir tekil p’ noktasının sağ kamerada nerede bulunduğunu (p” noktaları) bulmak zorundadır. Normalde bu, uzun bir işlemdir. Örneğin 1.3M Pixellik kameralar kullanılıyorsa, soldaki her 1.3 milyon pixel, sağ tarafta tek tek aranacak ve Disparity değerleri hesaplanacak. Bu işlemi hızlandırmak için, Camera Rectification dediğimiz tekniği kullanırız.

Stereo Rectification

Rektifikasyondaki amaç, p noktasının her iki kameradaki izdüşümleri olan p’ ve p” noktalarını, yatay eksende aynı paralel doğru üzerine düşürmektir. Bunun için, her iki kamera görüntüsü de, bir miktar döndürülür ve pixeller transform edilir. Sonuçta, p’ ve p” noktaları aynı y (row – satır) değerine denk getirilir. Rectified (düzeltilmiş) görüntüler, şimdi aynı eksendedir (z=1) Epipolar doğrular, (l1 ve l2) aynı paralel düzlemdedir. Artık, sol kameradaki p'(x,y) noktasındaki bir pixel, sağ kamerada herhangi bir yerde değil, aynı y değerine sahip olan satırda aranacaktır. Üstelik, bütün bir satır boyunca aramaya gerek yoktur. Nesnenin kameraya olan uzaklığı aşağı yukarı belli ise, satır boyunca ne kadar ileride ya da geride olabileceği de belli demektir. Bu yaklaşım, hem çok daha hızlı olacak, hem de çok daha etkin PC ve CPU kullanımı anlamına da gelecektir.

Pasif Stereo Vision

Pasif Stereovision tekniğinde, 2 adet kamera vardır fakat projektör yoktur. Nesnelerin üzerindeki şekillerden ve desenlerden faydalanılarak, her bir pixelin ne kadar kaydığı hesaplanmaya çalışılır.

Üzerinde resim olan kupanın sol ve sağ kameralar ile alınmış görüntüsü yukarıdaki gibi olsun. Bu durumda, mesela resimdeki hayvanın gözünün sol ve sağ kamerada kaç pixel kaydığı, kupanın kulpunun ne kadar kaydığı, ayakkabısının alt köşesinin ne kadar kaydığı gibi bilgilere ulaşabilirim. (Disparity değerleri bulunabilir) Özetle, desen ya da resim (texture) içeren yerler için disparity değerlerine erişilebilir. Fakat, hiç resim ya da desen içermeyen, mesela masanın üzeri, arka plandaki duvar gibi yerlerde, disparty değerlerini hesaplamak mümkün değildir. Bu durumda, derinlik bilgisine de erişilemeyecektir.

 

 

 

 

Aktif Stereo Vision

Pasif stereo vision, nesne üzerinde yeterli texture (desen, resim) yoksa derinlik bilgisine ulaşamıyordu. Bu durumda ana fikir; bir projektör kullanarak nesnenin üzerine bilinen patterne sahip infrared görüntü göndermek ve stereovision kameraları ile, bu infrared desenleri yakalamaktır. Yukarıdaki şekilde de görüldüğü gibi, kupanın silindir geometrisinden dolayı, iyi görülemeyen yerleri dışında (gölgeleme/shadowing) hemen her noktada derinlik bilgisine ulaşılabilmektedir. (Silindirik yüzeylerin aşağı yukarı 2/3 kadarı stereovision ile yakalanabilmektedir. Tamamını görmek için, 3 veya daha fazla stereovision kameraya ihtiyaç olabilir)