Shape Estimation in Natural Illumination
Shape Estimation in Natural Illumination
摘要
傳統的單一光源和Lambertian反射的shape from shading 算法有一個明顯的弊端,約束不足以指明局部方向,也就是需要自己增加額外的約束;而 Photometric stereo 算法作為sfs的變體,通過控制光源來增加額外的約束從而簡化問題。
在本文中,我們證明許多自然光環境已經具有足夠的可變性來約束局部形狀。我們描述了一種新的優化方案,利用這種可變性從自然光照下漫反射物體的單個圖像估計表面法線。我們在合成圖像和真實圖像上進行了實驗。
引言
Shape from Shading和光度立體最明顯的區別是:前者是單一光源,后者是多個光源。
Sfs在簡單圖像上表現良好,在復雜輸入上表現不佳,原因就是歧義性的存在:不同的表面方向會生成相同的圖像亮度。
Woodham發現通過改變連續圖像之間的光源方向可以消除歧義,這種方法叫做光度立體。
實際上,自然光的顏色變化也可以看作是一種光度立體,我們應用這種技術來優化單一圖像的表面法向估計。
我們的技術假設一個已知的反射圖,這意味著在實踐中,我們必須根據一個具有相同BRDF和相同照明度的球體來校準感興趣的物體。在sfs算法中,光源假設是單一的并且來自一個已知的方向;在PS算法中,光源是設計好的并且受到控制的;而我們的方法使用的是自然光,其復雜且不可控。
2.相關工作
通常,sfs算法存在不唯一解,同一個圖片可能會對應多個不同的表面。
我們的shape from shading 利用光源變化來減少歧義,從某種程度上看,也是一種光度立體的方法,唯一的不同是我們的方法使用的是自然光,而PS算法使用的是受控制的光。
我們使用簡單的數學框架,展示了我們的方法可以從不可控的,標定的光源環境中的單一圖片恢復物體的形狀。
3.方法
將圖像亮度和表面方向的關系表示成下面的亮度方程:
其中,有如下假設:遠距離光源、空間不變反射、常量反射率、沒有局部光照(例如投射陰影和內部反射)的影響和固定的觀察點
非正式地,Lambertian反射函數在照明環境中充當低通濾波器,因此只有低頻照明組件才有助于外觀。
在這些假設下,對于Lambertian的陰影函數s可以表示為表面法向的二次函數:
注意,二次項和模型附加陰影有關,利用這個模型進行渲染的物體如圖2(a)所示:
3.1 局部歧義
只考慮局部信息,問題可以標為下面誤差函數的最小化問題:
一般的,光度立體的方法要考慮L個而不是一個光源的情況;數學上,陰影函數s可以表示為向量值函數:
在自然光環境下,(4)式中L的值為3,因為有三個顏色通道,自然光環境的變化為形狀估計提供了額外的約束條件。
3.2 非線性優化
假設在第n次迭代,最小化Eqn.3的表面法向量為ni。利用高斯-牛頓法計算的更新向量h滿足下面的式子:
滿足上式的h可以用于更新:
然而使用標準的高斯-牛頓迭代優化Eqn.3存在兩個問題:
當曲面法線n在R3中表示時,它們實際上是約束到球體曲面的單位向量
更新向量h可以將當前估計移離球體的表面,并且在下一次迭代之前需要校正該偏差。因此增加了迭代的次數。
我們通過在初始曲面法向估計n0周圍定義一個局部框架來解決這個問題??蚣苡勺鴺藆和v參數化,這樣n0附近的曲面法線由以下函數定義:
在局部框架內,Eqn.2中的陰影函數可以表示為坐標u和v的方程。關于u和v的Jacobian式可以通過鏈式法則求得:
請注意,特定坐標系僅定義為關于原始曲面法向估計值0的半球。
當u2+v2>=1時,Jacobian未定義。因此,當u2+v2>=1/2時,因此,我們根據當前曲面法向估計重置框架一次。
另外,當不同顏色通道的光變化減少時,Jacobian會呈現病態性,這樣會導致牛頓-高斯迭代過程變滿甚至不收斂。為了解決此問題,我們使用一種牛頓-高斯的變體,該方案對Jacobian矩陣J的狀況沒有那么敏感。
3.3 局部優化
原因:存在噪聲和局部歧義。
局部增強階段是對前一節中描述的迭代技術的修改;我們沒有優化單一的表面法向,而時優化連續的表面法向n1到nk,優化后的誤差函數為:
其中c1、c2是表面法向的兩個不同的約束:可積性約束和平滑約束。
可積性約束:
我們通過對斑塊內旋度的懲罰來增強可積性;在局部坐標系中,在面片坐標(i,j)處,旋度可近似為cy-cx:
平滑約束:
平滑約束來自于一般的視點原則[8]:當在圖像中的某個區域沒有觀察到變化時,我們假設下墊面沒有變化。換言之,我們認為表面和照明不太可能以相反的方式改變,以至于強度變化不可見。
假設該方法將θ作為該面片的著色的局部方向。我們通過應用高斯濾波器的二階導數G2θ來限制表面變化,該二階導數的方向為θ。
高斯濾波器的二階導數對沿θ方向的變化比沿正交方向的變化響應更強烈。我們使用這個屬性作為補丁的約束
局部優化階段一般運行比較少的迭代次數,通常5到10次對于每一個patch。
在下一節中,我們將描述如何將每個面片的局部估計傳播到相鄰的面片,然后跨尺度傳播。
3.4 多尺度傳播
傳播階段使用相鄰patch的表面法向估計值初始化當前patch的估計值。
我們借鑒了一下基于patch的圖像處理過程,并將他們運用到連續優化框架中。
我們利用輸入圖像構建了一個金字塔,并且從最小的分辨率開始迭代,(從左上角的像素一直到右下角)。對于每一個像素,我們考慮表面法向周圍的patch,然后在patch上執行局部refinement,如3.3中所示。
接下來,我們認為patch以左邊的一個像素作為中心,然后用它作為當前位置refinement的初始狀態。我們重復第三次,從當前位置上方一個像素的patch開始。在這個點,我們有三個優化的patch來解釋圖像數據。為了選擇最好的patch,我們考慮一個patch周圍稱為“局部上下文”的區域。
局部上下文P是包圍當前patch的更大區域。我們定義了上下文錯誤為:
離散表面的法線通常具有較小但非零的旋度,對這些值施加懲罰可以阻止法線獲得正確的形狀。與之相對地,我們將旋度約束放在一個光滑的step函數(sigmoid)中,它只懲罰較大的值。因此,上下文誤差的可積性約束項E1可以表示為:
平滑約束使用Gaussian濾波的二階導數,其大小可以覆蓋本地上下文。由于上下文誤差不需要可微,我們選擇L1范式保證對于大的尺度更加魯棒:
其中,nk是表面法向的單個分量。
選擇可以使Eqn.13最小化的patch作為局部的估計值,然后在處理下一個patch。
在奇次迭代中,我們向后遍歷圖像。
在固定迭代次數的最后,我們將當前的估計值進行上采樣,然后處理下一個尺度,接著執行算法,直到達到最優解。由于我們是在圖像金字塔內進行處理,因此我們也可以利用多重網格技術來加快收斂速度:我們發現w循環,即從各個尺度開始的粗到細的過程,特別有效。
我們迭代的初始條件是單位長度向量的隨機數組,z分量固定為正的。
對于兩個約束E1和E2,這個初始條件的值非常大,如果參數ω1和ω2太大,優化會很快陷入局部極小值。但在高圖像噪聲的情況下,我們希望參數較大,以防止不必要的表面變化。我們發現,每次迭代將ω1和ω2從0增加到它們的指定值可以有效地解決這兩個問題。
3.5 局部方向
我們用結構張量測量強度變化的局部方向。結構張量可以由三分量圖像計算得到:
最佳尺度處的圖像的梯度對噪聲比較敏感,因此很難估計局部方向,特別是平坦的區域
為了提高估計精度,我們將分量圖像進行混合,Eqn。16,經過上采樣組件和之前的尺度進行混合:
通過這個過程,最后一個比例尺從所有以前的比例尺中獲得匯總估計。
4.結果
同時在合成圖像和真實圖像上進行了實驗,算法的參數在所有實驗中都保持不變。
我們使用33的patch在一個55的上下文環境中,3級金字塔,每層5次迭代,local re?nement weights λ1 = 1.0 and λ2 = 0.01, context error
weights ω1
= 1.0 and ω2
= 0.1.。
我們的優化算法假設照明環境的模型是已知的。對于真實圖像和合成圖像,我們使用一個漫反射校準球體來確定模型。因為陰影函數Eqn。2在光照環境系數為線性的情況下,我們使用最小二乘法,用已知的球面法向來求解系數,
4.1合成圖像
為了幫助我們開發和測試我們的算法,我們發現使用一組合成圖像很有用。我們的測試集由100個圖像組成,這些圖像是通過使用基于物理的渲染器pbrt在10個不同的照明環境中渲染10個形狀而生成的。這10個形狀顯示在圖3的頂行。我們的復雜程度形狀各不相同,包括大的光滑區域、凹面區域、自閉塞、大的深度不連續、折痕和突起
在圖3的底部通過渲染每個照明環境中的一個形狀來表示10個照明環境。我們使用了以下照明環境:Grace Cathedral,
Eucalyptus Grove, Uf?zi Gallery, Galileo’s Tomb, Ennis-Brown Dining
Room, Pisa Courtyard, Doge’s Palace, Inside Tunnel Machine,At the
Window, and Distant Evening Su。
為確保渲染模型完全符合我們的假設(即無投射陰影或內部反射),我們繪制了校準球體,并將照明環境模型繪制到球體上。在進行優化之前,我們加了標準差為0.001的高斯噪聲來避免精確數值解的存在;合成圖像(256像素)的噪聲量相當于實際圖像在下采樣前的2%。
對于每一百張渲染的圖像,我們有圖像mask以及表面法向的ground-truth(旋轉到相機坐標系)。圖像遮罩用于識別背景像素,這些背景像素在優化或評估中不予考慮。為了評估性能,我們計算了ground-truth的法向和估計表面法向之間的角度誤差。在所有100個圖像的所有曲面法線中,90%的角度誤差小于10度。
為了和之前的工作進行比較,我們在兩個標準曲面上測試了我們的算法:莫扎特半身像和解析“花瓶”:我們在所有10個照明環境中以256×256像素的圖像大小渲染這些曲面。在所有的10個莫扎特圖像中,86%的表面法向角度誤差小于10度;對于花瓶圖片,94%的法向與ground-truth之差小于10度。
我們還通過積分曲面法線來重建深度。我們使用L1泊松方法,通過迭代加權最小二乘法來最小化噪聲估計的影響。由于我們使用Neumann邊界約束(即,我們沒有指定任何已知的深度值),重建的曲面將具有整體深度歧義性。我們通過計算一個補償量δ來解決歧義性,該補償量δ使深度估計值與ground-truth最佳對齊:
在圖4 和圖5中,我們展示了兩種不同光源環境(遙遠的夕陽和隧道內的機器。)的重建結果。對于花瓶圖像,上下結果的均方根誤差分別為0.55和0.62像素。對于莫扎特圖像,上下結果的均方根誤差分別為2.7和1.1像素。
4.4 真實圖像
我們采集了一些自然光下的真實圖像。由于我們的算法不考慮反射變化,所以物體和校準目標被涂上了漫反射涂料,我們使用了1800萬像素佳能EOS 550D相機,配備了100毫米鏡頭。相機安裝在三腳架上,設置為在原始模式下拍攝,場景的照明沒有以任何方式進行修改(即,沒有額外的燈光)。使用Adobe Photoshop將原始圖像轉換為16位格式。對于每個圖像,我們還通過跟蹤圖像中對象的邊界來創建二值圖像mask。
在圖7中,我們展示了對同一場景中三個對象的優化結果。這些物體是在一個辦公室里用來自窗戶的自然光和頭頂的熒光燈拍攝的。真實圖像的插入圖顯示校準目標,而法線貼圖中的插入圖顯示球體上的曲面法線的可視化。在圖6中,我們展示了圖7中每個物體的表面法向y分量的特寫視圖。我們的優化實現了從單個圖像的高細節水平。
圖8顯示了校準目標和青蛙的圖像。這些物體是在一個走廊里拍攝的,走廊上方有凹進的燈光,墻上有油漆。我們建立了一個光環境模型,并用該模型對標定目標進行了算法估計。我們使用L1泊松解算器對法線進行積分以獲得深度估計。為了提高可視化效果,我們將深度值剪裁到第1百分位以下和第99百分位以上。我們從兩個不同的角度渲染估計的曲面。
我們發現我們的優化算法表現良好,當照明環境足夠豐富以約束解空間時,但如果照明類似于單個光源,則在適度的圖像噪聲下可能會失敗。在這種光照條件下,誤差函數Eqn.6的雅可比將是秩虧的。優化仍然會產生一個曲面,但它通常是沿著等值線方向flat的。
5.結論
當光照由單個光方向組成時,形狀估計是困難的。這種困難源于強度值和可能產生該值的表面方向范圍之間的局部模糊性。但在自然光照下,這種模糊性往往會減少。基于這一觀察,我們描述了一種算法,該算法可以在不受控制但已知照明的情況下,從單個圖像中估計具有常數albedo的漫反射對象的表面法線。
總結
以上是生活随笔為你收集整理的Shape Estimation in Natural Illumination的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android stk流程,Androi
- 下一篇: 为公司创建部门VLAN-华为ensp