一文介紹3篇無需Proposal的實例分割論文

一文介紹3篇無需Proposal的實例分割論文

來自專欄 機器之心

選自Medium,作者:Bar Vinograd,機器之心編譯。

本文解析了實例分割領域中的三篇論文,它們不同於主流的基於 proposal 和 Faster-RCNN 的方法,比如 Mask R-CNN、MaskLab 以及最新的 PANet,後者在多個數據集(CityScapes、COCO 以及 MVD)上實現了當前最優的結果。

基於 proposal 的實例分割架構存在三個根本缺陷。首先,兩個物體可能共享同一個或者非常相似的邊界框。在這種情況中,mask head 無法區分要從邊界框中拾取的對象。這對於其所在邊界框中具有低填充率的線狀物體(例如自行車和椅子)而言是非常嚴重的問題。第二,架構中沒有任何能夠阻止兩個實例共享像素的東西存在。第三,實例的數量通常受限於網路能夠處理的 proposal 的數量(通常為數百個)。

Mask R-CNN 的架構

此外,這種架構很複雜,難以調節和「調試」。在這個問題的前身目標檢測中,已經成功使用了更簡單的單階段架構,比如 RetinaNet。

使用了實例嵌入之後,每個對象在 N 維空間中被分配了一個「顏色」。網路處理圖像,併產生與輸入圖像相同大小的密集輸出。網路輸出中的每一個像素都是嵌入空間中的一個點。屬於同一對象的點在嵌入空間中是比較接近的,而屬於不同類別的點在嵌入空間中是遠離的。解析圖像嵌入空間會涉及到一些聚類演算法。

論文 1: Semantic Instance Segmentation with a Discriminative Loss Function(基於判別損失函數的語義實例分割)

作者:Bert De Brabandere、Davy Neven、Luc Van Gool

  • 論文地址:arxiv.org/abs/1708.0255
  • GitHub 地址:github.com/DavyNeven/fa

可視化對比損失

損失函數。這篇論文使用的對比損失由三部分組成:

(1)拉力。懲罰同一實例中所有元素與其平均值之間的距離。也就是說,獲取一個實例的所有像素,並計算平均值。這種拉力會將同一實例中的所有像素點拉近到嵌入空間中的同一個點。簡單說,就是減少每一個實例的嵌入方差。

(2)推力。獲取所有中心點 (在嵌入空間中,而不是空間中心),然後將它們推得更遠。

(3)正則化。中心點不應該離原點太遠。

這裡使用的α和β值都是 1,γ則被設置為 0.001。兩個δ都是拉力和推力的閾值。

解析:在獲得語義分割圖 ( 車、狗、計算機、…) 之後,我們將每個類掩碼細分為實例。這是通過在語義掩碼中拾取隨機未分配點并迭代地應用均值偏移演算法來找到實例的均值點來實現的。

平均值的第一個假設是最初拾取的隨機像素的嵌入。然後圍繞該點 (在嵌入空間中) 擴展一組點,然後再次計算它們的平均值,並且重複該過程直到平均值的變化不顯著。根據我的經驗,演算法只需不超過 10 次迭代就能收斂。大多數時候 3 - 4 次迭代就足夠了。

用於在嵌入空間中展開實例掩碼的半徑與拉閾值是相同的。理論上,如果測試誤差為 0,並且中心之間的最小距離至少是方差分量的拉閾值的兩倍,我們可以使用這些閾值來解析圖像。距離不大於拉閾值的所有點都應屬於同一實例。由於測試誤差幾乎從不為零,因此均值偏移演算法被用來來尋找嵌入的高密度部分的中心。

視頻鏈接:youtube.com/watch?

這種跟蹤過程在二維嵌入空間中的良好可視化,其中集合的模式,以及密度的峰值,最終都被找到。

誤差來源

這些結果展示了 Cityscapes 數據集中大多數誤差的來源。如果語義分割不是預測出來的,而是使用了真實標籤,AP50 的結果從 40.2 跳到 58.5。如果實際的中心點也被使用了,而且沒有使用 mean-shift 做估計,那麼,得分幾乎會額外增長 20,最終達到 77.8。目前最先進的結果是使用 PANet 在 COCO 數據集上在未使用預訓練的情況下達到 57.1(參考 cityscapes-dataset.com/)。這與使用語義分割的真實值的結果是一樣的。我們知道,嵌入本身就是相當好的。

實例嵌入

下面是一個實例嵌入的例子,通過網路實際訓練得到。它被用於解決 Data Science Bowl 2018 中提出的問題,它目前由 Kaggle 運營,目的是尋找醫療圖像中的細胞核。

左上角是原始圖像。中上部分的圖像是語義分割(這裡只有背景和前景兩類)。其餘是嵌入空間中 64 個通道中的前 7 個通道。從潛入中可以明顯看出,網路學到了在空間上區分細胞核的通道。以對角線或者水平編碼為例。一些將圖像中心的距離進行編碼。然而,在實例內部,顏色是均勻的。這給我們提供了一些關於網路學習分割實例的洞見。

論文 2:Semantic Instance Segmentation via Deep Metric Learning(基於深度度量學習的實例語義分割)

作者:Alireza Fathi、Zbigniew Wojna、Vivek Rathod、Peng Wang、Hyun Oh Song、Sergio Guadarrama、Kevin P. Murphy

論文地址:arxiv.org/abs/1703.1027

基於深度度量學習的語義實例分割一文中所提出的網路架構

這篇論文的主要貢獻是為每個像素學習種子得分。這個分數告訴我們像素是否是擴展 mask 的良好候選。上篇論文中,種子是隨機選擇的,然後使用均值漂移演算法(mean-shift algorithm)對中心進行細化。然而這裡只進行了一次擴展。

將所有類別和帶寬上的最大值作為種子得分

這篇論文建議為每個像素學習幾個可能的種子。我們為嵌入空間中的每個半徑和每一個類別都學習了一個種子。因此,如果我們有 C 個類別和 T 個帶寬(半徑),那麼每個像素就有 C×T 個種子「候選」。而對於每一個像素而言,只有得分最高的種子會被考慮。

嵌入損失:在這篇論文中,使用像素對懲罰嵌入。我們一併考慮來自同一實例和不同實例的像素對。

嵌入空間中的一個 logistic 距離函數

這篇論文使用了一個修正版的 logistic 函數,它能夠將嵌入空間中的歐氏距離變換到 [0,1] 區間。嵌入空間中比較接近的像素對會被分配一個接近於 1 的數值,比較遠離的像素對會被分配一個接近於 0 的數值。

自然,對數損失也被用作一個損失函數。實例的大小可能會變化,因此,為了緩解這種不平衡問題,像素對會根據所屬實例的大小進行加權。

基於像素對之間的 logistic 距離的對數損失

種子損失:對於每個像素,模型學習幾個種子得分。這是一個由帶寬 (嵌入空間中的半徑) 和類別組合而成的分數。由於種子評分接近但不同於語義分割,因此每次評估嵌入時都確定每個種子評分的基本真實性。mask 圍繞像素的嵌入展開,並且如果具有基本事實實例的 IoU 超過某個閾值,則該像素被認為是實例的類別種子。損失函數將會為這個類別懲罰一個較低的種子得分。

種子損失

在每一個批量中,每幅圖像僅評估大約 10 個種子,並且是隨機選取的。學習幾個這樣的模型,每個帶寬一個。帶寬越寬,對象越大。在某種程度而言,接收最高得分的帶寬就是模型將它的估計傳達給實例大小 (相對於嵌入空間中的距離) 的方式。

訓練過程。本文基於 COCO 數據集預訓練的 ResNet-101 作為主幹。訓練從沒有分類/種子預測開始,也就是說λ為 0,並且隨著嵌入的穩定發展,更新到 0.2。

以不同尺度 ( 0.25,0.5,1,2 ) 對主幹進行評價,並將評價結果反饋給種子和嵌入頭。

解析:學習到種子之後,程序就很直接了當了。提出了一種圖像最佳種子集的選取方法。它一方面優化了高種子得分,另一方面優化了嵌入空間的多樣性。

迭代地選擇種子,每個新種子被選擇為在嵌入空間中遠離先前選擇的種子。所選擇的第一種子是圖像中種子得分最高的像素。第二個將會是既具有高種子得分,另一方面又會在嵌入空間中不太接近的種子。使用參數α控制兩個要求之間的平衡。α需要被調節,對此參數測試的範圍在 0.1 和 0.6 之間。與 NMS 不同,這裡所用的方法鼓勵嵌入空間的多樣性,而不僅僅是空間多樣性。

基於深度度量學習的語義實體分割的一些結果

論文 3: Recurrent Pixel Embedding for Instance Grouping(用於實例分組的遞歸像素嵌入)

作者:Shu Kong、Charless Fowlkes

  • 論文鏈接:arxiv.org/abs/1712.0827
  • GitHub 地址:github.com/aimerykong/R

這篇論文提出了在 n 球面上進行嵌入,並利用餘弦距離來度量像素的接近程度。然而,本文的主要貢獻是基於高斯模糊均值偏移 ( GBMS ) 演算法的改進版本的遞歸分組模型。

GBMS 是一種迭代演算法,類似於第一篇論文中用於尋找實例中心的簡單均值漂移演算法。在這個版本中,所有像素被認為是潛在的種子。所有像素在每次迭代中相對於它們周圍的密度被更新。向「重心」移動,就好像圖像的嵌入空間是一個產生行星的星雲。距離越遠,對彼此的影響就越小。距離由高斯的帶寬控制,這是標準差,從下面的演算法中可以清楚地看出。

GBMS 中存在三次收斂保證,因此在應用多次變換之後,最終我們應該得到非常密集、幾乎呈點狀的聚類。有關 GBMS 更多信息,請參見:cs.cmu.edu/~aarti/SMLRG

為了將該演算法引入到網路中,它已經被使用矩陣運算來表達了。

簡單地應用上述演算法是沒有意義的,因為嵌入在球體上,並且它們的接近度使用餘弦變換來測量。描述所有點之間距離的接近度矩陣可以使用以下的變換來計算:

測量球體上的距離,而不是使用 L2 範數。此外,在應用 GBMS 步驟之後,需要對生成的嵌入進行規範化,以便它們位於單位球體上。

訓練:使用了像素對的損失,與前一篇論文類似,其閾值為所需的不同對 (α) 的距離。每個像素對都使用校準的餘弦距離來衡量,它的變化範圍是 [0,1],而不是 [-1,1]。

校準餘弦距離

損失通過循環分組模型的每個應用被反向傳播。以後的應用階段只會出現非常困難的情況。作者以快速 RCNN 訓練中的硬否定挖掘為例,比較了這一性質。

用於實例分組的遞歸像素嵌入所使用的損失函數

作者在文中使用的α值為 0.5。請注意,實例的大小用於重新平衡大小實例之間的損失。

解析:在分組模塊的幾個應用之後,聚類應該非常密集,隨機挑選值應該產生足夠好的種子。

出於實際目的,僅使用 GBMS 步驟中的一些像素是有意義的,因為計算相似性矩陣可能是極其昂貴的。所採用的像素量是速度/精度的折衷考慮。

其他方法

實例嵌入並不是基於網路的唯一推薦方法。這裡還有一切涉及解決實例分割中的問題的其他方法的論文,

  • 基於循環注意力機制的端到端實例分割(End-to-End Instance Segmentation with Recurrent Attention): arxiv.org/abs/1605.0941
  • 用於實例分割的深分水嶺變換(Deep Watershed Transform for Instance Segmentation):arxiv.org/abs/1611.0830
  • 聯合嵌入:用於聯合檢測和分組的端到端學習(Associative Embedding: End-to-End Learning for Joint Detection and Grouping):ttic.uchicago.edu/~mmaiSGN:用於實例分割的序列分組網路(SGN: Sequential Grouping Networks for Instance Segmentation):cs.toronto.edu/~urtasun

總結

與基於 proposal 的解決方案相比,這些論文的結果並沒有競爭力。我們論述了三篇關於損失函數和解析的解決方法。

(1)基於判別損失函數的語義實例分割

使用了非成對的損失函數。使用圖像中所有像素產生了特別豐富的梯度。

(2)基於深度度量學習的實例語義分割

引入了種子模型,同時幫助我們分類並拾取最佳種子,做了速度優化。

(3)用於實例分組的遞歸像素嵌入

GBMS 是均值漂移的一種變體,在網路內部用於訓練和解析。創建了非常密集的聚類。

這些方法能夠結合起來使用,以產生更好的結果。它們比基於 proposal 的方法更簡單,也可能更快,同時避免了基於 proposal 的實例分割架構存在的三個根本缺陷。

原文鏈接:medium.com/@barvinograd

推薦閱讀:

當機器學會畫畫
什麼是ANI、AGI、ASI?
推薦-2018年最值得讀的12本深度學習相關的書
「人工智慧+」漸成趨勢
可解釋推薦系統:身懷絕技,一招擊中用戶心理

TAG:人工智慧 | researchproposal | 自然語言處理 |