全新視角探究目標檢測與例項分割的互惠關係 | AAAI 2020
本文是對錄用於AAAI 2020的論文:“RDSNet: A New Deep Architecture for Reciprocal Object Detection and Instance Segmentation”的分析與解讀,相關工作已開源。
論文連結: https://arxiv.org/abs/1912.05070
程式碼連結: https://github.com/wangsr126/RDSNet
作者團隊:中科院自動化所&地平線,其中第一作者王紹儒是地平線實習生,一名來自中科院自動化所的碩士生。
論文對當前目標檢測及例項分割演算法的現狀進行了簡要的概述,並對各種方法的優劣進行了簡要的分析,據此提出了一套完整的框架,同時完成目標檢測與例項分割任務,並且兩個任務相互輔助,同時取得了效能的提升。
一、問題背景
目標檢測與例項分割是計算機視覺領域重要的兩個任務,近年來出現了非常多優秀的演算法解決這兩個問題,且都取得了優異的效果,但是,卻鮮有文章深入分析兩者之間的關聯,也就導致了諸如下圖所示的錯誤的出現:
圖中所示結果由 Mask R-CNN 得到,可以看到由於邊界框定位不準導致的例項掩碼缺失((a), (b))及邊界框與例項掩碼不統一的問題((c), (d))。這些問題都可以在這篇論文提出的演算法中得到很好的解決。
二、方法介紹
演算法框架如下圖所示:
文章中認為:目標檢測屬於 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) 則由物體例項掩碼通過逐列(行)取最大、一維卷積和啟用函式得到。
整體過程如下圖所示:
此方法綜合考慮了迴歸得到的邊界框和例項掩碼的優勢,得到了更準確的邊界框。具體結果可以看下圖,可以明顯發現,由此方法得到的邊界框可以以更高的 IOU 和 ground truth bbox 匹配。
三、實驗結果
文章在 COCO 資料集上進行了實驗驗證:
在例項分割任務中,此方法在單階段演算法中可以達到更優的速度與精度的平衡,以近 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 仍然還有巨大的發展空間。
參考文獻
Kaiming He, et al. "Mask R-CNN." In Proceedings of IEEE International Conference on Computer Vision. 2017.
Wei Liu, et al. "SSD: Single shot multibox detector." In Proceedings of European Conference on Computer Vision. 2016.
Joseph Redmon and Ali Farhadi. "YOLOv3: An incremental improvement." arXiv preprint arXiv:1804.02767 (2018).
Tsung-Yi Lin, et al. "Focal loss for dense object detection." In Proceedings of IEEE International Conference on Computer Vision. 2017.
Alexander Kirillov, et al. "Panoptic feature pyramid networks." In Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. 2019.
Xinlei Chen, et al. "Tensormask: A foundation for dense object segmentation." arXiv preprint arXiv:1903.12174 (2019).
Daniel Bolya, et al. YOLACT: Realtime instance segmentation. In Proceedings of IEEE International Conference on Computer Vision. 2019.
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.
Hei Law and Jia Deng. "CornerNet: Detecting objects as paired keypoints." In Proceedings of European Conference on Computer. 2018.
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.
https://www.leiphone.com/news/201912/TTcH12nhAzBWl8I5.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2668389/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 全新視角,探究「目標檢測」與「例項分割」的互惠關係 | AAAI系列解讀 02AI
- NeurIPS 2024 | 無需訓練,一個框架搞定開放式目標檢測、例項分割框架
- 詳解計算機視覺五大技術:影象分類、物件檢測、目標跟蹤、語義分割和例項分割計算機視覺物件
- 詳解計算機視覺五大技術:影像分類、物件檢測、目標跟蹤、語義分割和例項分割...計算機視覺物件
- AAAI 2020 | 華科Oral提出TANet:提升點雲3D目標檢測的穩健性AI3D
- 目標檢測相關論文
- AAAI 2019 論文解讀 | 基於區域分解整合的目標檢測AI
- NeurIPS 2021 | 物體檢測與分割的零標籤視覺學習視覺
- 目標檢測
- 深入學習OpenCV檢測及分割影象的目標區域OpenCV
- 深度學習之目標檢測與目標識別深度學習
- CVPR2017-目標檢測相關
- 一個演算法同時解決兩大CV任務,讓目標檢測和例項分割互相幫助演算法
- 計算機視覺筆記及資料整理(含影象分割、目標檢測)計算機視覺筆記
- Spiking-YOLO : 前沿性研究,脈衝神經網路在目標檢測的首次嘗試 | AAAI 2020YOLO神經網路AI
- 目標檢測模型的評價標準-AP與mAP模型
- 2018目標檢測
- 九、目標檢測
- 目標檢測---教你利用yolov5訓練自己的目標檢測模型YOLO模型
- 80篇CVPR 2020論文分方向整理:目標檢測/影像分割/姿態估計等
- 目標檢測入門系列手冊七:目標檢測的產品應用實踐【工業視覺篇】視覺
- 使用關鍵點進行小目標檢測
- YOLO例項分割預測後刪除視訊記憶體YOLO記憶體
- 一個關於wait/notify與鎖關係的探究AI
- 目標檢測之SSD
- 目標檢測之RetinaNetNaN
- 目標檢測面面觀
- 28-目標檢測
- 目標檢測綜述
- makefile--偽目標語法與程式設計例項程式設計
- 2019 年的目標檢測指南
- 目標檢測:二維碼檢測方案
- 2D目標檢測綜述 2020 CVPR ECCV
- 目標檢測和影像分類及其相關計算機視覺的影像分佈計算機視覺
- 目標檢測之YOLO系列YOLO
- 【目標檢測】Bounding Box Regression
- 目標檢測發展方向
- SSD 目標檢測 Keras 版Keras