Kalibrasyon Tabanlı Fotometrik Stereo, Normalden Şekil Çıkarma ve İç Yansımalar
- 1. Kalibrasyon Tabanlı Fotometrik Stereo (Calibration-Based Photometric Stereo)
- 2. Normallerden Şekil Çıkarma (Shape from Surface Normals)
- 3. Karşılıklı Yansımalar (Interreflections)
1. Kalibrasyon Tabanlı Fotometrik Stereo (Calibration-Based Photometric Stereo)
Gerçek dünyadaki birçok malzeme (parlak plastikler, vernikli ahşaplar, metaller) kusursuz Lambertian matlığa sahip değildir; üzerlerinde karmaşık difüz ve aynasal (specular) yansımalar barındırırlar. Bu tür malzemelerin yansıtma haritalarını analitik formüllerle matematiksel olarak yazmak imkansızdır.
Bu kısıtlamayı aşmak için veriye dayalı (data-driven) bir yöntem olan Kalibrasyon Tabanlı Fotometrik Stereo (Calibration-Based Photometric Stereo) uygulanır.
1.1 Yönelim Tutarlılığı İlkesi (Orientation Consistency)
Kalibrasyon tabanlı yaklaşımın temeli şu ilkeye dayanır: Eğer iki farklı nesne aynı malzemeden üretilmişse ve uzayda aynı aydınlatma koşulları altında aynı yüzey yönelimine (normal açısına) sahiplerse, kamerada tamamen aynı piksel parlaklık kombinasyonlarını üretmek zorundadırlar.
flowchart TD
subgraph Calib["1. Kalibrasyon Aşaması"]
Sphere["Kalibrasyon Küresi (Bilinen Geometri)"] --> CaptureSphere["K Adet Işık Altında Görüntü Kaydı"]
CaptureSphere --> Boundary["Dış Sınır (r) & Analitik Normaller (p,q)"]
Boundary --> LUT["Lookup Table (LUT) İnşası<br/>[I1, I2, ..., IK] ➔ (p, q)"]
end
subgraph Target["2. Hedef Nesne Aşaması"]
Object["Hedef Nesne (Aynı Malzeme)"] --> CaptureObj["Aynı K Işık Altında Görüntü Kaydı"]
CaptureObj --> ReadPixel["Piksel Yoğunluk Vektörü [I1, ..., IK]"]
ReadPixel --> QueryLUT["LUT Sorgulaması"]
LUT --> QueryLUT
QueryLUT --> Normals["Hatasız Yüzey Normalleri Haritası (p, q)"]
end
style Sphere fill:#1a1a2e,stroke:#4cc9f0,color:#fff
style LUT fill:#16213e,stroke:#ffd369,color:#fff
style Object fill:#0f3460,stroke:#e94560,color:#fff
style Normals fill:#1a1a2e,stroke:#4cc9f0,color:#fff
1.2 Uygulama Adımları
- Kalibrasyon Nesnesi: Hedef nesneyle birebir aynı malzemeyle kaplanmış, geometrisi kusursuz olarak bilinen bir kalibrasyon küresi (calibration sphere) hazırlanır.
- Küre Görüntülerinin Kaydı: Küre, hedef nesneyi aydınlatacak aynı $K$ adet ışık kaynağıyla sırayla aydınlatılarak $K$ adet görüntüsü kaydedilir.
- Analitik Normal Haritası: Kürenin dairesel dış sınırları (occluding boundary) saptanarak, küre üzerindeki her bir pikselin kesin yüzey normali doğrultusu ($p, q$) analitik geometri üzerinden hesaplanır.
- Lookup Table (LUT) İnşası: Küre üzerindeki piksellerden ölçülen $K$-lı parlaklık kombinasyonu $[I_1, I_2, \dots, I_K]$ indeks (anahtar) olarak; o piksellerdeki bilinen normal $[p, q]$ ise tablonun değeri olarak kaydedilir.
- Hedef Nesne Saptaması: Hedef nesne aynı $K$ ışıkla aydınlatılıp görüntüleri çekilir. Nesne üzerindeki herhangi bir pikselden okunan parlaklık kombinasyonu doğrudan bu LUT tablosunda aratılarak karşılık gelen $[p, q]$ normali anında atanır.
Bu sayede hiçbir yansıtma fiziği denklemine ihtiyaç duyulmadan, her türlü karmaşık ve pürüzlü endüstriyel malzemenin yüzey normal haritası sıfır hatayla elde edilir.
Key Insight: Kalibrasyon tabanlı yöntem, yansıma matematiğini analitik olarak modellemek yerine fiziksel bir kalibrasyon küresi üzerinden deneysel olarak haritalandırır. Bu durum, BRDF modeli bilinmeyen parlak ve karmaşık yüzeylerde mükemmel sonuç verir.
2. Normallerden Şekil Çıkarma (Shape from Surface Normals)
Fotometrik stereo uygulandıktan sonra her piksel için yüzey yönelim eğimleri ($p, q$) elde edilmiş olur. Nihai amacımız bu kısmi türev bileşenlerini entegre ederek nesnenin asıl derinlik haritasını ($z(x,y)$) oluşturmaktır.
2.1 Naif Yol İntegrasyonu (Path Integration) ve Gürültü Çöküşü
Teorik olarak, sol-üst köşeye $z(x_0, y_0) = 0$ referansı atanıp, komşu hücreler arasındaki gradyan farkları ($p$ ve $q$) boyunca entegrasyon yapılarak her noktanın derinliği hesaplanabilir:
$$z(x, y) = z(x_0, y_0) + \int_{x_0}^{x} -p , dx + \int_{y_0}^{y} -q , dy$$
Ancak gerçek ölçümlerde yoğun gürültüler mevcuttur. Gürültülü bir gradyan haritasında, seçilen entegrasyon yoluna göre (örneğin önce sağa sonra aşağı gitmek ile önce aşağı sonra sağa gitmek arasında) piksellerde tamamen farklı derinlik değerleri birikir.
Hatalar dalga dalga yayılarak yüzeyde süreksizliklere ve yırtılmalara yol açar, yüzeyi tamamen tanınmaz hale getirir.
2.2 Frankot-Chellappa Entegrasyon Algoritması (Fourier Domain Least Squares)
Gürültü birikimini önlemek amacıyla, hesaplanacak derinlik haritasının kısmi türevleri ile fotometrik stereodan ölçülen $p$ ve $q$ değerleri arasındaki karesel farkı tüm görüntü boyunca minimize eden bir En Küçük Kareler (Least Squares) hata fonksiyonu kurulur:
$$D = \iint \left[ \left( \frac{\partial z}{\partial x} + p \right)^2 + \left( \frac{\partial z}{\partial y} + q \right)^2 \right] dx , dy$$
Bu optimizasyon problemi, Frankot-Chellappa (1988) tarafından frekans (Fourier) düzlemine taşınarak tek bir matematiksel adımda çözülmüştür.
Derinlik görüntüsü $z(x,y)$’nin 2D Fourier dönüşümü $Z(u,v)$, ölçülen gradyanların Fourier dönüşümleri sırasıyla $P(u,v)$ ve $Q(u,v)$ olmak üzere, Fourier türev alma özelliği ($\mathcal{F}{\frac{\partial z}{\partial x}} = i u Z(u,v)$) kullanılarak hata sıfıra eşitlendiğinde en uygun derinlik spektrumu elde edilir:
$$Z(u, v) = \frac{-i u P(u, v) - i v Q(u, v)}{u^2 + v^2}$$
flowchart TD
GradMap["Ölçülen Gradyanlar p(x,y) ve q(x,y)"] --> FFT["2D Hızlı Fourier Dönüşümü (FFT)"]
FFT --> Spectra["Frekans Spektrumları P(u,v) ve Q(u,v)"]
Spectra --> FrankotFormula["Frankot-Chellappa Denklemi:<br/>Z(u,v) = (-i u P - i v Q) / (u² + v²)"]
FrankotFormula --> DeepSpectrum["Optimal Derinlik Spektrumu Z(u,v)"]
DeepSpectrum --> IFFT["Ters 2D Hızlı Fourier Dönüşümü (IFFT)"]
IFFT --> GlobalDepth["Pürüzsüz 3D Derinlik Haritası z(x,y)"]
style FFT fill:#1a1a2e,stroke:#4cc9f0,color:#fff
style FrankotFormula fill:#16213e,stroke:#ffd369,color:#fff
style IFFT fill:#0f3460,stroke:#e94560,color:#fff
style GlobalDepth fill:#1a1a2e,stroke:#4cc9f0,color:#fff
Hesaplanan bu spektrumun Ters Hızlı Fourier Dönüşümü (IFFT) hesaplandığında, gürültülerden arındırılmış, global olarak en tutarlı ve pürüzsüz 3D derinlik haritası ($z(x,y)$) saniyeler içinde rekonstrükt edilmiş olur.
Key Insight: Frankot-Chellappa algoritması lokal yol integrasyonu yapmak yerine tüm görüntüyü Fourier frekans etki alanında global olarak optimize eder. Bu sayede lokal gradyan gürültüleri yüzeyi bozamaz.
3. Karşılıklı Yansımalar (Interreflections)
Fotometrik stereonun en büyük basitleştirici kabullerinden biri, sahnedeki bir noktanın sadece doğrudan ışık kaynağından gelen ışınlarla aydınlandığı varsayımıdır. Ancak nesne içbükey (concave) bir geometriye sahipse (örneğin kase, fincan veya derin bir oluk), bu varsayım geçerliliğini yitirir.
3.1 Karşılıklı Yansıma Probleminin Bozucu Etkileri
- Çoklu Yansımalar (Multiple Bounces): İçbükey bir yüzeyin üzerindeki bir nokta, doğrudan kaynaktan gelen ışığın yanı sıra, etrafındaki komşu yüzey piksellerinin yansıttığı ikincil ve üçüncül ışınlarla da aydınlanır.
- Albedo Aşırı Tahmini (Overestimation of Albedo): Noktalar ikincil ışıklar nedeniyle normalden çok daha parlak göründüğü için, fotometrik stereo sonucunda hesaplanan albedo ($\rho$) değerleri gerçekte olduğundan çok daha yüksek çıkar.
- Yüzeyin Sığlaşması (Underestimation of Surface Tilt): Yüzey normallerinin eğim açıları ikincil aydınlatmalar yüzünden daha dik saptanır; bu durum derinlik entegrasyonuna girdiğinde içbükey nesnelerin gerçekte olduğundan çok daha sığ (shallower) hesaplanmasına yol açar.
3.2 Nayar-Ikeuchi-Kanade (1991) İteratif Algoritması
Karşılıklı yansımaların bozucu etkilerini gidermek amacıyla Nayar, Ikeuchi ve Kanade (1991) tarafından önerilen iteratif yöntem uygulanır:
flowchart TD
Step1["1. Standart Fotometrik Stereo & Frankot-Chellappa<br/>(İlk Hatalı & Sığ 3D Geometri ve Hatalı Albedo)"] --> Step2["2. Radyosite Simülasyonu<br/>(Mevcut 3D geometriden komşu piksellerin ikincil ışık katkısı simüle edilir)"]
Step2 --> Step3["3. Görüntü Temizleme<br/>(Simüle edilen ikincil yansımalar orijinal görüntülerden çıkarılır)"]
Step3 --> Step4["4. Fotometrik Stereo & Entegrasyon Yeniden Çalıştırılır<br/>(Daha derin ve doğru yeni 3D geometri elde edilir)"]
Step4 --> Check{"Derinlik Değişimi Kararlı mı? (Convergence)"}
Check -- "Hayır" --> Step2
Check -- "Evet" --> Final["Nihai Doğru 3D Kase Geometrisi ve Gerçek Albedo"]
style Step1 fill:#393e46,stroke:#e94560,color:#fff
style Step2 fill:#0f3460,stroke:#ffd369,color:#fff
style Step4 fill:#16213e,stroke:#4cc9f0,color:#fff
style Final fill:#1a1a2e,stroke:#4cc9f0,color:#fff
İteratif Çalışma Adımları:
- İlk Kaba Tahmin: Karşılıklı yansımalar tamamen ihmal edilerek standart fotometrik stereo ile ilk “hatalı ve sığ” derinlik profili ve hatalı albedo haritası hesaplanır.
- Yansıma Simülasyonu: Hesaplanan bu ilk kaba 3D geometri kullanılarak, her noktanın birbirine yansıtabileceği ikincil difüz ışık miktarları (radyosite denklemleriyle) sayısal olarak simüle edilir.
- Görüntü Temizleme: Simüle edilen bu ikincil yansıma katkıları, orijinal kamera görüntülerindeki piksel yoğunluklarından çıkarılarak görüntüler temizlenir (interreflection-compensated images).
- Yeniden Rekonstrüksiyon: Temizlenen bu görüntülerle fotometrik stereo ve Frankot-Chellappa entegrasyonu yeniden çalıştırılarak daha derin ve doğru bir 3D yüzey elde edilir.
- Döngü ve Yakınsama: Bu süreç (geometriyi güncelleme, yansımayı düşürme, yeniden çözme) yüzey derinlik değişimi kararlı hale gelene kadar iteratif olarak tekrarlanır.
Key Insight: İçbükey yapılarda ikincil yansımalar yüzeyi sığ gösterir. Nayar-Ikeuchi-Kanade algoritması, sayısal simülasyonla ikincil ışık bileşenlerini görüntülerden adım adım çıkartarak gerçek derin geometrik profile tam olarak yakınsar.