趙守凱
(湛江幼兒師范專科學校,廣東 湛江 524084)
從三維場景拍攝二維圖像的過程中,一些有用的信息因為從三維空間向二維空間的投影而丟失,所以無法通過測量的方式來確定位置信息。但是圖像中仍然包含隱含形式的三維信息,這些信息包含在明暗和紋理等信息中。如圖1所示,人眼將圖1中物體解讀為地面,是因為地面表面紋理形狀變化信息轉換成對應的二維圖像上的明暗信息;人的視覺過程將圖1中物體解讀為地面,是因為在投影成像的過程中,關于地面形狀變化的信息保留在了對應二維圖像的紋理變化中。根據二維圖像中隱含的三維信息可以對物體的形狀進行重建,比如利用圖1中的明暗信息可以得到圖2地面表面的高度信息,進而重建出地面的三維形狀,或者利用圖1中紋理形變的規律得到地面的表面朝向信息也可恢復出地面的三維形狀。

圖1 有紋理的地面圖像

圖2 地面高度圖
在計算機視覺中,根據二維圖像中的像素值對物體進行三維形貌重建的技術可稱為Shape From“X”,其中的“X”可代表立體光(Stereo)、明暗(Shading)、輪廓(Contour)、紋理(Texture)、運動(Motion)等信息。其中根據光度立體恢復形狀(Shape From Stereo)技術、根據輪廓恢復形狀(Shape From Contour)技術,以及根據運動信息恢復形狀(Shape From Motion)技術都需要利用至少兩幅圖像的信息對形狀進行重建,并且對圖像采集的要求較高,對于體積較大不易移動的物體不適用,而根據明暗信息恢復形狀技術僅通過單幅圖像中的明暗線索即可重建物體的三維形狀。
早期的藝術家在繪畫藝術中已經開始探索明暗程度對物體形狀的表現力,例如在素描繪畫中,物體的形狀幾乎完全依靠明暗關系表現。一般通過明暗關系即可確定物體的形狀,例如圖1中,根據地面的明暗信息,人們可以將其解讀為地面。因此要解決SFS問題首先要理解圖像是如何形成的。在朗伯反射模型的假設下,圖像的亮度值完全取決于光源的方向和實際物體上該點的表面朝向的夾角。理論上,如果給定一個明暗圖像,根據朗伯反射模型的假設和已知的光源方向等參數就能通過SFS算法得到物體表面各點的朝向。但是,物體表面各點的朝向至少有兩個未知量(用來表示法矢量的空間方向),而圖像上某點的亮度信息只能提供一個已知量,由此建立的方程是病態的,沒有唯一解。另外,實際圖像并不能總是滿足朗伯反射模型,拍攝的圖像會有高光、陰影和空中反射光的交叉反射的影響,也會在很大程度上影響表面朝向的計算,因此如何確定算法和具體的限制條件是研究重點。
20世紀70年代,Horn在美國麻省理工學院攻讀博士期間發表論文,他首先提出了根據明暗信息恢復形狀問題。他指出,如果光源方向和反射率已知,可以根據圖像的明暗信息得到一階偏微分方程并計算表面方向,進而恢復物體的表面朝向。Horn的這種方法簡單且易實現,不需要復雜昂貴的光源,甚至一個手電筒就能滿足對光源的需求,從而引發了人們對于SFS問題的研究熱潮,提出了很多經典的SFS。基于光學圖像的三維重建的線性化方法在行業中得到越來越廣泛的應用。
線性化方法(Linear Approaches)的主要求解思路是,在非線性反射函數中,低階項占主要部分,因此對反射函數做Taylor展開后,只保留了線性項。Pentland采用傅里葉變換方法,在頻率域中找出表面梯度和表面高度的傅里葉表示之間的線性關系,由此可通過傅里葉反變換求出表面高度,這種方法的優點是不需要光滑性約束,適用于復雜的自然系地表的三維形狀重建。Tsai和Shah的方法采用表面梯度的離散近似,對反射圖做線性優化,圖像中每一點的亮度值由鄰域內像素點的線性函數表示出來,通過Jacobi迭代法求解整個線性系統,最終完成三維形狀重建。如果物體表面所對應的反射函數的高階分量很小,那么利用線性化方法可以得到與物體表面解析值非常接近的結果。
由于線性化方法是將非線性問題轉化為線性問題,也即通過將反射圖線性化,求解反射圖中的低階項。Pentland使用傅里葉變換給出了一個非迭代、封閉的解決方案。對反射圖的線性逼近上,缺點是當非線性項很大時重建形狀很難解。當反射圖中平方項起主要作用時,頻率災難(frequency doubling)就發生了。這將導致重建的形狀不連續。Tsai和Shah用有限差分方法離散逼近p和q,之后用Z(x,y)線性化反射圖,為方便描述,圖像的輻照度方程可寫為:

對于固定點(x,y)和給定的圖像強度E,將方程f進行Tayler展開,其中包含一個非常大的逆矩陣,但是可以用Jacobi迭代法簡化求解過程,在Jacobi迭代法中,如果給定初始值Z,最終的深度值可通過持續的迭代過程求得,比如第n次迭代的深度值Z,可通過前面的第n-1次的估計值Z-(x,y)得到。另外,如果將鄰域值Z1(x-1,y)和Z1(x,y-1)用Z(x-1,y)和Z(x,y-1)代替,可簡化為:

對于函數f(Z(x,y)),用高斯牛頓法可算出一個修正量h,可得,這樣對于Z(nx,y)的第n次迭代中,假定對于圖像中的所有點,初始值為Z0(x,y)=0,根據式(2)就可以估計出所有的高度值。
首先對合成的圖像進行重建,合成灰度圖像。這里的灰度值對應為亮度值的合成圖像,是按照朗伯反射模型的反射原理,利用假設的高度反推灰度結果得到的理想圖像,并不是實際存在的圖形。然而當人眼能夠直觀上解讀為實際圖形,是因為我們的大腦對圖像中的明暗信息做出了相應的理解,從這個意義上講,朗伯表面反射模型比較接近真實的反射情況,也印證了該算法的可行性。圖4是用線性化算法對圖3的重建結果,從結果中可以看出,重建結果是較為準確的真實圖形,重建結果圖形由可知光源方向的選取對重建結果有關鍵性影響,這也是算法的局限性之一,重建結果的尖刺噪聲是由于原圖像的背景中存在亮點。對花瓶照片圖像的形狀重建結果充分說明了本算法的可靠性,可以看到該算法對形狀的重建結果與人眼對圖形形狀的感知基本類似。

圖3 合成花瓶圖像

圖4 花瓶高度圖
基于圖像明暗信息的三維重建可應用于三維地形分析,根據雷達和SAR圖像,重現山川河流的三維地貌,物體足印形狀測量及表面缺陷檢測,獲得被測物體更加全面的表面形貌信息,有利于分析工件表面的合格性,排除缺陷產品。可廣泛應用于機械設計的制造,三維產品設計及逆向工程中。結合現在的大數據技術及人工智能技術,已廣泛應用于視覺導航、自動駕駛中。在目標識別、人臉識別及三維重建,服裝設計等方面也有相當廣泛的應用。