天天看點

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

原文連結

代碼與資料集github網址

Poma, X. S., Riba, E., & Sappa, A. (2020). Dense extreme inception network: Towards a robust cnn model for edge detection. In Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (pp. 1923-1932).

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

文章目錄

  • 1. 摘要
  • 2. 模型
    • 2.1 DexiNed Architecture
    • 2.2 Upsampling Block
    • 2.3 損失函數
  • 3. 實驗準備步驟
    • 3.1 資料集:Barcelona Images for Perceptual Edge Detection (BIPED)
    • 3.2 實驗細節
    • 3.3 評價名額
  • 4. 實驗結果
    • 4.1 三種不同的上采樣方法:
    • 4.2 融合 (DexiNed-f) 和平均 (DexiNed-a) 邊緣圖定量比較
    • 4.3 在其它資料集上的比較
  • 5. 代碼

1. 摘要

  • 貢獻1:受HED (Holistically-Nested Edge Detection) 和

    Xception的啟發,提出一個用于生成人眼可能看到的薄邊緣圖的模型DexiNed: Dense Extreme

    Inception Network for Edge Detection,用于任何邊緣檢測任務,無需經過長時間訓練或微調,從 DexiNed 預測的邊緣在大多數情況下都比最先進的結果要好,

  • 貢獻2:貢獻了一個資料集BIPED:Barcelona Images for Perceptual Edge

    Detection,精心标注,相關SOTA模型在此資料集上測試對比。

    【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

2. 模型

DexiNed 可以看作是兩個子網絡:

  • 密集極端初始網絡(Dexi)
  • 上采樣塊(UB)

Dexi 的輸入的是 RGB 圖像,而 UB 則使用 Dexi每個塊輸出的特征圖作為輸入。

2.1 DexiNed Architecture

DexiNed它由一個編碼器組成,該編碼器具有 6 個受 xception 網絡啟發的輸出塊。

網絡在每個主要塊上輸出特征圖,然後使用第 2.2 節中定義的上采樣塊生成中間邊緣圖,由上采樣塊産生的所有邊緣圖都被連接配接起來,送到網絡最末端的學習濾波器堆棧,并産生融合邊緣圖。所有的上采樣子產品沒有共享參數。

藍色塊由兩個卷積層的堆棧組成,核心大小為 3 × 3,然後是批量歸一化和 ReLU 作為激活函數(隻有最後一個子塊中的最後一個卷積沒有這樣的激活)。最大池由 3 × 3 核心和步長 2 設定。由于架構遵循多尺度學習,就像在 HED 中一樣,遵循上采樣過程(灰色的水準塊)

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

盡管 DexiNed 的靈感來自 xception,但相似之處僅在于主要塊和連接配接的結構。 主要差別詳述如下:

  • 在 xception 中使用可分離卷積,而 DexiNed 使用标準卷積。
  • 由于輸出是 2D 邊緣圖,是以存在“非出口流”,而是在塊 5 的末尾添加了另一個塊。 該塊有 256 個過濾器,并且在塊 5 中沒有 maxpooling 運算符。
  • 在塊 4 和塊 5 中,設定了 512 個過濾器而不是 728 個過濾器。 主要塊的分離是通過圖頂部繪制的塊連接配接(綠色矩形)完成的。
  • 關于跳躍連接配接,在 xception 中有一種連接配接,而在 DexiNed 中有兩種類型的連接配接,參見圖頂部和底部的綠色矩形。

由于執行了許多卷積,每個深度塊都會丢失重要的邊緣特征,而隻有一個主連接配接是不夠的,從第四個卷積層開始,邊緣特征損失更加混亂。 是以,從塊 3 開始,每個子塊的輸出都使用邊連接配接(圖中的橙色方塊)進行平均。

  • i) 如圖所示,在最大池化操作之後,與主連接配接求和之前,邊連接配接為設定為平均每個子塊輸出(見綠色矩形,底部);
  • ii) 從最大池,塊 2,邊緣連接配接饋送塊 3、4 和 5 中的子塊,但是,6 中的子塊僅從塊 5 輸出饋送。

2.2 Upsampling Block

DexiNed 旨在産生細邊緣,以增強預測邊緣圖的可視化。 DexiNed 用于邊緣細化的關鍵元件之一是上采樣塊,如圖所示,來自 Dexi 塊的每個輸出都饋送到 UB。

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

UB 由條件堆疊子塊組成。 每個子塊有 2 層,一層是卷積層,另一層是反卷積層;有兩種類型的子塊:

  • 第一個子塊(sub-block1)是從Dexi子產品或子塊2饋入的; 它僅在特征圖和真值圖之間的比例差等于 2 時使用。sub-block1設定如下:卷積層的核大小1×1; 後跟一個 ReLU 激活函數; deconv 層或轉置卷積的核心大小 s × s,其中 s 是輸入特征圖的尺度級别; 兩層都傳回一個過濾器,最後一層給出與 GT 大小相同的特征圖。 最後一個 conv 層沒有激活函數。
  • 當差異大于 2 時,考慮另一個子塊(子塊 2)。疊代該子塊,直到特征圖比例相對于 GT 達到 2。subblock2 的設定與 sub-block1 類似,隻是過濾器的數量有一個不同,即 16 而不是 subblock1 中的 1。 例如,Dexi 中塊 6 的輸出特征圖的尺度為 16,在饋入子塊 1 之前,子塊 2 中将進行 3 次疊代。 子塊的第二層上采樣過程可以通過雙線性插值、子像素卷積和轉置卷積進行,下文第三部分将讨論該細節。

基于pytorch的實作其實用的是條件判斷與循環一并實作了上述的兩個子產品:

class UpConvBlock(nn.Module):
    def __init__(self, in_features, up_scale):
        super(UpConvBlock, self).__init__()
        self.up_factor = 2
        self.constant_features = 16

        layers = self.make_deconv_layers(in_features, up_scale)
        assert layers is not None, layers
        self.features = nn.Sequential(*layers)

    def make_deconv_layers(self, in_features, up_scale):
        layers = []
        for i in range(up_scale): #循環上采樣2倍,前幾次卷積的channel都是16;最後一次為1
            kernel_size = 2 ** up_scale
            pad = kernel_size-1
            out_features = self.compute_out_features(i, up_scale)
            layers.append(nn.Conv2d(in_features, out_features, 1))
            layers.append(nn.ReLU(inplace=True))
            layers.append(nn.ConvTranspose2d(
                out_features, out_features, kernel_size, stride=2, padding=pad))
            in_features = out_features
        return layers

    def compute_out_features(self, idx, up_scale):
        # 最後一個上采樣channel為1,否則為16
        # 即論文裡說的sublock1和subblock2
        return 1 if idx == up_scale - 1 else self.constant_features

    def forward(self, x):
        return self.features(x)
           

2.3 損失函數

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼
【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

3. 實驗準備步驟

3.1 資料集:Barcelona Images for Perceptual Edge Detection (BIPED)

  • 250張1280×720的戶外圖檔
  • 随機抽取50張作為測試集,其餘200張作為訓練集和驗證集
  • 資料增強:1)由于 BIPED 資料是高分辨率的,它們被分成圖像寬度大小的一半;2)與 HED 類似,每個生成的圖像都旋轉了 15 個不同的角度,并通過内部定向矩形進行裁剪;3)圖像水準翻轉; 4) 應用了兩次伽馬校正 (0.3030, 0.6060)。這個增強過程導緻每 200 張圖像有 288 張增強圖像

3.2 實驗細節

該實作在 TensorFlow中執行。 該模型在 150k 次疊代後收斂,使用 Adam 優化器的批量大小為 8,學習率為 10−4。訓練過程在 TITAN X GPU 中花費大約 2 天時間,輸入大小為 400x400 的彩色圖像。 融合層的權重初始化為:1/(N-1)。經過超參數搜尋以減少參數量後,在 Dixe 和 UB 的不同卷積層上使用 3×3、1×1 和 s×s 的核心大小獲得了最佳性能。

3.3 評價名額

  1. 評價資料集:BIPED(自制,250張1280x720 pixels),MDBD,CID,BSDS,PASCAL,NYUD
  2. 評價名額:ODS、OIS、AP

4. 實驗結果

4.1 三種不同的上采樣方法:

DexiNed-bdc 是指由用雙線性核心初始化的轉置卷積執行的上采樣; DexiNed-dc 使用帶有可訓練核心的轉置卷積; 而 DexiNed-sp 使用亞像素卷積。

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

根據 F-measure,DexiNed 的三個版本得到了相似的結果,但是,在分析圖 6(a) 中的曲線時,DexiNed-dc 的性能出現了微小的差異。 作為結論,選擇了 DexiNed-dc 上采樣政策; 從現在開始,對本節執行的所有評估均使用 DexiNed-dc 上采樣獲得; 為簡單起見,僅使用術語 DexiNed 而不是 DexiNed-dc。

4.2 融合 (DexiNed-f) 和平均 (DexiNed-a) 邊緣圖定量比較

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

定性地,來自 DexiNed-f 的結果比來自 DexiNed-a 的結果要好得多

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

定量的,所有預測的平均值 (DexiNed-a) 在三個評估名額中獲得最佳結果,其次是融合層中生成的預測。即DexiNed-a 産生的定量結果略好于 DexiNed-f。

作為結論,兩種方法(融合和平均)都達到了相似的結果;以後将使用 DexiNed-f版本。

4.3 在其它資料集上的比較

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

每個模型的訓練過程都采用大約兩天。從表 (b) 可以看出,在BIPED資料集上,DexiNed-a 在所有評估名額中都達到了最好的結果。

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼
【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

DexiNed 的主要目标是從每個資料集(RGB 或灰階)中獲得精确的邊緣圖。是以,分為兩類進行公平分析;一個用于邊緣檢測,另一個用于輪廓/邊界檢測/分割。用最先進的方法獲得的邊緣圖的結果如表 2 所示。 應該注意的是,對于每個資料集,與 DexiNed 相比的方法已經使用來自該資料集的圖像進行了訓練,而 DexiNed 隻在BIPED訓練了一次。

可以看出,DexiNed 在 MDBD 資料集中獲得了最好的性能。應該注意的是,DexiNed 在 CID 和 BSDS300 中進行了評估,即使這些資料集包含少量圖像,不足以訓練其他方法(例如,HED、RCF、CED)。

關于 BSDS500、NYUD 和 PASCAL,DexiNed 沒有達到最好的結果,因為這些資料集沒有用于邊緣檢測,是以評估名額會懲罰 DexiNed 檢測到的邊緣。為了突出這種情況,下圖描述了上表中的結果。考慮了每個資料集的兩個樣本。它們是根據最佳和最差 F 度量來選擇的。是以,如下圖所示,當圖像被完全标注時,得分達到 100% 左右,否則達到不到 50%。

【論文閱讀】Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection(2020)1. 摘要2. 模型3. 實驗準備步驟4. 實驗結果5. 代碼

5. 代碼

參考這個

繼續閱讀