1 問題描述
本文提出了一種模型無關的后處理方案,即用內部像素的預測代替原來不可靠的邊界像素預測,以提高由任何現有分割模型生成的分割結果的邊界質量。該方法僅對輸入圖像進行兩步處理:(i)定位邊界像素;(ii)識別每個邊界像素對應的內部像素(通過學習從邊界像素到內部像素的方向來建立對應關系)。
該方法不需要先驗信息的分割模型,達到接近實時的速度。實驗驗證,SegFix減少了cityspace數據集中各種先進模型(ADE20K和GTA5)所生成的分割結果的邊界誤差。
2 內容介紹
動機:現有的分割模型大多不能很好地處理邊界上的誤差預測。作者對比了三個模型的直方圖誤差,如圖1(錯誤像素數到物體邊緣的距離的統計)可以看到,距離越大的像素越有可能被很好地分類,並且有很多誤差分布在沿邊界約為5像素的范圍內。

圖1 直方圖統計誤差(錯誤像素數量vs歐式距離)
思路:提出了一種新方法來學習邊界像素和內部像素的對應關系,即提出了一種新的模型無關的后處理方法來減少邊緣誤差,即用對應的內部像素的標簽代替邊緣像素的標簽。使用邊界映射和方向映射隱式編碼邊界像素的相對距離信息,偏移映射可以直接應用於各種方法,而不需要進行任何再訓練。
主要包括2步:第一步是定位邊界像素,第二步是找出每一個邊界像素所關聯的內部像素。我們采用一個向量去表示每個邊界像素跟其對應內部像素的對應關系,這個向量從邊界像素出發,指向一個內部像素。

圖2 SegFix框架
在訓練階段,我們首先將圖像輸入到主干網絡中來預測特征圖,然后應用邊界分支預測二值邊界圖和應用方向分支預測方向圖,我們將邊界損失和方向損失分別應用到預測的邊界圖和方向圖上。在測試階段,我們首先將模型執行到圖像上,以生成偏移量映射,然后根據偏移量圖對現有方法的分割結果進行細化。
2.1 邊緣預測分支
邊界分支實現為1×1conv→BN→ReLU,輸出通道256個。然后我們應用線性分類器和上采樣預測,生成最終的邊界圖B;
訓練時由真值boundary map監督約束,使用二值交叉熵損失作為邊界損失,學習良好的邊緣檢測。
2.2 方向預測分支
邊界分支實現為1×1conv→BN→ReLU,輸出通道256個。然后我們應用線性分類器和上采樣預測,生成最終的方向圖D;
預測所有位置的像素與之最近的同類像素的方向,這里的方向不是連續的,而是對[0,2π)量化成m個值后的結果;
訓練時使用真值direction map監督該分支生成的離散方向,使用多分類交叉熵損失(standard category-wise cross-entropy loss)來作為方向預測損失。
2.3 偏移分支
(1)用D得到坐標偏移圖ΔQ;
(2)

圖3. (a) Illustrating the directions → offsets
(b) Ground-truth generation procedure
圖3(a)中,不同的方向會被映射到不同的坐標偏移值。如m=4個方向范疇對應於偏移量(1,1)、(−1,1)、(−1,−1)和(1,−1)。如圖3(a)中所示,對於m=4的右上方向映射為(1, 1);(b)表示二值映射→距離映射→方向映射。ground-truth二值映射分為car、road和side-walk三類。首先對每個二值映射應用距離變換來計算真值距離映射。然后在距離圖上使用Sobel濾波器計算真值方向圖。選擇不同的顏色來表示不同的距離值或方向值。
(3) 最終通過坐標映射(the grid-sample scheme [Spatial transformer networks]),重新對現有方法在邊界區域的預測結果進行調整,過程如圖4。

圖4 邊緣修正
基於偏移映射對粗略標記圖進行細化。用不同的箭頭表示不同的偏移向量。在粗略標簽圖中紅色標記錯誤位置,在精確標簽圖中箭頭方向標記相應的修正位置。
2.4 真值生成和分析
先從ground-truth分割圖生成distance map,再在此基礎上生成boundary map和direction map,過程如圖3(b)。
(1) distance map
對於每個像素而言,distance map上都記錄了它相距屬於其他類別像素的最小歐式距離。這實際上也表示了像素到邊界的距離。
首先將真值mask分解成K個binary map (0 or 1),每個map關聯着不同的類別(語義類別、實例類別),K表示圖像中包含的類別數量。之后在每個binary map上獨立計算distance map,這里使用了scipy的函數scipy.ndimage.morphology.distance_transform_edt() 。這個函數用於距離轉換,計算圖像中非零點到最近背景點(即0)的距離。它被用在每個類別獨立的binary mask上,正好計算的就是相距於其他類別(每個binary mask上的0表示的就是“其他類別”)的最小歐氏距離。
計算完各個mask后,再計算一個融合的distance map來實現對於所有的K個distance map的集成。
(2) boundary map
使用融合后的distance map,對其使用一個預設的閾值進行划分,小於閾值的作為邊界區域的像素,大於閾值的認為在特定目標區域內部。因為距離值越小,說明越接近邊界。
(3) direction map
這里在未合並的K層distance map上,分別使用9x9的Sobel濾波器。基於Sobel濾波器的方向是在[0°,360°)內,並且每個像素位置的方向都指向鄰域內部距離目標邊界最遠的像素。整個方向范圍被均勻划分成m=8類,然后每個像素的方向被賦值成對應的方向類別。
3 實驗結果
backbone:HRNet、DeepLab V3等。
數據集:Cityscapes and GTA5
參數設置:初始學習率為0.04,權值衰減為0.0005,裁剪大小為512×512,批量大小為16,並訓練80K次迭代。0.9的“poly”學習率策略。
數據增強:隨機水平翻轉、隨機裁剪和隨機亮度抖動。
評價指標:mask F-score and top-1 direction accuracy 對預測的二值邊界圖進行mask F-score,對預測的方向圖進行方向精度評定。
定量評價:用mIoU分類度量區域分割的整體性能邊界;F-score用於測量距離上有小松弛的預測掩模的邊界質量。
3.1 與DenseCRF的對比
以DeepLabv3作為baseline,該方法不僅優於DenseCRF,而且與DenseCRF互補。

3.2 Segmentation mIoU with SegFix

在cityspace數據集上使用SegFix的分類改進結果。HRNet +SegFix在ECCV 2020提交截止日期前,OCR + SegFix在Cityscapes語義分割排行榜上排名第一。
