RDSNet: A New Deep Architecture for Reciprocal Object Detection and Instance Segmentation

該論文錄用於AAAI 2020,相關工作已開源,論文鏈接 & 代碼鏈接。作者團隊:中科院自動化所&地平線,第一作者王紹儒是地平線實習生,來自中科院自動化所的碩士生。

論文對當前目標檢測及實例分割算法的現狀進行了簡要的概述,並對各種方法的優劣進行了簡要的分析,據此提出了一套完整的框架,同時完成目標檢測與實例分割任務,並且兩個任務相互輔助,同時取得了性能的提升。

一、問題提出

目標檢測與實例分割是計算機視覺領域重要的兩個任務,近年來出現了非常多優秀的算法解決這兩個問題,且都取得了優異的效果,但是,卻鮮有文章深入分析兩者之間的關聯,也就導致了諸如下圖所示的錯誤的出現:
圖1
圖中所示結果由 Mask R-CNN 得到,可以看到由於邊界框定位不準導致的實例掩碼缺失((a), (b))及邊界框與實例掩碼不統一的問題(( c), (d))。這些問題都可以在這篇論文提出的算法中得到很好的解決。

二、方法介紹

算法框架如下圖所示:
圖2
文章中認爲:目標檢測屬於 object level 的任務,這類任務更關注物體級別的特徵,對分辨率的需求不高,但需要更多的高級語義信息;而實例分割任務屬於 pixel level 的任務,這類任務需要給出逐像素的輸出,對分辨率的需求較高,需要更多的細節信息。

因此便設計瞭如圖所示的雙流網絡,上面的 object stream 重點完成目標檢測任務,可以是 SSD, YOLO, RetinaNet 等任一 anchor-based 的目標檢測算法(文中採用了 RetinaNet);下面 pixel stream 重點完成分割的任務,分辨率很高(文中採用了類似 PanopticFPN 的方式融合了多尺度的特徵,得到了高分辨率的輸出);後續的若干操作則是文章的重點,介紹瞭如何使得兩個任務相互輔助:

“物體”輔助實例分割:

目前常見的實例分割算法分爲兩類,一類是類似於 Mask R-CNN 的 proposal-based 的方法,是目標檢測算法的直接擴展,但這類方法會面臨上文提到的諸多問題:得到的實例掩碼分辨率相對較低且嚴重依賴於 proposal 的邊界框;另一類基於分割算法,首先預測每個點的 embedding,然後再通過聚類得到每個實例的掩碼(屬於相同物體的點具有相似的 embedding,通過聚類,即可使得屬於同一物體的點形成一個簇,也就得到了每個物體的掩碼),這類方法天然克服了 proposal-based 的缺陷,但一般無法 end-to-end 訓練(一般需要 metric learning 的方式訓練 embedding),且受限於聚類算法,性能一般有限。

仔細分析發現,聚類的難題主要源於聚類中心的缺失,換句話說,如果我們擁有每個簇的中心,我們就可以拋棄聚類算法,進行 end-to-end 的訓練;而這個「中心」,應該是每個物體的 embedding,也就是說,它應該源於 object level,而非 pixel level!因此,也就形成了論文裏提出的基於相關濾波的實例掩碼生成算法:

Object stream 和 pixel stream 分別提取 object 和 pixel 的 embedding(object embedding 的獲取方式也很簡單,直接在目標檢測算法的 detection head 中在 classification 和 regression 分支的基礎上額外增加一個分支進行預測就可以),屬於同一物體的 pixel 和與其對應的物體具有相近的 embedding,相似性的衡量採用了內積相似度,也就是說:對於每個檢測到的物體,以其 embedding 作爲 kernel,在 pixel embedding 上執行相關濾波,即可得到這一物體的掩碼。

除此之外,文中還充分利用了 object stream 得到的目標邊界框,對距離物體中心較遠的噪聲進行了抑制,本質上是在一定程度上克服 CNN 的 translation-variant 對實例分割任務的影響。

“掩碼”輔助目標檢測:

邊界框定位是目標檢測的一項重要任務,而現有的方法大多采用迴歸的方式得到邊界框的位置。然而我們回顧邊界框的定義,發現它本身就是通過物體的掩碼定義的(minimum enclosing rectangle of an object mask)!那麼,既然我們可以得到物體的掩碼,爲什麼還要依賴於迴歸算法,多此一舉呢(前提是物體掩碼的獲取應該不依賴於邊界框)?然而文中通過實驗發現,直接利用通過上述基於相關濾波方法得到的實例掩碼生成邊界框,精度並不太高,甚至低於迴歸方法得到的邊界框!文章作者通過可視化發現:大多數物體的掩碼都可以提供十分準確的邊界框,然而也存在部分物體的掩碼預測結果不太理想,使得邊界框出現了較大的偏移。

據此觀察,文章提出了一種基於貝葉斯公式的邊界框定位算法,首先將邊界框定位定義爲分類任務(在 width/height 維度上某個座標是不是物體的邊界),將問題轉化爲給定物體掩碼,座標屬於邊界框的後驗概率的預測:

然後利用貝葉斯公式,將回歸得到的邊界框作爲先驗概率 P(X=i),而 P(M |X=i) 則由物體實例掩碼通過逐列(行)取最大、一維卷積和激活函數得到。

整體過程如下圖所示:
圖3
此方法綜合考慮了迴歸得到的邊界框和實例掩碼的優勢,得到了更準確的邊界框。具體結果可以看下圖,可以明顯發現,由此方法得到的邊界框可以以更高的 IOU 和 ground truth bbox 匹配。
圖4

三、實驗結果

文章在 COCO 數據集上進行了實驗驗證:
圖4
在實例分割任務中,此方法在單階段算法中可以達到更優的速度與精度的平衡,以近 3 倍的速度取得了和 TensorMask 相近的精度,以相近的速度在 YOLACT 的基礎上取得了 2.3mAP 的提升。

在目標檢測任務中,此方法以極低的計算代價在不同的 backbone 上取得了一致的性能提升。

值得注意的是:文章中採用的是 RetinaNet 作爲 detector,且在其基礎上擴展到實例分割任務中並不會帶來顯著的計算量的增加,如果採用其他更先進的目標檢測算法,其精度與速度還能取得更進一步的提升。

四、一些題外話

文章的解讀到此已經結束,但是作者還提供了一些其他的角度來理解這篇文章:

Anchor-based or Anchor-free?

Anchor-free 可以算得上是 2019 年目標檢測領域爆火的詞彙,本文也蹭一下熱點,分析一下和這篇論文的關聯。

仔細觀察這篇文章提出的算法框架可以發現,object stream 實際上是 anchor-based,而 pixel stream 則是 anchor-free:object stream 中的 detector 可以由很多目標檢測算法充當,包括但不限於 SSD, YOLO, RetinaNet, 甚至可以是兩階段的 Faster R-CNN;而 pixel stream 不只可以預測 pixel embedding,還可以額外預測邊界框角點(類似 CornerNet),或人體關鍵點(類似於 Assoc. Embed.),或是其他物體實例像素級的表徵;而這兩個分支通過相關濾波聯繫到一起,一定程度上解決了如 CornerNet 中的 grouping 的問題。從這個角度說,這篇文章提出的框架算得上是真正的 anchor-based 和 anchor-free 的結合,未來可能催生出更多有意思的工作。

Bbox or Mask?

正如 Ross 大神在 ICCV 的 Tutorial 上提到的內容,object detection 是一個很廣義的概念,不同的物體表徵也對應着不同 level 的任務:例如:bbox 對應着傳統意義上的 object detection,mask 對應着 instance segmentation,human keypoints 對應着 pose estimation,human surfaces 對應着 dense human pose estimation……這些任務相互關聯,對應着不同角度、不同 level 的對物體的理解。現有的方法或是將這些問題獨立看待,或是 high-level task 直接建立在 low-level task 上(例如 Mask R-CNN,兩階段的人體姿態估計等),但這些任務的關聯絕不僅限於此。這篇文章的關注點是 bbox 和 mask 的關聯,但也並未做到極致。從這個角度說,object detection 仍然還有巨大的發展空間。

參考文獻

[1] Kaiming He, et al. “Mask R-CNN.” In Proceedings of IEEE International Conference on Computer Vision. 2017.
[2] Wei Liu, et al. “SSD: Single shot multibox detector.” In Proceedings of European Conference on Computer Vision. 2016.
[3] Joseph Redmon and Ali Farhadi. “YOLOv3: An incremental improvement.” arXiv preprint arXiv:1804.02767 (2018).
[4] Tsung-Yi Lin, et al. “Focal loss for dense object detection.” In Proceedings of IEEE International Conference on Computer Vision. 2017.
[5] Alexander Kirillov, et al. “Panoptic feature pyramid networks.” In Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. 2019.
[6] Xinlei Chen, et al. “Tensormask: A foundation for dense object segmentation.” arXiv preprint arXiv:1903.12174 (2019).
[7] Daniel Bolya, et al. YOLACT: Realtime instance segmentation. In Proceedings of IEEE International Conference on Computer Vision. 2019.
[8] Shaoqing Ren, et al. “Faster R-CNN: Towards real-time object detection with region proposal networks.” In Proceedings of Advances in Neural Information Processing Systems. 2015.
[9] Hei Law and Jia Deng. “CornerNet: Detecting objects as paired keypoints.” In Proceedings of European Conference on Computer. 2018.
[10] Alejandro Newell, et al. “Associative embedding: End-to-end learning for joint detection and grouping.” In Proceedings of Advances in Neural Information Processing Systems. 2017.

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