paper地址:arxiv.org/pdf/2007.08113.pdf
code地址:https://github.com/vinthony/depth-distillation
1. Contribution
1. 使用預先訓練好的網絡作為正則化深度蒸餾,同時學習離焦圖(defocus map)。
2. 設計一個監督引導的注意塊(SAB: Supervision-guided Attention Block),用於對每個側邊輸出特征的每一層重新加權。
3. 在每個解碼器中設計選擇性接收域塊(SRFB: Selective Reception Field Block), SRFB能提取更大的感受野,用於構建更豐富的特征金字塔,並使用全局選擇注意力去加權重要的特征。
4. 通過將深度估計引入到離焦模糊檢測(DBD), 以及設計相關模塊(2,3),使提出的方法比其他的方法具有更高的性能。
以上屬於個人總結出來的,下面放出了原文。
2. Introduction
離焦模糊,在攝影中也被稱為散景效果,在日常照片中得到了廣泛的應用。對焦區域強調突出的物體,而失焦模糊可以保護出現在照片中的人的隱私。此外,檢測這種模糊也是至關重要的,因為檢測到的離焦區域可能在執行任務時有用。這些任務包括自動重對焦[1]、顯著目標檢測[14]和圖像重定位[15]。
傳統方法聚焦在設計新穎的手工特征,比如說梯度特征或頻率特征。然而,這些方法提取的特征有限,缺乏高層次的語義信息。因此,在場景復雜的情況下,很難通過特定的特征來區分離焦區域。
近年來,基於深度學習的方法在各種計算機視覺任務和離焦模糊檢測中表現出了優異的性能。例如Park等[27]訓練CNN,對圖像中每個局部patch的銳度進行分類。將DBD視為場景分割,提出了更深層次的全卷積方法[45,43,44,34]。雖然這些方法強調了圖像尺度在DBD中的重要性,但它們仍然是從二維的角度考慮DBD,並且僅僅依賴於數據集和神經網絡的力量。本文從攝影中散焦模糊產生的原因入手。如圖1(a)所示,由於相機只拍攝一定深度范圍內的清晰照片,所以形成了sharp focus region,也稱為depth- offfield (DOF[35])。當光波在成像平面的后方或前方相交時(圖1(a)中的紅綠線),其產生的區域在最終圖像中會變得模糊。由於DBD中的均勻區域通常包含多個目標,且很難被邊緣或語義特征檢測到,因此攝像機與場景目標之間的距離(深度)為分類提供了較強的先驗性。然而,無約束深度估計是一個不適定問題。為了評估現有的DBD數據集,並與之前的方法進行公平的比較,我們提出使用預先訓練好的網絡[3]作為正則化深度蒸餾,同時學習離焦圖。此外,我們設計了一個監督引導的注意塊(SAB),用於根據每個水平的側輸出重新加權學習特征。最后,模糊置信度是相對的,這意味着當我們放大一個尖銳的patch時,我們可以認為它是模糊的,反之亦然。雖然以前的方法[43,44,34]已經討論了多流或跨層融合網絡,但我們認為在每個解碼器中設計選擇性接收域塊(SRFB)是一種有效的方法。我們的塊提取更大的接收字段來構建更豐富的特征金字塔,並使用全局選擇性注意力來加權有用特征的重要性。通過在DBD和所提出的塊中加入深度估計,我們的網絡在散焦檢測方面優於其他方法。如圖1 (b)-(i)所示,之前的DBD方法對顏色比較敏感,而在我們的網絡中,DBD和深度估計任務是相互建立的,並能很好地預測結果。
3. Methods
我們將DBD定義為一個有監督的基於像素的二分類問題,並以DOF為關注對象。提出方法的算法為:
其中,I和M為輸入源圖像和對應的DOF標簽,Φdf(I;Θ)和Φdp
3. 1 Depth Distillation
一般來說,知識蒸餾[9,24]的目的是將知識轉移到網絡結構優化中。具體來說,如圖2(a)所示,除了使用預測的離散硬目標傳遞知識外,他們在連續軟標簽(Softmax的輸出)空間中使用更大的(教師)網絡對緊湊(學生)模型進行正則化。
有趣的是,我們發現DBD(discrete, classification task)和深度估計(continuous, regression task)與知識蒸餾中硬標簽和軟標簽之間的關系相似。在攝影中,銳焦區域(DOF)在數學上被定義上面公式,其中N分別是鏡頭的f個數,C是模糊圈,f是焦距。深度D是唯一一個不是相機參數。
如圖2(a)所示,我們提出深度蒸餾來幫助離焦模糊檢測。詳細地說,我們認為深度是近似軟標簽,並從預先訓練好的網絡中提取深度信息作為DBD的正則化。由於相機參數不可用,該網絡可以預測離焦和提取深度,而不是直接從深度圖計算DOF,再通過知識蒸餾推斷離焦。深度蒸餾和知識蒸餾的結構雖然相似,但目標完全不同:我們的目標是將三維信息融入到DBD任務中,而不是從教師網絡中提取一個緊湊的模型。為了實現,我們設計了一個簡單而有效的框架來實現前面的分析。如圖2(b)所示,我們生成多個深度估計輸出,這些輸出由一個預先訓練好的網絡監督。然后,通過fusion (1x1 Conv.)塊融合所有側輸出以獲得最終深度。然而,單幅圖像的深度估計是病態的,因為稠密的深度很難采集,尤其是在無約束的情況下。因此,我們選擇相對深度網絡(Chen et al.[3])作為教師網絡。具體來說,它們旨在學習場景對象之間的關系,而不是精確的深度值。因此,他們將800對點之間的空間關系(如點A,點B具有相同的深度,點A比點B更靠近攝像機,點B更靠近攝像機)作為監督標記為前圖像。然后,利用大規模訓練樣本,神經網絡可以預測密集相對深度。
像深度蒸餾一樣將深度信息利用到DBD有很多好處。首先,深度蒸餾幫助我們的網絡更好地理解場景,除了二元分類(類似於知識蒸餾中的關系)。輸入的模糊區域也給出了圖3所示的解碼器的詳細結構,其中紅色箭頭分別表示離焦監督和深度蒸餾。
對相對深度估計的密集提示。最后,通過深度蒸餾,我們在測試中不需要預先訓練的深度網絡,這也有助於建立一個高效的算法。從相對深度網絡中提取也很關鍵。由於DBD的訓練數據集只有600張圖像,因此預先訓練好的相對深度網絡(野外421K訓練圖像)從更大規模的數據集到我們的網絡和任務中包含了更精確的3D特征。此外,我們發現Chen等人的網絡能夠自動定位突出目標並預測其相對深度。幸運的是,DBD有一個類似的目標,因為攝影師經常使用散焦模糊來強調重要的觀點。
3. 2 Network Structure
我們的網絡結構是基於全卷積網絡(FCN[23])。如圖2(b)所示,我們在ImageNet上預先訓練的ResNeXt101[38]中,在每個MaxPooling層之前提取多尺度特征(共5層)。這些多尺度特征既包含高層次語義特征,又包含低層細節,以便進一步檢測。在每個解碼器中,如圖3所示,我們使用帶有卷積的上采樣層代替反卷積層(或轉置卷積層),以避免棋盤格偽影[18,26]。然后,在考慮尺度在DBD中的重要性的基礎上,從多尺度特征建模和保存的幾個方面進行了研究。一方面,我們在解碼器的每一級設計輔助分類器,如[10,21,18],以防止過擬合,產生多尺度結果。不同的是,在解碼器的每一層,我們分別設計了兩個輔助分類器用於DBD和深度蒸餾的監督。每個輔助分類器被定義為一個1x1卷積層用於邊預測,我們重用這些邊輸出作為監督引導的注意塊(SAB)用於空間注意(如圖3所示)。然后,將所有多尺度的中間輸出圖合並,以1x1卷積層作為圖2(b)中的預測融合塊,得到最終的離焦和深度圖。另一方面,我們在解碼器的每一層對多尺度接收域進行建模,並提出選擇性接收域塊(Selective reception Field Block, SRFB)來有效地選擇和合並多環境下的特征。接下來,我們提供建議區塊的細節。
受最近提出的注意機制的啟發[11,36],我們利用注意塊增加了網絡的非線性。具體來說,我們從側邊輸出生成注意力地圖,因為它也有更強的先驗知識,以進一步的特征加權。如圖3所示,在監督輔助分類器之后,我們再次將DBD和depth的輔助輸出反饋給網絡。然后利用兩個卷積塊和一個Sigmoid函數生成空間注意。最后,我們將原始特征與生成的注意力地圖相乘。這些注意事項在下一個解碼器之前對特征空間進行重新縮放。
由於DBD需要仔細處理尺度,以往的工作[43,44,34]采用多尺度輸入合並多個網絡,或遞歸交叉融合多尺度特征。然而,這些網絡仍然是沉重的和計算效率低下。我們沒有設計多流網絡或跨層融合,而是設計了一個高效的多分支塊,用於提取每個解碼器中的多個接收域。
這是使用不同內核大小提取多尺度特征的自然方法。例如,廣泛使用的(atrous)空間池金字塔(SPP[42]或ASPP[2])在語義分割和其他相關任務中都取得了成功[41,31]。最近,選擇性核網絡(SK-Block[19])被提出用於在圖像分類中對多個核進行加權。如圖4所示,我們發現sk塊的作用與(a)SPP類似。因此,我們通過將這些塊建模為兩個階段的過程,即特征金字塔和特征合並,給出了一個通用的公式。SPP通過pooling或expanded convolution提取多上下文特征,然后與convolutional block合並。相反,SK-Block使用不同的卷積核(或不同膨脹率的卷積)來模擬多上下文特征。然后,利用全局注意力生成每個分支的概率,並利用該概率對每個核進行加權。
但是,如果直接插入sk塊到FCN中,接收域仍然是局部的,擴大接收域需要更多的內存。因此,受(A)SPP的啟發,我們設計了選擇性接收字段塊,對sk塊進行了以下改進:首先,我們將原始特征添加到特征金字塔中並進行合並。通過引入原始特征,其他分支將嘗試學習輸入的殘差。另一方面,我們的目標是在特征金字塔中創造更豐富、更大的接受域。具體來說,我們使用了一系列卷積層,卷積層的擴張和卷積核一起作為特征金字塔,這是受到了接收域塊(RFB)[22]的啟發。注意,RFB被提議作為一種類似刺激的結構用於對象檢測。相比之下,我們建立了特征金字塔,這是受到他們的意圖的啟發,並使用這些塊作為FCN框架中的解碼器。因此,我們大幅度地擴大了SK-Block的接收域,該接收域包含多尺度的加權和選擇功能。例如,當塊中有4個支路時(如圖4所示),sk塊的接收場為11(9×9或3×3擴張=4),而我們的接收場為43(7×7擴張=7)。
4. Loss Function
Ldefocus:前一項計算的是最后輸出的defocus map(Mf)與ground truth defocus map(M)之間的損失,后一項計算的是decoder的每一層輸出M'k與ground truth defocus map(M)之間的損失。
Ldepth:前一項計算的是最后輸出的depth map(Φd)與ground truth defocus map(Φrd)之間的損失,后一項計算的是decoder的每一層輸出(Φkd)與ground truth defocus map(Φrd)之間的損失。
5. Experiments
我們比較我們的算法和一些先進的方法,包括基於深度學習DBD的方法,如:深和手工制作的特性為基礎方法(DHCF [27]), multi-stream bottom-top-bottom (BTB-F [43], BTB-C[44]),網絡cross-ensemble (CENet[45])循環和網絡功能重用和融合(DFNet[34])。此外,我們還進行了最先進的基於手工特征的方法的實驗,包括局部二值模式(LBP[40])和梯度大小的高頻多尺度融合和排序變換(HiFST[8])。請注意,所有DBD的預測映射都來自作者的網站或公共實現,推薦使用超參數進行比較。由於很少有基於學習的DBD方法,我們還將我們的方法與4個最先進的基於學習的方法進行了比較。用雙向特征金字塔循環注意網絡(BDRAR[47])和方向意識注意網絡(DSC[13])進行陰影檢測,邊界意識缺失網絡(BAS[30])和級聯部分解碼器(CPD[37])進行顯著目標檢測。所有相關任務的網絡在我們的框架上訓練,輸入分辨率和批處理大小相同。
我們在表1和圖5兩個公開數據集上說明了我們的方法和最新方法的數值比較。很明顯,我們的方法在所有數值指標上都優於其他方法,有更大的邊際。結果表明,該網絡具有深度和多尺度特征,能較好地理解復雜場景。我們還給出了一些可視化示例,以與圖6中最新的DBD方法進行比較。我們的方法也顯示了優越的視覺質量。我們的網絡除了具有良好的目標識別能力外,由於深度蒸餾的作用,還可以很好地預測均勻區域(如第四例中的平面)。為了與相關任務進行比較,表1也給出了清晰的結果。我們的網絡在DBD上比邊界感知網絡BASNet[30]或方向感知網絡[13]有更好的性能,因為深度在我們的任務中更為重要。例如,BASNet[30]中的邊界損失在CUHK100上是有利的(如表1),但DUT500的情況更糟,因為DUT500中的均勻區域與邊緣無關。如圖7所示,我們的方法比其他方法的效果要好得多。
對於我們的網絡結構,我們選擇了不同的主干網,尤其是在之前的工作和ResNeXt101中廣泛使用的VGG19。對於消融研究,我們使用帶有輔助輸出的FCN[23]和ResNeXt101作為特征提取器,並與表2中我們的主要貢獻進行比較。因為CUHK100數據集很小而且很簡單,所以這個數據集上的度量差異不是太大。而在DUT500數據集上,ResNeXt101可以提取更豐富的特征,得到更好的結果。與目前最新的DBD方法(7種DBD方法[40,27,8,43,44,34,45]見表1,圖8:網絡結構的消融研究。從左到右是:(a)輸入,(b)目標(c)離焦+D+SRFB+SA(我們的全方法)(D)僅離焦,(e)離焦+D+SRFB, (f)離焦+D+SRFB, (g)離焦+D+RFB+SA。
6. Conclusion
在圖8(d)(e)和表2中測試了DBD深度蒸餾的有效性。很明顯,在深度的幫助下,我們的網絡可以很好地理解場景,並獲得更好的結果,因為深度信息為離焦地圖檢測提供了很強的先驗。使用深度蒸餾,我們的網絡還可以從單個圖像中預測相對深度。雖然它不是我們的主要目標,我們的網絡只能預測部分離焦圖像的深度,但我們仍然將蒸餾后的深度與補充材料中我們的教師網絡(Chen et al.[3])進行比較。