Tek gözümüzü kapatıp, bir anahtar deliğinden baktığımızı düşünelim: Delikten sadece bir insan görüyorsanız, bu insanın bir metre uzakta kısa boylu bir insan mı, dört metre uzakta uzun boylu bir insan mı olduğunu bilemezsiniz.
Hangisi olduğunu bilmek için, yanındaki başka cisimlerin büyüklüklerinden ve bazı varsayımlardan yararlanırsınız. Aynı büyüklükteki cisimlerin küçük görüneni uzaktadır; paralel çizgiler ufuk çizgisinde kesişir; bir odanın karşılıklı duvarları, tavanı ve tabanı birbirine paraleldir.
Ames Odası gibi illüzyonlar, bu varsayımları kullanarak derinlik algısını yanıltırlar.
Şekil 1(a)’daki odanın sol köşesindeki yetişkin, sağ köşesindeki çocuktan küçük durur. Bunun sebebi, Ames odasına tek gözümüzle, Şekil 1(b)’de G noktası ile gösterilen delikten bakmamızdır: Odanın karşılıklı duvarları ve tavanı ile tabanı, paralel değildir; yer karoları ve duvarda asılı olan resim, paralel algısı yaratmak üzere tasarlanmıştır. Odanın duvarlarını paralel zannettiğimizden, gerçekte Y noktasında ve daha uzakta duran yetişkini X noktasında duruyor gibi algılarız. Bu nedenle, yetişkin, çocuktan küçük durur.
Tabii ki insan gözünün, derinliği algılamak için başka bir mekanizması var: İkinci bir göz ve gözden gelen işaretlerin beynimizde işlenmesi sonucu elde ettiğimiz üç boyutlu (3B) dünya algısı. Kameralarda da üç boyutlu görüntü için de ikinci bir kameradan yararlanılabilir.
Fotoğraflarda 3B
Derinlik boyutunun algılanması, hem nesneleri üç boyutlu olarak algılayıp tanımak için, hem de bize olan uzaklıklarını kestirebilmek için gereklidir.
Bir fotoğraf çektiğimizde iki boyutlu bir görüntü elde ederiz. Işık kameraları, üç boyutlu dünyayı iki boyuta indirgeyerek bize bir düzlemdeki izdüşümünü sunar; görüntüde derinlik boyutu kaybedilmiştir. Fotoğraf makinaları, akıllı telefonlardaki ya da bilgisayarımızdaki kameralar, RGB kamera diye adlandırılan, renkli ışık kameralarıdır. Bu kameralarda renk bilgisi, RGB diye adlandırılan üç kanalla gösterilirler. Son on yılda yaygınlaşan derinlik kamerası ya da RGBD kameralarda ise, renk kanallarına ek olarak bir derinlik kanalı bulunur.
Şekil 2’de, bir dizi derinlik görüntüsü ve onlara karşılık gelen renkli imgeler görülüyor. Üst sırada görülen derinlik imgelerinde, renk ve yüzey dokularının kaybolduğu, ancak nesnelerin kameradan uzaklığını gösteren derinliğin gri seviye olarak gösterildiği görülüyor: Beyaz uzak, koyu gri yakın pikselleri gösteriyor. Derinlik bilgisi eksik olan pikseller siyah ile gösteriliyor.
Derinliği algılayan kameralarda nasıl teknikler kullanılıyor bakalım:
Stereo görme ve stereo kameralar
Üç boyutlu bir cismin iki tane düzlemsel izdüşümü, yani iki kameradaki düzlemsel piksel kayıtları elimizdeyse, nesnenin yatay ve dikey ya da x- ve y-koordinatlardaki konumuna ek olarak z-koordinatını, yani derinlik boyutunu da elde edebiliriz. Tek bir kameradan elde edilen imgede, nesnenin z-koordinatındaki konumu, kameranın merkezinden sahnedeki nesneye doğru çizilen bir ışın üzerinde herhangi bir yerde olabilir. Eğer elimizde aynı cismin iki farklı görüntü izdüşümü varsa, üç boyutlu konum, bu iki ışının kesişme noktasında olacaktır.
İki ışının kesişiminin bulunması işlemine üçgenleme denir ve iki kameradan oluşan stereo kameralarda, üç boyutlu konum üçgenleme ile elde edilir. Ancak üçgenleme yapabilmek için iki öncü adım gereklidir:
-
- Üç boyutlu nesne üzerindeki noktalara her iki imgede karşılık gelen piksellerin bulunması;
- Kamera merkezinden sahneye bir doğru çizilerek üç boyutlu uzaydaki ışının bulunması
Stereo kameraların geometrisi, genelde çok basittir:
İki imge düzlemi ve optik eksenler birbirine paralel ve sabit bir T uzaklığında bulunuyor. Kameralar birbiri ile aynı f odak uzaklığına sahip. İmge kameradan f uzaklığında oluşuyor. Üç boyutlu noktanın (P), sol kameranın oluşturduğu imgedeki izdüşümüyle sağ kameranın oluşturduğu imgedeki izdüşümü arasında d kadar mesafe olsun.
Bu geometrik özelliklerden yararlanarak derinlik (Z), benzer üçgenlerden kolayca hesaplanabilir:Üçgenleme için asıl zor olan adım 3-boyutlu noktanın, iki stereo imge çiftindeki yerinin eşleştirilmesidir. Eşleşme, köşeler veya yuvarlak işaretçilerin merkezleri gibi bulunması kolay özel noktalar dışında kolay değildir.
Boş bir duvarın ortasının fotoğraflarını çektiğimizi düşünelim: Bütün pikseller aynı renge sahipse ve imgelerde duvardan başka bir şey görünmüyorsa, derinlik algılamak imkansızdır; duvarın uzaklığını, paralel olarak mı yoksa belirli açıyla mı durduğunu, ve hatta düzlemsel mi yoksa parabolik bir duvar mı olduğunu bilemeyiz.
Dünyadaki arttırılmış gerçeklik veya çok bakışlı 3B televizyonlar gibi üçüncü boyutun görüntülerden kestirimini gerektiren birçok teknolojik uygulama için sahnedeki her noktanın eşlerinin iki resimde de tespit edilmesi gereklidir. Bu durum bilim insanlarını daha farklı çözümlere yöneltiyor. Bundan sonraki kısımda bu problemin farklı çözümlerini inceleyeceğiz.
Aktif ışıklı stereo
Bir çözüm, sahneye doğru yöneltilmiş aktif ışık kullanmak: Bir duvarın üstüne, bu ışık ile bilinen bir örüntü yansıttığımızı düşünelim. Bu örüntüdeki noktaları kullanarak, stereo imge çiftinde aynı noktayı bulabiliriz. Bu yönteme aktif ışıklı stereo ya da sadece aktif stereo denir. Diyelim ki aktif örüntü, değişik renklerde çizgilerden oluşuyor. Değişik imgelerde renkler arasında geçiş noktasını bulmak önceden konuştuğumuz genel probleme göre kolay bir işlemdir; aynı noktadan üçgenleme ile derinlik bulunur.
Aktif ışıklandırmanın bir sakıncası, kaydedilen renkli görüntüyü bozmasıdır. Bu nedenle, aktif ışık örüntüsü, saniyenin onda biri gibi kısa bir süre yansıtılıp üçgenleme ile derinlik bulunur; sonra renkli görüntü alınır.
2000’li yılların başında aktif ışıklı derinlik kameraları yaygınlaştı; biz de araştırmalarımızda böyle bir kameradan yararlandık [2]. Örneğin, üç boyutlu yüz tanıma ve ifade modelleme için, Bosphorus adlı (http://bosphorus.ee.boun.edu.tr/), 105 denekten alınan 6.000’in üstünde değişik yüz ifadesini içeren bir veri kümesi oluşturduk (Şekil 5).
Bosphorus 3B veri kümesini oluştururken bizim deneklerimiz hareketsizdi: Eğer cisim hareketsizse, derinlik imgesi ile renkli imgeler arasındaki zaman farkı, ihmal edilebilir. Eğer cisim hareketliyse, zaman farkı hataya yol açar.
Hareketli cisimlerde ortaya çıkan zaman farkı problemine yaratıcı bir çözüm, görünmez ışık kullanmaktır. İki farklı kameramız olduğunu düşünelim: Renkli RGB imgesini algılayan kamera ve farklı bir frekans bandında, örneğin, kızılötesi ışığı algılayan bir stereo kamera çifti. Kızılötesi aktif ışık örüntüsü, RGB kamera tarafından görülmez, ancak kızılötesi kameralar tarafından algılanıp derinlik hesaplanır. Böylece hareketli cisimler de aktif stereo ile hatasız algılanabilir.
2010 yılında oyunlarda kullanılmak üzere üretilen Kinect [3] kamerası bu prensiple çalışır. Kızılötesi ışığın bir diğer avantajı, insan vücudunun iyi bir kızılötesi yansıtıcı olmasının, insanları geri plandan ayrıştırmasına imkan vermesidir.
Yapısal Işıkla Derinlik Bilgisi
Stereo ile birlikte aktif ışık kullanımına ek olarak, yapısal ışık (structured light) diye adlandırılan yöntemler de literatürde mevcut. Bu yöntemler, tek bir kamera kullanır. Yapısal ışık için en yalın örnek, Şekil 6’da göründüğü gibi ince bantlar halinde bir aydınlatma. Bu bantlar, üzerine düştüğü nesnenin yüzey yükseklik ve derinliğine orantılı biçimde kıvrımlanır. Bu şekilde görüntülenen nesne üzerindeki kıvrım açıları analizi ile yüzey normalleri hesaplanabilir, yani derinlik bilgisi ile üç boyutlu görüntüleme elde edilir.
Bu kameralar, stereo prensibini kullanmazlar; bu nedenle tek bir kamera yeterli.
Işın uçuş süresi kameraları
Derinlik algılamak için tamamen farklı bir diğer çözüm, yansıyıp geri gelme zamanını (time of flight) kullanmak. Radar, ultrason gibi cihazlarda kullanılan bu prensip, derinlik kameralarında da kullanılabilir. Uçuş süresi derinliğe orantılıdır; nesne üzerindeki yakın noktalar daha kısa zamanda, nesne üzerindeki uzak noktalar ya da nesnenin arkasında yer alan başka nesneler daha geç yansır. Bu zaman bilgisi elektrik gerilimine ve sonra da ışık şiddetine orantılanarak derinlik fotoğrafı elde edilir.
Bazı kameralarda tüm bu yöntemler beraber kullanılıp, algıç (sensör) bilgileri kaynaşması kullanılır. Günümüzde kullanılan derinlik kameraları arasında tüm bu prensipleri kullanan kameralar var.
Laboratuvarlardan yaygın kullanıma
Son 10 yılda RGBD diye adlandırılan, renkli ve derinlik imgelerini birlikte sunan kameralar ucuzladı ve yaygınlaştı [5]. Bu kameralarda yukarıda değinilen yöntemlerden biri veya birkaçı birlikte kullanılıyor. Bu kameraların bir eksiği, derinlik imgesi eriminin düşük olması, yani ancak kısa mesafelerde derinlik algılayabilmesidir. Bu nedenle RGBD kameralar daha çok iç mekanlarda kullanılıyor. Stereo tabanlı kameraların diğer bir sakıncası, iki kameranın aynı anda gördüğü alanın dar olması. Geniş bir alanı görüntülemek için daha fazla sayıda kamera kullanmak ve elde edilen görüntüleri çakıştırmak gerekli.
Eksikliklerine karşın, RGBD kameralar, daha önce ancak bilimsel çalışmalarda kullanılan 3B görmeyi her kullanıcının ulaşabileceği uygulamalara indirmeyi başardı.
Derinliği algılamayı öğrenen yapay zekâ
Son yıllarda hızla gelişen derin öğrenme alanı, tek bir imgeden derinlik algılamada kullanılmaya başlandı [6].
Otonom araçlarda, lazer ışığın yansıyıp geri gelme prensibine göre çalışan LIDAR sensörlerinin kullanımı yaygındır; ancak lazer ışınları aralıklı olarak yollandığından derinlik her pikselde hesaplanamaz. Seyrek derinlik bilgisi veren LIDAR görüntülerine yardımcı olmak üzere her pikselde derinlik bilgisi sunan kameralara talep büyük.
Peki, bu mümkün mü? Tek bir imgeden derinlik algılanabilir mi?
Örneğin tek gözünüzü kapatsanız, derinlik algılayabilir, masa tenisi oynayabilir misiniz? Çoğumuz bunu yapabiliriz; çünkü beynimiz, çevremizin üç boyutlu modeller ile eğitilmiştir. Işığın yüzeylerin yönüne göre nasıl bir parlaklık oluşturduğundan, yüzey geometrisi kestirilebilir. Tek bir görüntüden derinlik algılamak üzere eğitilen derin öğrenme modelleri de çok sayıda derinlik imgesi ile eğitilerek yol görüntüleri gibi kısıtlı ortamlarda, derinlik algılamada başarı kazanıyor.
Başarılı bir kestirim örneğini Şekil 7’de görüyoruz. Sağdaki görüntü alınırken hiçbir üç boyutlu, derinlik bilgisini ölçen düzen kullanılmadığını, sadece iki boyutlu resim yakalayan bir kamera kullanıldığını vurgulayalım. Soldaki derinlik imgesine baktığımızda iki boyutlu resim içinde yatan üç boyut bilgisinin analitik hesaplamalarla kestirilebildiğini görüyoruz. Öte yandan, insan görüşü gibi bu modellerin de belli varsayımlarla, hep aynı tip görüntülerle eğitildiği ve olağanın dışında görüntüler karşısında aldatılmaya açık olduğu unutulmamalı.
Lale Akarun
Boğaziçi Üniversitesi Bilgisayar Mühendisliği Bölümü
Bu eser Creative Commons Atıf-GayriTicari 4.0 Uluslararası Lisansı ile lisanslanmıştır. İçerik kullanım koşulları için tıklayınız.
Kaynaklar
[1] Chalearn Multimodal Gesture Recognition http://sunai.uoc.edu/chalearn/
[2] Arman Savran, Nese Alyuz, Hamdi Dibeklioğlu, Oya Celiktutan, Berk Gokberk, Bulent Sankur, Lale Akarun: “Bosphorus Database for 3D Face Analysis”, The First COST 2101 Workshop on Biometrics and Identity Management (BIOID 2008), Roskilde, Denmark, 7-9 May 2008
[3] Kinect https://en.wikipedia.org/wiki/Kinect
[4] Gabriel Taubin, Summaries of Some Past Research Projects, http://mesh.brown.edu/taubin/projects.html
[5] Consumer Depth Cameras for Computer Vision: Research Topics and Applications, eds. Andrea Fossati, Juergen Gall, Helmut Grabner, Xiaofeng Ren, Kurt Konolige Springer, 2013.[6] Chaoqiang Zhao et al., “Monocular Depth Estimation Based On Deep Learning: An Overview”, July 2020, arXiv:2003.06620
[7] Xiaoran Jiang, Jinglei Shi, Christine Guillemot, A learning based depth estimation framework for 4D densely and sparsely sampled light fields, ICASSP 2019.