透明摳圖 vs 非透明摳圖
物體的摳圖問題可以定義為求解以下的公式,即給定圖像I,求解前景顏色F、背景顏色B和Alpha matte的線性組合:
對於透明物體而言,它展現在觀察者眼中的顏色是由其前景顏色,背景顏色以及環境光線經過前景物體自我反射折射混合而成的,因此,它的公式會更加複雜一些:
Φ表示的是環境光的影響 它是所有光線E(w)與反射率方程R乘積在所有點上的二重積分,求解很複雜,導致實現精確的透明摳圖是一個非常困難的問題。因此,現有透明摳圖研究的目標也是實現視覺感受“真實”的摳圖而已,並非追求完全真實的摳圖結果。
現有研究
SOTA的Matting算法在同時提供原圖和對應trimap的情況下,可以的實現對半透物體的處理(如下圖為GCA-Matting的效果),但tripmap在實際的圖像的處理中難以獲取,限制了這類算法其在業務中的使用。
TOM-Net將透明摳圖問題視為折射流的估計問題,網絡支持對單圖輸入,經過三分支的編解碼器網絡,分別預測圖像的Object Mask,attenuative mask,flow mask(折射流圖),並可以通過折射流信息進一步在新的背景進行合成。該方法的侷限性在於其假設物體必須全部為無色透明物體,並且在訓練過程中需要折射流圖作為label, 而折射流圖在真實世界是非常難以獲取的,因此該方法的訓練數只能依賴於圖形學合成,與真實透明圖像的分佈無法一致(圖像的語義合理性存疑,例如玻璃杯在山前懸浮)。經過我們在實際數據上的測試,該方法在實際圖像的表現並不理想。
Segmenting Transparent Objects in the Wild提出了基於語義分支和邊緣分支結構的真實世界透明物體分割網絡,通過邊界注意力模塊(Boundary Attention Modeule)增強對透明物體的分割精度,併發布了目前數量最大的透明物體分割標註數據集Trans10K。然而,文章提出的算法和發佈的數據集都是處理到語義分割層面,並沒有對物體的透明度做進一步處理。
問題簡化
考慮到透明摳圖問題本身難以求解,而且數據構建也非常困難,在實際的應用場景中,為保證同時保證算法的泛化能力和摳圖效果,我們對問題進行了簡化, 我們假設所需處理的物體的透明部分是無色的,且所在環境的背景顏色分佈相對均勻。在這樣的條件下,背景的自發光或反射光的顏色可以認為是全局一致的顏色,不會出現多種顏色疊加的情況,Φ的估計就只是和背景顏色相關了。特別的,如果預知背景的顏色,可以通過將其作為先驗引入Φ中,對結果進行背景雜色的抑制及去除。
模型設計
我們的模型輸入為單張圖像,通過編碼器網絡提取其深層特徵。解碼器設計為兩個分支,分支一的解碼器採用在非透明物體摳圖的解碼器權重,該分支注重語義級別的分割和提取,力求完整準確地獲得物體所在圖像區域,即Object Mask。
分支二則注重對圖像物體不透明度(Opacity)的預測。在背景均勻的假設下,該分支預測圖像各像素與背景的相似性,相似度高則說明介質的透明度高(如空氣,玻璃)。而分支二由於在訓練的時候沒有進行語義的約束,容易存在非主體區域的噪聲影響,因此,將兩者進行融合可以將透明信息約束在主體範圍內。融合模塊的實現,可以將Opacity和ObjectMask進行圖像級的像素融合,也可以將兩者進行深度維度拼接,通過進一步的網絡進行預測。
最後,對於已知背景顏色先驗的場景(如已知是綠幕),我們可以引入顏色糾正模塊,實現對背景透出的雜色進行去除。對於背景顏色未知,但飽和度低的場景,摳圖結果也依然可用。
結果與應用
在已知背景顏色先驗的情況下,可以通過顏色糾正模塊對背景透出的雜色進行去除(左到右:實拍圖,Opacity, 直接摳圖結果,色偏糾正結果)
對於背景顏色未知,但飽和度低的場景,摳圖結果也依然可用,例如下面幾組展示圖。



目前在車輛分割算法上,我們已經實現了基於透明摳圖的思路用於改善半透車窗區域的效果,使得車輛經過摳圖,能夠更加自然和諧與新背景進行融合。目前車輛分割已經上線阿里雲視覺智能開放平臺(vision.aliyun.com),歡迎大家體驗試用。

總結與展望
目前的透明摳圖算法,面對更為多樣的真實場景下物體,仍然具有以下不足,需要進一步探索解決:
1.真實透明物體圖像數據量嚴重不足,且標註困難;
2.主體不透明度圖(Opacity)的預測容易受到圖像中噪聲的影響;
3.在得到Opacity圖後,在未知背景先驗,且背景顏色飽和度高的情況下,如何實現將背景色的去除(如下圖的杯子整體泛藍);
後續我們會考慮進一步提取背景的特徵,將背景先驗知識引入到透明度的估計上,增加RGB偏移輸出信息,嘗試對前景物體的顏色進行糾正。