A+D net:Training a shadow detector with adversarial shadow attenuation

基本信息

  • ECCV 2018
  • http://openaccess.thecvf.com/content_ECCV_2018/html/Hieu_Le_AD_Net_Training_ECCV_2018_paper.html
  • www3.cs.stonybrook.edu/~cvl/projects/adnet/index.html
  • https://github.com/lmhieu612/ADNET_demo

值得借鑑的地方

  1. 使用通過網絡去衰減陰影去擴充數據集,而不是折騰啥虛幻的全局語義,非常值得借鑑。
  2. 引入物理損失保證衰減陰影的準確性,保證只衰減陰影區域而不衰減別的區域。

Abstract

我們提出了一種新穎的基於GAN的框架來檢測圖像中的陰影,其中將陰影檢測網絡(D-Net)與生成對抗訓練示例的陰影衰減網絡(A-Net)一起進行訓練。 A-Net修改了受簡化的物理陰影模型約束的原始訓練圖像,並着重於欺騙D-Net的陰影預測。因此,它通過難以預測的情況有效地增強了D-Net的訓練數據。訓練D-Net可以預測原始圖像和從A-Net生成的圖像中的陰影。我們的實驗結果表明,來自A-Net的額外訓練數據顯着提高了D-Net的陰影檢測精度。我們的方法優於最具挑戰性的陰影檢測基準(SBU)上的最新方法,並且還獲得了跨數據集任務(在UCF上進行測試)的最新結果。此外,提出的方法以每秒45幀的速度實現準確的實時陰影檢測。

1 Introduction

陰影在自然場景中經常發生,並且可能妨礙許多任務,例如圖像分割,對象跟蹤和語義標記。 在場景中對象的光源,幾何形狀和材料之間複雜的物理交互作用中會形成陰影。 有關物理環境的信息,例如稀疏的3D場景重建[33],粗略的幾何估計[22]以及在不同光照條件下[25]的同一場景的多個圖像可以幫助陰影檢測。 不幸的是,從單個圖像推斷一般場景的物理結構仍然是一個難題。

當處其他照片和網絡圖像時,陰影檢測的難度會進一步增加[15]。這樣的圖像通常來自非線性相機傳感器,並且呈現出許多壓縮和噪聲僞像。在這種情況下,最好訓練和使用基於外觀的分類器[36,7,27,13],而不是依賴光照的物理模型[4,5]。但是,影子分類器需要帶註釋的訓練數據,並且分類器的性能通常與訓練數據的數量相關。不幸的是,帶註釋的陰影數據收集和標記非常昂貴。只有最近可用的訓練數據才從幾百個圖像[7,36]增加到幾千個[30],從而能夠基於深度卷積神經網絡[30,20]訓練功能更強大的陰影分類器。然而,與推動深度學習發展的數據集相比,即使幾千張圖像也只是很小的一部分[2,16]。因此可以安全地假設深度學習陰影分類器的性能尚未達到飽和,並且可以使用更多的訓練數據來改善它。不幸的是,收集和註釋陰影數據是一個費力的過程。即使是惰性標註方法[28],也需要花費大量精力。每個圖像的註釋步驟本身需要20秒,這不包括數據收集和清理工作。

在本文中,我們提出了一種方法來最大程度地提高可用陰影數據的效用,而不是收集其他數據。 主要思想是通過削弱原始訓練圖像中的陰影區域,從單個陰影圖像生成一組增強訓練圖像。 我們將此過程稱爲陰影衰減,併爲此訓練了一個深度神經網絡,稱爲A-Net。 如圖1所示,該網絡修改原始陰影圖像以減弱陰影效果。生成的圖像用作陰影檢測器D-Net的其他具有挑戰性的訓練樣本。 我們提出了一個新穎的框架,其中以衰減的方式聯合訓練陰影衰減器和陰影檢測器。 衰減模型A-Net的輸出爲對抗訓練樣本提供了難以檢測的陰影區域,以提高檢測器D-Net的整體可靠性。

在這裏插入圖片描述

圖1:對抗陰影衰減。 衰減器獲取原始陰影圖像,並生成不同的對抗性陰影樣本以訓練陰影檢測器。

最近的研究還表明,深度網絡對對抗性擾動高度敏感[19,26,34]。 通過聯合訓練A-Net和D-Net,我們可以根據最近的趨勢直接增強檢測器D-Net對對抗條件的抵抗力,並提高檢測器的通用性[35,3,31]。

本質上,這裏提出的是用於陰影檢測的數據增強方法。它與其他數據增強方法不同,並且沒有通用數據增強方法的兩個固有問題,即:1)增強後的數據可能與真實數據有很大不同,在真實數據上訓練的分類器的泛化能力沒有影響,2)難以確保擴充後的數據樣本具有與原始數據相同的標籤,這會導致訓練標籤噪聲。解決這些問題的一種流行方法是將增強數據樣本約束爲接近原始數據,例如,設置原始樣本與所生成樣本之間的L2距離的上限。但是,很難設置正確的界限。較大的值會產生標籤噪音,而較小的值會產生與原始數據過於相似的增強樣本,沒有任何好處。在本文中,我們以有原則的方式針對陰影檢測解決了這兩個問題。我們的想法是使用陰影和光照的物理模型來指導數據生成過程並估計出現標籤噪聲的可能性。

請注意,我們旨在衰減陰影區域,而不是將其刪除。 陰影去除是一個重要的問題,但是訓練一個好的陰影去除網絡將需要許多訓練對對應的無陰影/無陰影的圖像,這是不可用的。 此外,完全去除的陰影將對應於具有標籤噪聲,並且這可能會損害檢測器的性能。

實驗結果表明,在具有挑戰性的陰影檢測基準SBU [30]以及跨數據集任務(在SBU上進行訓練並在UCF數據集上進行測試[36])上,我們的陰影檢測器優於最新方法。 此外,我們的方法比許多現有方法更有效,因爲它不需要後處理步驟,例如補丁平均或條件隨機場(CRF)平滑。 對於256×256輸入圖像,我們的方法以每秒45幀的速度檢測陰影。

2 Related Work

單圖像陰影檢測是一個經過充分研究的問題。早期的工作集中在照明的物理建模上[5,4]。這些方法在陰影檢測很簡單的情況下使圖像的照度不變表示。但是,這些方法僅適用於使用窄帶傳感器拍攝的高質量圖像[15]。Panagopoulos等人的方法是將基於物理學的約束與粗糙幾何體結合在一起的另一種早期嘗試。 [21]其中,照明環境被建模爲馮·米塞斯-費舍爾分佈[1]的混合物,並且陰影像素通過圖形模型進行了分割。近來,基於來自小型帶註釋數據集[36,7]的學習分類器[8,11,27,13]的數據驅動方法顯示出更多的成功。例如,Vicente等 [27,29]基於留一誤差估計優化了多核最小二乘支持向量機。這種方法在UCF [36]和UIUC [7]數據集上產生了準確的結果,但是其基礎的訓練過程和優化方法無法處理大量的訓練數據。

爲了處理大量訓練數據並從中受益,最近基於深度神經網絡的隨機梯度下降訓練開發了陰影檢測方法。維森特等[30]提出了一個stacked-CNN架構,將圖像級別的全卷積神經網絡(FCN)與patch-CNN結合起來。這種方法取得了良好的檢測結果,但是它很麻煩,因爲必須使用全連接網絡(FCN)的預測來訓練其預測來訓練patch-CNN。同樣,測試很耗時,因爲它需要FCN預測,然後需要覆蓋測試圖像的密集採樣斑塊的預測。最近,Nguyen等 [20]提出了scGAN,一種基於生成對抗網絡(GAN)的方法[6]。他們提出了一個參數化條件GAN [17]框架,其中訓練了生成器以根據輸入的RGB色塊和靈敏度參數爲條件生成陰影蒙板。爲了獲得輸入圖像的最終陰影蒙版,生成器必須在多個比例的多個圖像塊上運行,並對輸出進行平均。他們的方法在SBU數據集上取得了良好的結果,但是檢測過程在測試時計算量很大。我們提出的方法還使用對抗訓練進行陰影檢測,但與scGAN根本不同。 scGAN使用生成器生成以輸入圖像爲條件的二進制陰影蒙版,而我們的方法使用生成器生成RGB空間中的增強訓練圖像。此外,儘管scGAN使用區分符作爲調節器來鼓勵全局一致性,但我們的方法中的區分符在陰影像素分類中起着更爲重要的作用。與scGAN相比,我們的方法不需要後期處理或輸出平均,從而可以進行實時陰影檢測。使用GAN進行陰影檢測的另一種方法是Stacked Conditional GAN [32]。但是,此方法需要無陰影圖像。最近的另一種方法[10]建議使用上下文信息進行更好的陰影檢測。通過具有幾個空間方向的遞歸神經網絡來合併上下文信息。儘管此方法在陰影檢測基準上可獲得出色的結果,但它還需要運行CRF作爲後處理步驟。

我們提出了一種通過增強訓練示例來改進陰影檢測的方法,並與數據增強的最新趨勢保持同步。例如,張等人 [35]提出了一種簡單的擴充方法,即通過將樣本對及其標籤的線性組合豐富數據集,以提高網絡的泛化性及其對對抗樣本的抵抗力。 Shrivastava等人 [24]提出了另一種使用對抗性示例來訓練網絡的方法。他們對抗性地訓練了一個Refiner網絡,該網絡輸入合成示例並輸出更逼真的圖像。細化的示例可以用作其他訓練數據。以類似的方式,我們提出的衰減器(A-Net)會獲取原始訓練圖像,並生成帶有衰減陰影的真實圖像,作爲陰影檢測器的其他訓練示例。對抗性示例的生成是與檢測器(D-Net)聯合訓練過程中不可或缺的部分,與[24]相比,生成的數據是豐富訓練集的預處理步驟。陰影衰減器的作用也可以看作與對抗性擾動有關[18]:A-Net修改輸入圖像,以掩蓋陰影檢測器D-Net的預測。對抗性示例也可以用於改善網絡的通用性以進行域自適應[31],其中條件GAN用於執行特徵增強。

3 Adversarial Training and Attenuation

3.1 Framework Overview

我們提出了一種基於對抗訓練和陰影衰減的新型陰影檢測框架。 我們提出的模型包含兩個共同訓練的深度網絡。 圖2說明了我們框架的流程圖。 稱爲衰減器或A-Net的陰影衰減網絡將陰影圖像及其對應的陰影蒙版作爲輸入。 基於這些輸入,衰減器生成輸入圖像的一個版本,其中陰影已被衰減。 可以將衰減視爲部分陰影去除。 衰減器生成的圖像被饋入陰影檢測網絡,稱爲檢測器或D-Net,該網絡可預測陰影區域。 在每次訓練迭代中,D-Net還將獲取原始輸入圖像,並學習預測相應的帶註釋的地面真實陰影蒙板。

在這裏插入圖片描述

圖3:A-Net。 相對於輸入圖像的差異損失限制了陰影蒙板外部的區域。 陰影蒙板內部的區域受D-Net的反饋和基於物理約束的約束。

A-Net經過訓練可衰減陰影區域,從而迷惑陰影檢測器。 對於陰影蒙版內的像素,A-Net會修改像素的值以將其僞裝爲非陰影像素,以使D-Net無法識別它們。 我們通過使用結合了物理啓發的陰影區域的損耗來進一步限制衰減變換。 這提高了所生成像素的質量,從而提高了檢測器的通用性。 同時,A-Net學會了不更改值或陰影蒙版外部的像素。我們通過使用一個損失懲罰陰影蒙版(非陰影像素)外部區域上的生成圖像和輸入圖像之間的差異來實現上述目的。 具有所有上述約束的對抗訓練過程以及來自陰影檢測網絡的反向傳播誤差指導A-Net執行陰影衰減。

探測器網絡D-Net用A-Net生成的對抗性示例作爲輸入,並預測陰影蒙版。 通常,由A-Net生成的圖像中的陰影區域比輸入圖像中的陰影區域更難檢測,因爲A-Net經過訓練可將陰影衰減以欺騙D-Net。 因此,除了原始的訓練示例外,D-Net還有挑戰性的示例訓練。 隨着D-Net增強了檢測陰影的能力,A-Net還增強了其減弱陰影的能力,從而給D-Net提供更具有挑戰性的陰影示例。 這個過程增強了D-Net的陰影檢測能力。

3.2 Physics-based Shadow and Illumination Model

我們使用基於物理的照明模型來指導數據生成過程並避免標籤噪聲。 我們使用Guo等[7,8]使用的簡化照明模型,其中,每個像素均由直接光和環境光組合照明:Ii=(kiLd+Le)RiI_i = (k_iL_d + L_e)R_i,其中II是圖像,IiI_i表示彩色圖像的第ii個像素。RiR_i是與第ii個像素相對應的表面反射率。 LdL_dLeL_e是3×1向量,分別代表直射光和環境光的顏色和強度(模擬區域源和相互反射)。 ki[0,1]k_i \in [0,1]是陰影因子,表示有多少直接光到達像素ii。 對於陰影的本影區域,kik_i保持接近於0,而在半影區域中,kik_i逐漸接近於1。 對於無陰影區域kik_i = 1內的像素,我們可以通過以下比率來關聯原始陰影區域及其對應的衰減陰影區域:

IishadowfreeIishadow=Ld+LekiLd+Le \frac {I_i^{shadow-free}} {I_i^{shadow}} = \frac {L_d + L_e} {k_iL_d + L_e}

通過計算無陰影值和陰影值之間的比率,我們消除了未知的反射係數。 我們假設直射光在圖像所描繪的場景上是恆定的,並且環境光對所有像素的影響都是相似的。 我們將此模型整合到A-Net和D-Net的訓練過程中:

  • A-Net:我們設計物理損耗來強制衰減陰影區域內像素的照明比具有較小的差異。
  • D-Net:我們直接估算陰影蒙版內外區域之間的照度比,以測量衰減圖像中的陰影強度,從而避免訓練標籤噪聲。

3.3 A-Net: Shadow Attenuator Network

陰影衰減器網絡A-Net被訓練爲僅對陰影區域進行重新照明,以使探測器網絡D-Net無法檢測到它們。 爲了獲得有用且逼真的衰減陰影,A-Net旨在在尊重物理照明模型的同時欺騙D-Net。 圖3顯示了A-Net的訓練過程,該過程在以下約束和目標下衰減陰影區域:1)保留非陰影像素的值。 2)陰影像素被重新照明,以使D-Net無法將其識別爲陰影像素。 3)產生的像素變換遵守物理啓發的照明約束。

通過定義適當的損失函數,可以將這些約束和目標併入A-Net的訓練中。 II表示一個輸入圖像,M(I)M(I)代表II的陰影。A(I)A(I)代表IIM(I)M(I)組成的輸入對的A-Net輸出(這裏我們令A(I)A(I) 作爲A(IM(I))A(I, M(I))的縮寫。 令D(I)D(I)表示輸入圖像II的D-Net的輸出,即預測的陰影蒙版。 理想情況下,陰影像素的輸出應爲1,否則爲0。 A-Net訓練的目標是使三個損失的加權組合最小化:

LA(I)=λnsdLnsd(I)+λsdLsd(I)+λphLph(I)(1) L_A(I) = \lambda_{nsd} L_{nsd}(I) + \lambda_{sd}L_{sd}(I) + \lambda_{ph} L_{ph}(I) \tag 1

其中λnsd\lambda_{nsd}是對輸入圖像II的陰影蒙版M(I)M(I)以外的像素的值的修改造成損失的損失:λnsd(I)=meaniM(I)A(I)iIi1\lambda_{nsd}(I) ={\rm mean}_{i \notin M(I)}||A(I)_i - I_i||_1LsdL_{sd}是對抗性損失,它會限制生成的圖像上陰影像素的D-Net正確識別,僅限於訓練陰影蒙版M(I)M(I)內:Lsd(I)=meaniM(I)[D(A(I))i]L_{sd}(I)={\rm mean}_{i \in M(I)}[D(A(I))_i]LphL_{ph}是一種受物理學啓發的損失,可確保以物理上可行的方式重新照明生成圖像中的陰影區域。 基於第3.2節中描述的照明模型,我們希望在重新照明的陰影區域內,所有像素ii的比率A(I)iIi\frac{A(I)_i}{I_i}都相似。 我們通過爲對數比的方差添加一個損失項來對此建模:

Lph(I)=c{R,G,B}VarianceiM(I)[log(A(I)ic)log(Iic)] L_{ph}(I) = \sum_{c \in \{R, G, B\}} \mathop{\rm Variance }\limits_{i \in M(I)} [\log(A(I)_i^c) - \log(I_i^c)]

()c(\cdot)^c表示RGB彩色圖像某通道c中的像素值。

圖4顯示了對抗訓練過程中A-Net產生的衰減陰影的一些示例。 兩個原始輸入圖像包含強度爲3.46和2.63的易於檢測的陰影。 測量這些陰影強度值的啓發式方法將在3.4節中介紹。 給定這些輸入圖像和蔭罩的A-Net的輸出顯示在列(c,d,e)中,該列是在訓練期間的第1、5和40輪獲得的。 隨着訓練的進行,生成的圖像中的陰影變得更難檢測。 在數值上,衰減陰影的陰影強度隨時間降低。 此外,A-Net還學會了不更改非陰影區域。

在這裏插入圖片描述

圖4:衰減陰影的示例。 (a)輸入圖像。 (b)陰影蒙版GT。 (c,d,e):A-Net分別從時期1、5和40產生陰影衰減的對抗示例。 相應的陰影強度在每個圖像的左上角顯示爲黑色文本。

3.4 D-Net: Shadow Detector Network

D-Net是我們框架的核心。 它學習從A-Net生成的對抗示例以及原始訓練示例中檢測陰影。 在每次訓練迭代中,原始輸入和對抗衰減的圖像均用於訓練D-Net。 D-Net的學習目標是最小化以下損失函數:

LD(I)=λrealD(I)M(I)1+λadv(A(I))D(A(I))M(I)1(2) L_D(I) = \lambda_{real} ||D(I) - M(I)||_1 + \lambda_{adv}(A(I))||D(A(I)) - M(I)||_1 \tag 2

其中λrealλ_{real}λadv(A(I))λ_{adv}(A(I))控制D-Net應從真實樣本II和對抗性示例A(I)A(I)分別學習多少。 λadv(A(I))λ_{adv}(A(I))取決於II中的陰影被衰減了多少。 如果A(I)A(I)II的完全無陰影版本,則理想情況下,λadv(A(I))λ_{adv}(A(I))應該爲零。 否則,此損失函數對應於具有標籤噪聲,因爲它要求陰影檢測器D-Net的輸入A(I)A(I)的輸出與陰影蒙版M(I)M(I)相同,而A(I)A(I)爲無陰影圖片。

爲了確定A(I)A(I)是否爲無陰影圖像,我們基於第3.2節中描述的照明模型得出啓發式算法。 我們首先在陰影邊界旁邊定義兩個區域,分別表示爲BinB_{in}BoutB_{out},如圖5所示。BoutB_{out}(綠色)是邊界外部的區域,通過減去陰影蒙版的膨脹結果來計算。 內部區域BinB_{in}(紅色)是腐蝕的陰影蒙版。 我們將陰影強度kstrengthk_{strength}定義爲兩個邊界區域的平均像素強度之比:kstrength(A(I))=meaniBout[A(I)i]meaniBin[A(I)i]k_{strength}(A(I)) = \frac{\mathop{\rm mean}_{i \in B_{out}}[A(I)_i]} {\mathop{\rm mean}_{i \in B_{in}}[A(I)_i]}。 圖5示出了具有兩個不同陰影強度的圖像的兩個示例。 陰影較暗(相對於非陰影區域)的圖像具有較高的kstrengthk_{strength}值,反之亦然。

在這裏插入圖片描述

圖5:估計陰影強度。 從真實的陰影蒙版中,我們定義了通過陰影蒙版的膨脹和腐蝕而獲得的兩個區域BinB_{in}(紅色)和BoutB_{out}(綠色)。 陰影強度kstrengthk_{strength}計算爲BoutB_{out}中像素的平均強度與BinB_{in}中像素的平均強度之比。 (a)陰影非常強的圖像,kstrengthk_{strength} = 4.16。 (b)淺陰影,kstrengthk_{strength} = 1.15。

我們使用衰減圖像的陰影強度來確定D-Net是否應從衰減陰影圖像中學習。 如果陰影強度kstrengthk_{strength}太接近1,即陰影邊界兩側的兩個區域具有相同的平均強度,則可以完全去除陰影。 基於這種啓發式方法,我們將對抗性示例A(I)A(I)的權重設置如下:

λadv(A(I))={λadv0if kstrength(A(I))>1+ϵ0otherwise(3) \lambda_{adv}(A(I)) = \left \{ \begin{array}{ll} \lambda_{adv}^0 & {\rm if \ } k_{strength}(A(I)) > 1 + \epsilon \\ 0 & {\rm otherwise} \end{array} \right. \tag 3

其中λadv0\lambda_{adv}^0是對抗示例的可調基線因子,ϵ\epsilon是一個較小的閾值,根據經驗我們將其設置爲0.05。

3.5 Network Architectures

A-Net和D-Net都是基於U-Net架構[23]開發的。 根據[12],我們創建了具有七個跳過連接模塊的網絡,每個模塊都包含一系列卷積,BatchNorm和Leaky-ReLu [9]層。 A-Net輸入是一個四通道圖像,它是RGB圖像和相應的陰影蒙版的串聯。 A-Net輸出是一個三通道RGB圖像。 D-Net的輸入是RGB圖像,輸出是單通道陰影掩碼。

4 Experiments and Results

我們在幾個公共影子數據集上進行了實驗。其中之一是SBU Shadow數據集[30]。該數據集由成對的RGB圖像和相應的帶註釋的陰影二進制掩碼組成。 SBU數據集包含4089個訓練圖像和638個測試圖像,是目前最大和最具挑戰性的陰影基準。我們還在UCF測試集上進行跨數據集實驗[36],該測試集包含110張帶有相應陰影蒙版的圖像。我們通過將測試的真實陰影蒙版與D-Net生產的預測蒙版進行比較,定量評估陰影檢測性能。按照陰影檢測文獻中的慣例,我們將使用平衡錯誤率(BERBER)作爲主要評估指標。 BER定義爲:BER=11/2(TPTP+FN+TNTN+FP)BER = 1 - 1/2(\frac{TP}{TP+FN} + \frac{TN}{TN+FP}),其中TPTPTNTNFPFPFNFN分別是預測正確的陰影像素,預測正確的非陰影像素,預測錯誤的陰影像素和預測錯誤的非陰影像素的總數。由於自然圖像傾向於壓倒性地增加更多的非陰影像素,因此BERBER的偏差要小於平均像素精度。我們還爲陰影和非陰影類分別提供了平均像素錯誤率。

訓練和實現細節。 我們使用Adam求解器[14]的隨機梯度下降來訓練我們的模型。 批大小爲64。在每次訓練迭代中,我們連續執行三個前向傳播:將輸入陰影圖像II轉發到A-Net以獲取對抗性示例A(I)A(I),然後分別轉發對抗性圖像A(I)A(I)和陰影輸入圖像到D-Net。 正如[6]所提出的,D-Net上的一個參數更新一次,A-Net上的參數也更新一次。 在訓練和測試之前,我們將圖像轉換爲對數空間。 我們通過實驗將訓練參數設置爲:(λnsdλsdλphλrealλadv0:=(30,1,100,0.8,0.2)(λ_{nsd},λ_{sd},λ_{ph},λ_{real},λ_{adv}^0):=(30,1,100,0.8,0.2)。 我們在PyTorch上實現了我們的框架。 有關更多詳細信息,請訪問:http://www3.cs.stonybrook.edu/~cvl/projects/adnet/index.html

4.1 Shadow Detection Evaluation

我們評估了SBU和UCF數據集上提出的D-Net的陰影檢測性能。 爲了檢測圖像中的陰影,我們首先將圖像調整爲256×256。 我們將此圖像輸入D-net,以生成尺寸爲256×256的陰影蒙版,並將其與真實的陰影蒙版進行比較以進行評估(以原始尺寸)。

在表1中,我們將我們的方法的性能與最先進的方法Stacked-CNN [30],scGAN [20],ST-CGAN [32]和DSC [10]進行了比較。 我們還考慮了D-Net的一種變體,它經過訓練而沒有來自A-Net的衰減陰影圖像。 所有方法都在SBU訓練集中進行訓練。 性能是根據BER以及陰影和非陰影的BER。 請注意,DSC [10]僅報告了SBU數據集上的BER值,並且其跨分佈結果是從不同於常用UCF測試數據集的測試數據上獲得的(由[36]提出)。

在這裏插入圖片描述

表1:SBU Shadow數據集[30]上的陰影檢測方法評估以及UCF上的跨數據集[36]評估。 所有方法均在SBU訓練數據上進行訓練。 同時顯示了平衡錯誤率(BER)和每類錯誤率。 DSC [10]僅報告了BER數值,並且使用了不同的UCF測試數據集,因此無法比較跨分佈性能。 最佳性能以粗體顯示。

在SBU測試集上,我們的檢測器(D-Net)優於以前的最新方法。 與Stacked-CNN相比,我們減少了51%的錯誤。 與scGAN和ST-CGAN相比,D-Net分別減少了41%的錯誤和33%的錯誤。 儘管D-Net明顯更簡單,但它的誤碼率卻比DSC高0.2%。 D-Net是完全卷積的,不需要運行遞歸神經網絡和CRF後處理。

對於跨數據集實驗,檢測器在SBU訓練集上進行訓練,但在UCF數據集的測試集上進行評估[36]。 這些數據集是不相交的。 SBU涵蓋了廣泛的場景,而UCF則專注於存在暗影和暗反照率物體的圖像。 同樣,我們將我們的方法與以前的最新方法進行了比較:StackedCNN [30],scGAN [20]和ST-CGAN [32]。 就BER而言,相對於scGAN和ST-CGAN,我們提出的D-Net分別將錯誤率顯着降低了18%和16%。 在使用和不使用衰減陰影圖像的情況下訓練的D-Net之間的性能差距非常顯着,突出了使用衰減陰影示例進行訓練的好處。

4.2 Qualitative Results

在圖6(i)和(ii)中,我們顯示了SBU數據集上的陰影檢測結果。 這些列分別顯示輸入圖像,地面真實陰影蒙版和D-Net輸出。 在圖6.(i)中,我們看到了D-Net如何正確預測不同類型的場景中的陰影,例如沙漠,高山,大雪,以及在從晴天到多雲和陰天的不同天氣條件下。 在圖6.(ii)中,請注意D-Net如何準確地預測特寫鏡頭,遠距離拍攝以及航空影像中的陰影。 圖7顯示了scGAN陰影檢測結果的定性比較[20]。 通常,D-Net會產生帶有更清晰邊界的更準確的陰影。

在這裏插入圖片描述

圖6:陰影檢測結果。 我們提出的方法可以準確地檢測以下方面的陰影:(i)不同的場景和照明條件; (ii)特寫鏡頭和遠距離拍攝以及航拍圖像。

在這裏插入圖片描述

圖7:SBU數據集上陰影檢測的比較。 我們的方法與最先進的方法scGAN之間的定性比較[20]。 (a)輸入圖像。 (b)真實的蔭罩。 (c)scGAN [20]預測的蔭罩。 (d)通過我們的方法預測的蔭罩。

4.3 Failure Cases

我們的方法的一些失敗案例如圖8所示。許多是由於暗反照率物質區域被錯誤地歸類爲陰影所致。 我們還將調查錯誤分類的像素的位置,以瞭解故障原因。 圖9顯示了錯誤預測像素相對於SBU測試集上最接近的地面真實陰影邊界的距離的比例。 大部分丟失的陰影像素在距邊界一小段距離之內。 具體而言,65%的假陰性情況在陰影邊界的10個像素內。 這意味着我們的方法遺漏的陰影像素可能在陰影邊界附近或非常小的陰影區域內。 同時,大部分誤報預測都遠離陰影邊界。 這可能是由於將深色物體分類爲陰影所致。

在這裏插入圖片描述

圖8:陰影檢測失敗的示例。 由於非陰影暗反射率區域,我們的方法失敗了。 (a)輸入圖像。 (b)真實的面具。 (c)通過我們的方法預測的陰影蒙版。

在這裏插入圖片描述

圖9:錯誤預測像素到SBU測試集上最接近陰影邊界的距離的累積曲線。

4.4 Ablation Study and Parameter Analysis

我們進行了實驗,以分析基於物理的損耗(LphL_{ph})和權重函數λadvλ_{adv}在我們框架中的影響。我們用另外兩個場景對模型進行了訓練,以進行比較:1)沒有基於物理的損失並且沒有權重函數λadvλ_{adv},以及2)有基於物理的損失但沒有權重函數λadvλ_{adv}。我們將這兩種配置分別表示爲(-LphL_{ph},-λadvλ_{adv})和(+LphL_{ph},-λadvλ_{adv})。表2顯示了在這些修改過的條件下訓練的模型的陰影檢測結果。我們在UCF和SBU測試集中測試了經過SBU訓練的模型。從表2可以看出,降低權重函數λadvλ_{adv}會稍微增加錯誤率,而降低基於物理的損耗LphL_{ph}會大大增加錯誤率。在圖10中,我們比較了有無基於物理的損失訓練的模型生成的對抗性示例。合併此損耗會產生具有更逼真的衰減陰影的圖像。因此,產生的示例有助於陰影檢測器D-Net的訓練。在我們的實驗中,在第50個訓練輪次,基於λadv的A-Net生成的所有圖像中約有6%未使用。

在這裏插入圖片描述

表2:消融研究。 包含和不包含基於物理的損耗LphL_{ph}時,我們框架的陰影檢測結果的比較。 通過將基於物理的損耗LphL_{ph}納入訓練過程,檢測性能顯着提高:SBU [30]測試集中的BER降低20%,UCF降低27%[36](跨數據集任務)

在這裏插入圖片描述

圖10:在有或沒有物理條件下生成的對抗性示例。 (a)輸入圖像I。(b)由A-net生成的對抗示例,無需經過物理損失即可訓練。 (c)由經過物理損失訓練的A-net生成的對抗示例

我們進行了實驗,以研究框架參數的影響。 我們從第4節中介紹的參數設置開始。當我們選擇λsdλ_{sd}= 10時,D-Net可獲得6.5%的BER。 隨着λsdλ_{sd}的增加,A-Net會更顯着地衰減陰影,但也趨向於改變非陰影部分,從而通常生成質量較低的圖像。 在第二個實驗中,我們重新調整了輸入到D-Net的真實圖像和對抗圖像之間的比例。 當我們選擇λadv0λ_{adv}^0= 0.5和λrealλ_{real}= 0.5時,D-Net獲得7.0%的BER。

在這裏插入圖片描述

表2:消融研究。 包含和不包含基於物理的損耗LphL_{ph}時,我們框架的陰影檢測結果的比較。 通過將基於物理的損耗LphL_{ph}納入訓練過程,檢測性能顯着受益:SBU [30]測試集中的BER降低了20%,UCF中的錯誤減少了27%[36](跨數據集任務)

5 Summary

在本文中,我們提出了一種使用陰影衰減進行陰影檢測器對抗訓練的新穎框架。 我們已經通過實驗展示了我們的模型如何能夠從真實的影子訓練示例以及對抗示例中有效學習。 我們訓練有素的模型在兩個基準數據集中表現優於以前的最新陰影檢測器,證明了我們模型的有效性和泛化能力。 此外,據我們所知,這是第一款能夠以45 fps的實時速度準確檢測陰影的陰影檢測器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章