顯著性檢測之SE2Net: Siamese Edge-Enhancement Network for Salient Object Detection

SE2Net: Siamese Edge-Enhancement Network for Salient Object Detection


image.png

原始文檔:https://www.yuque.com/lart/papers/pu1r1y

網絡結構

image.png

  • 從圖中可以看出來,使用了多個階段進行迭代計算,這裏是僅爲結構相同的雙分支“siamese”網絡,權重參數並不共享。
  • 從backbone中前三個階段的預測結果送入邊緣分支,後兩個階段的預測結果送入區域分支。一路低級特徵信息,一路高級特徵信息。
  • 每個階段輸出一個由邊緣分支和區域分支分別生成的特徵二者融合得到的特徵,獲得一個在邊緣有着更強相應的區域特徵圖。最終的輸出使用最後一個階段的預測結果。
  • 第2個階段之後的特徵輸入都是包含之前階段的輸出以及對應的原始低級或者高級特徵信息。
  • 每個階段的輸出都會計算損失,最終的損失包含了所有位置的損失。這裏使用的損失不是常用的交叉熵函數,而是自己構造的L2損失。
  • 最終還使用了提出的邊緣引導推理算法來對於測試時預測的結果進一步的細化。

主要貢獻

  • 雙分支孿生多階段迭代網絡
  • 邊緣與區域雙重監督,信息互補
  • 使用自定義L2損失同時兼顧了點與區域的信息
  • 提出一種邊緣引導推理算法來優化預測結果

迭代過程

In the training process,

  • we first pass each image through a backbone network, i.e., VGG16, ResNet50 or ResNext101, to generate a set of feature maps.
  • As a result, five scales of feature maps, namely 1, 1/2, 1/4, 1/8 and 1/16 of the input size, are computed to generate the low-level and high-level features.
  • In particular, the first three scales of feature maps are concatenated to generate the low-level features Li, and the last two scales of feature maps are concatenated to generate the high-level features Hi.
  • 迭代過程如式子1和2,注意第一階段(t=1)輸入與後面不同,這裏表達的是後幾個階段的過程,具體參數結構如下表:

image.png

image.png

  • Given a new testing image, our siamese multi-stage net-work can predict a set of salient maps of edges and regions. In general, the quality of salient maps is consistently improved over the stages, therefore one can directly take predictions at the last stage as the final results. What’s more, we further design a simple yet effective fusion network to fuse the predictions from all stages. 最終的預測結果可以表示如下,下面通過兩個融合分支分別融合不同階段的邊緣信息或區域信息,得到最終的預測結果,示意圖如圖3:

image.png

image.png

損失計算

image.png

這裏引入了一個加權L2損失。式子中標有 * 的表示對應於邊緣和區域真值圖上的值。這裏的N表示x位置周圍的鄰域,其鄰域的有效範圍半徑爲rou,是一個自定義參量。可見式子7。

image.png

這裏的K是一個截斷高斯核函數,有着手工設定的方差sigma。相當於是利用距離進行了一個加權。

The advantage of our weighted L2 loss function over the standard one is that, it considers the regression problem in a local neighborhood, therefore the learned maps are robust to the salient object annotations. Finally, we extend our weighted L2 loss function into all the training samples and all the network stages, then the overall objective function can be formulated as follows:

image.png

邊緣引導

Although the DNN based methods can usually obtain the high-quality masks of salient objects, the resulting salient maps may be not very smooth or precise at the output layers. Therefore, post-processing algorithms are usually needed to further boost the final results.

Novel to most of the salient object detection methods, since our network can jointly predict the salient maps of edges and regions, we developed a novel edge-guided inference algorithm to filter small bumpy regions along the predicted edges.

image.png

具體流程如下:

  • 首先生成一系列5×5大小的矩形框B,其中各個框的中心都位於邊預測圖上的邊上,而且所有的K個框,除了第一個和第K個有重疊外,其餘框之間相接但是不相交。
  • 各個框根據邊預測圖,被內部的邊分成了兩部分,如第k個框劃分結果爲:B={B,B}。在分出來的兩個區域中,根據區域預測圖中,對應的顯著性區域和非顯著性區域的佔比對該劃分區域的預測結果進行重新賦值。主要基於觀察:對於一塊區域而言,內部的顯著性區域大於非顯著性區域的話,該區域就很有可能爲顯著性區域,反之亦然。主要的處理思路如式子10,這裏image.png,計算了該劃分區域B中的顯著性成分與非顯著性成分之間的比值。從而依據此來對該區域進行判定。

image.pngBecause we further use the edge information to help refine the region masks, we name it as the edge-guided inference algorithm.

image.png

這裏沒有細講如何更新。個人感覺就是使用更新後的B來對R內的顯著性區域進行調整,使其更貼合邊界。而且上述僞代碼中的第8行中的B的上標應該是k。

實驗細節

  • We used the DUTS dataset to train our SE2Net network.
  • The DUTS dataset is a latest released challenging dataset that contains 10,553 training images and 5,019 testing images in very complex scenarios.
  • As indicated in [10], a good salient object detection model should work well over almost all datasets, therefore we also evaluated our model on the other five datasets, i.e., the ECSSD, SOD, DUT-OMRON, THUR 15K and HKU-IS, which contains 1,000, 300, 5,168, 6,232, and 4,447 natural images, respectively.
  • In each image, there are different numbers of salient objects with diverse locations. For fair comparison, we follow the same data partition as in [Salient Object Detection via High-to-Low Hierarchical Context Aggregation].
  • Our SE2Net requires the annotations of both edges and regions, while the existing datasets can only provide the ground truth of regions. We generate the ground truth of edges in a very simple and cheap two-step approach:
    • Generate the edge annotations from the ground truth of regions by using the Canny operator;
    • Dilate the width of each edge annotation to five pixels.
  • The batch size is set to be 10, the learning rate is initialized to be 0.01 and decreased by a factor of 0.1 at every two epochs.
  • In the training process, we first randomly crop 300×300 from input images, then follow a random horizontal flipping for data augmentation.
  • There are two hyper parameters in our weighted L2 loss function, and we set ρ=3 and sigma=0.01 in all the experiments.

消融實驗

image.png

image.png

image.png

從這裏可以看出來,邊緣分支的作用明顯。

image.png

和其他模型比較

image.png

image.png

image.png

一點感想

  • 結構上:
    • 和R3Net、PFA的結構是一致的,都是利用早期幾層生成低級特徵,後期幾層生成高級特徵。這裏倒是結構處理的方式與R3Net更像,但是R3Net使用了一種殘差式的迭代模塊,而這裏使用的是兩個相同結構的分支,二值之間進行交互融合迭代。雖說是迭代,不過代碼實現應該各個階段是獨立的代碼。
    • 另外,這也爲除了FCN/UNet結構之外提供了一種構造網絡的思路。
  • 損失函數上:
    • 這裏沒有使用常用的交叉熵函數,可見交叉熵函數不是必須,按需求嘗試。
    • 這裏設計損失函數不只考慮了點之間的關係,還涉及到了與鄰域的計算:The advantage of our weighted L2 loss function over the standard one is that, it considers the regression problem in a local neighborhood, therefore the learned maps are robust to the salient object annotaion. 個人理解是這裏不僅僅學習點之間的關聯,而且在一定程度上學習了一個分佈的關係。
  • 對於邊緣信息的利用:
    • 這裏使用邊緣信息的方式很特別,使用其與趨於信息不斷的融合,利用融合後的信息再分別生成邊緣與區域特徵,這一點想法上有些類似MLMSNet,都是反覆的利用邊緣與區域信息互相促進,但是後者是級聯型結構,這裏是並行式結構。
    • 邊緣信息是否可以直接融合到預測上,直接增強預測的邊緣的信息?

參考鏈接

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