3D目標檢測綜述:從數據集到2D和3D方法

2021-02-24 我愛計算機視覺


本文經機器之心(almosthuman2014)授權轉載,禁止二次轉載。

作者:Yilin Wang, Jiayi Ye

機器之心編譯

編輯:Panda

目標檢測一直是計算機視覺領域中一大難題。近日,來自阿爾伯塔大學的研究者對目標檢測領域的近期發展進行了綜述,涵蓋常見數據格式和數據集、2D 目標檢測方法和 3D 目標檢測方法。

論文地址:https://arxiv.org/abs/2010.15614目標檢測任務的目標是找到圖像中的所有感興趣區域,並確定這些區域的位置和類別。由於目標具有許多不同的外觀、形狀和姿態,再加上光線、遮擋和成像過程中其它因素的幹擾,目標檢測一直以來都是計算機視覺領域中一大挑戰性難題。本文將概述性地總結一些當前最佳的目標檢測相關研究。第 2 節將簡要介紹目標檢測任務常用的數據格式,同時還會給出一些著名的數據集。然後會概述一些預處理方法。第 3 節會介紹與 2D 目標檢測相關的技術,包括傳統方法和深度學習方法。最後第 4 節會概括性地討論 3D 目標檢測這一主題。在計算機圖形學中,深度圖(Depth Map)是包含場景中目標表面與視點之間距離信息的圖像或圖像通道。深度圖類似於灰度圖像,只不過深度圖中每個像素都是傳感器與目標之間的實際距離。一般來說,RGB 圖像和深度圖是同時採集的,因此兩者的像素之間存在一一對應關係。RGB-D 格式的數據集包括 Pascal VOC、COCO、ImageNet 等。雷達數據對目標檢測問題也很有用。雷達數據的收集方式是:先向目標表面發射聲波,然後使用反射信息來計算目標的速度以及與目標的距離。但是,僅靠雷達可無法收集到用於檢測和分類的信息,因此不同類型數據的融合是非常重要的。點雲數據是三維坐標系中的一組向量。這些向量通常用 X、Y、Z 的三維坐標表示,是一種常用的外表面形狀表示方式。不僅如此,除了由 (X,Y,Z) 表示的幾何位置信息之外,每個點雲還可能包含 RGB 顏色像素、灰度值、深度和法線。大多數點雲數據都由 3D 掃描設備生成,比如雷射雷達(2D/3D)、立體相機和 TOF(飛行時間)相機。這些設備可自動測量目標表面上大量點的信息,然後以 .LAS 和 .LAZ 這兩種標準文件格式輸出點雲。這些點雲數據是由掃描設備採集的。在用於訓練的數據集中,除了點雲數據,還有相應的 RGB 圖像。這類數據集包括 KITTI [4]、nuScenes [5]、Waymo Open [6] 等。本文將使用 nuScenes 數據集來訓練和評估模型。nuScenes 數據集來自 nuTonomy,是一個大規模自動駕駛數據集,其中的數據進行了 3D 目標標註。與其它很多數據集相比,nuScenes 數據集不僅規模更大,目標標註更多,而且還提供了整套傳感器套件,包括雷射雷達、聲波雷達、GPS 和 IMU。圖 1 展示了 nuScenes 中一個雷射雷達點雲的示例。

儘管數據集中的圖像質量很高,但在實際應用中,天氣等因素都可能影響圖像的質量,並因此降低檢測準確率。近期提出的一些用於交通場景的去霧算法可以解決這類問題。比如 [8] 提出了一種基於伽馬校正和引導濾波的去霧算法:先使用伽馬校正方法在去霧之前校正圖像,然後再在校正後圖像上執行三種不同尺度的引導濾波過程,過濾後的圖像再使用 Retinex 模型修改,最後使用加權融合得到去霧的結果。通過此方法得到的去霧圖像具有更高的對比度和顏色一致性。Wang [9] 重點研究了如何解決霧濃度分布不均的問題。根據波長與霧濃度的關係,他們針對交通監控圖像構建了一個與波長相關的物理成像模型。然後,再根據波長與顏色的相關性,他們又基於最大模糊相關圖切割設計了一種透射率估計算法。除了提升圖像質量之外,人們也常使用相機校準來確定圖像在 3D 空間中的位置。儘管相機校準這一問題已得到廣泛研究,但大多數校準方法都會固定相機位置並使用某個已知的校準模式。Basu [10] 提出了一種使用場景中的清晰邊緣自動校準相機的方法,該方法可移動相機且無需事先定義一種模式。除了上述問題之外,某些數據集還存在嚴重的類別不平衡問題,比如 nuScenes 數據集。[11] 提出了一種有效解決該問題的方法,並在這個新數據集上取得了優秀表現。他們首先使用數據增強策略,然後使用一些經過改進的 3D 特徵提取網絡,最後改進訓練流程和對損失的評估,進而實現整體性能的提升。傳統的目標檢測算法通常基於不同類型的特徵描述子。方向梯度直方圖(HOG)[12] 就是其中一種著名的描述子,它統計在已定位的圖像部分中梯度方向的出現次數。HOG 特徵結合 SVM 分類器的方法已在目標檢測領域得到廣泛應用,在行人檢測方面尤其成功。特徵檢測在傳統方法中尤其重要。近些年,出現了很多特徵提取方面的有趣研究。霍夫變換(Hough transform)是圖像處理過程中一種識別圖像中幾何形狀的基本方法。舉個例子,針對人臉跟蹤問題,[13] 使用了一種基於梯度的霍夫變換來定位眼睛虹膜的位置。但是,對於非單視點(SVP)標準的圖像,這樣的變換無法直接用於特徵識別。[14] 提出了一種解決該問題的數學模型。雷登變換(Radon Transform)[15] 在醫學影像處理方面應用廣泛,它也可用於識別任務。[16] 使用雷登變換來進行視覺手勢識別,得到了很不錯的識別率。Yin [17] 提出了一種跟蹤鼻子形狀的方法,以前的研究通常會忽略這個特徵。這一研究使用面積增長方法來確定鼻子所在的區域,而鼻尖和鼻翼的形狀則是通過預定義模板分別提取。最後,再使用提取出的特徵指示人臉跟蹤的效果。一旦檢測到相關特徵,就使用 Kanade–Lucas–Tomasi(KLT)等特徵跟蹤器跟蹤下一幀中的特徵。2005 年時,有作者 [18] 提出了一種方法,即使用高斯拉普拉斯算子(Laplace of Gaussian)和高斯加權函數來提升會受噪聲影響的 KLT 跟蹤性能。該加權函數耦合了邊緣特徵,從而得到了一種用於選取最優加權函數的確定性公式。這種方法僅會增加少量計算時間,但卻為跟蹤性能帶來極大提升。有時候,除了特徵提取,還會涉及到圖像分割。[19] 描述了一種方法,即使用梯度向量流 - 蛇(GVF snake)模型來提取相關輪廓。通過加入邊緣檢測和使用氣道 CT 切片先驗知識的蛇位移(snake shifting)技術,作者對原始 GVF - 蛇方法進行了改進,得到了更好的結果。這一技術可能也很有用。另一個問題則來自相機移動,隨著收集數據的設備類型的增多,來自移動相機的數據也越來越多。至於背景消除問題,很多方法在靜止相機採集的數據上表現優良,比如在事先知道每幀中前景和背景有較大距離的前提下,聚類可以在一次迭代中完成,而且僅需兩個聚類,[20] 能在背景消除任務上取得較高的準確率。但是,如果相機在移動,難度就會大得多。[21] 首先使用了魯棒型主成分分析(RPCA)來提取背景運動,其假設背景場景可以描述為一種低秩矩陣,然後將幀分割為子像素以提升將光流轉換為運動的幅度和角度的準確率,由此改善結果。目標識別是指與識別圖像或視頻中目標相關的任務,旨在找到圖像中所有相關目標並確定其 2D 位置。現今,目標檢測領域的深度學習方法主要分為兩大類:兩階段式目標檢測算法和單階段式目標檢測算法。前者是先由算法生成一系列候選邊界框作為樣本,然後再通過卷積神經網絡分類這些樣本。後者則是直接將目標邊界定位問題轉換成回歸問題,其中不涉及生成候選邊界框。兩種方法的區別也導致其性能也不同。前者在檢測準確率和定位準確率方面更優,而後者勝在算法速度。第一種是兩階段框架。這類框架首先生成候選區域(region proposal),然後將其分類成不同的目標類別,所以這也被稱為「基於區域的方法」。這類模型主要包括 R-CNN [22]、Fast R-CNN [23]、Faster R-CNN [24]、基於區域的全卷積網絡(R-FCN)等。在單階段框架中,模型將目標檢測任務視為一個統一的端到端回歸問題。在這類框架中,圖像會被縮放到同一尺寸,並以網格形式均等劃分。如果目標的中心位於某個網格單元中,該網格就負責預測目標。通過這種方式,模型僅需處理圖像一次就能得到位置和分類結果。單階段框架主要包括 MultiBox [26]、YOLO [27]、單次多框檢測器(SSD)[28]。相比於第一類框架,這種框架通常結構更簡單,檢測速度也更快。這一節將簡要討論與 3D 目標檢測相關的工作,這裡基於不同的數據信息將這些研究工作分為了三大類別。RGB 圖像包含充足的語義信息,因此非常適合目標檢測。圖 2 展示了一個使用 2D 圖像檢測目標的示例。3D-GCK [29] 等方法僅使用單目 RGB 圖像就能實現實時的汽車檢測:它首先預測 2D 邊界框,然後使用神經網絡來估計缺失的深度信息,將 2D 邊界框提升到 3D 空間。

近期一項研究 [30] 使用了 RGB-D 傳感器,但只使用了灰度信息來識別無紋理的目標。它首先將傳感器獲得的 RGB 圖像轉換成灰度圖像,然後再分割背景和前景。在移除噪聲後,再使用 5 個分類模型執行特徵提取,最終預測出目標的類別。僅使用點雲數據的分類網絡主要有兩種。第一種是直接使用三維點雲數據。這類方法沒有信息丟失的問題,但是由於 3D 數據非常複雜,所以往往計算成本較高。第二種方法則是將點雲處理成二維數據,這可以降低計算量,但不可避免地會丟失原始數據的一些特徵。圖 3 給出了一個使用 3D 雷射雷達點雲數據執行檢測的例子。

 圖 3:通過 YOLO 使用 3D 點雲的目標檢測示例。將點雲處理成二維數據的方法有很多。Jansen [31] 提出從多個 2D 角度表示 3D 點雲。在其數據預處理階段,通過取點雲圖像的中心作為原點,並通過旋轉固定的弧度角來截取 64 張不同角度的點雲圖像。這種方法能在一定程度上減少信息損失,因為其中加入了額外的旋轉,並在分類階段使用了許多實例。[32] 等研究則是將點雲投射到一個圓柱面上,以儘可能多地保留信息。BirdNet+ [33] 是基於目標檢測框架 BirdNet [34] 的改進版。BirdNet+ 為基於雷射雷達數據的 3D 目標檢測提供了一種端到端的解決方案。它用到了鳥瞰視角表徵,這是從雷射雷達點雲轉換而來的帶有三個通道的 2D 結構,依賴於一個兩階段架構來獲取面向 3D 的邊界框。近期,[35] 提出了一種計算高效的端到端式魯棒型點雲對齊和目標識別方法,該方法使用了無監督深度學習,並被命名為深度點雲映射網絡(DPC-MN)。該模型的訓練無需標籤,而且能高效地實現從 3D 點雲表徵到 2D 視角的映射函數。Frustum PointNets [36] 同時使用 RGB 圖像和雷射雷達點雲數據來執行 3D 目標檢測。該算法使用成熟的 2D 目標檢測器來縮小搜索空間。它是通過從圖像檢測器得到的 2D 邊界框來提取 3D 邊界視錐,然後再在經過 3D 視錐修整過的 3D 空間中執行 3D 目標實例分割。MV3D [37] 也同時使用 RGB 圖像和雷射雷達點雲數據作為輸入,它是將 3D 點雲投影成鳥瞰圖和正視圖。鳥瞰圖表徵是通過高度、強度和密度編碼的,而正視圖則是將點雲投影到一個圓柱面上生成的。鳥瞰圖可用於生成 3D 先驗邊界框,然後將該 3D 先驗邊界框投影到前視圖和圖像上,這三個輸入生成一個特徵圖。該方法採用 ROI 池化來將三個特徵圖整合到同一個維度。整合後的數據再在網絡上進行融合,然後輸出分類結果和邊界框。

2D、3D目標檢測等最新資訊,若已為CV君其他帳號好友請直接私信。

微信號:aicvml

QQ群:805388940

微博知乎:@我愛計算機視覺

投稿:amos@52cv.net

網站:www.52cv.net

在看,讓更多人看到  

相關焦點

  • 基於雷射雷達的3D目標檢測開源項目、數據集匯總!
    包含了最火最熱的KITTI到當前研究前沿的多模態,時序融合等的新數據集。分類方法如下,首先按照場景可以將數據集劃分為室內和室外數據集。然後分別介紹目前3D目標檢測室內和室外的一些常用數據集;然後介紹一些做研究容易上手的項目,並做一些簡單的異同總結。數據集1、室內數據集室內3D目標檢測的研究算是一項比較新的研究任務。
  • 計算機視覺方向簡介 | 基於RGB-D的3D目標檢測
    前言CNN(convolutional neural network)在目標檢測中大放異彩,R-CNN系列,YOLO,SSD各類優秀的方法層出不窮。在2D圖像的目標檢測上,不少學術界提出的框架已經投入商用。但是,具體落實到自動駕駛、機器人這類應用場景上時,2D場景下的目標檢測對於3D真實世界的場景描述依然不夠。
  • 2D素材3D效果!
    預期效果接著,去找了(扒)這個遊戲的素材,都是2d圖片。圖片素材這想到兩個方案去實現:純2d實現:對一張圖片的每個頂點做一次投影變換,算出每個頂點在2d屏幕中的坐標。用用3d實現:調整相機參數,圖片放在 Quad (四方形) 上,布置3d場景。綜合考慮,用3d實現相對方便一點,行動起來吧!
  • 【3D目標檢測】開源 | 弱監督的3D目標檢測器,不需要任何ground truth就可以進行模型訓練
    長按關注▲                  長按加微信▲備註:研究方向+地點+學校/公司+暱稱,更快通過申請,長按加細分領域技術交流群,目前有細分領域:圖像分割、圖像目標檢測、論文寫作、車道檢測、模型優化、目標跟蹤
  • 3D場景理解中的點雲深度學習
    2、數據集,部件分割shapenet part 場景 s-3d-s  scan-net。   3、如果僅僅使用雷達,做3D物體檢測,有沒有可能進行拓展?簡單的拓展是在雷達中進行propal , 就不是一個視錐的propal了把雷達投影到地面變成一個鳥瞰圖,在裡面進行區域的pp,在pp裡在用Pointnet 估計3DBBx,這還是基於投影的方法。
  • 如何用 JS 在 Canvas 2D 上做出 3D 效果
    源碼是在 getPoint 方法裡生成攝像機射線的,然後就在 getPoint 調用結果後面,把生成的射線存到 MaxScript 裡,最後 log 出來。那目標就很明確了,就是自己嘗試做一個三角面。注意這裡只包含單面的交叉檢測,即只有正面是看得見的(會和射線碰撞),背面是透明的(射線會穿透)。正反面的判斷是這樣的,三個點如此排列,上面為正面
  • Stereo R-CNN 3D 目標檢測
    在具有挑戰性的KITTI數據集上的實驗表明,該方法在3D檢測和3D定位任務上的性能優於最先進的基於立體的方法約30%AP。使用權重共享ResNet-101和FPN 作為骨幹網絡來提取左右圖像的一致特徵。,受益於新提出的訓練目標設計,如下圖,沒有額外的數據關聯計算。
  • AAAI 2020 Oral | TANet:提升點雲3D目標檢測的穩健性
    TA 模塊聯合考慮通道注意力、點注意力和體素注意力,從而增強目標的關鍵信息,同時抑制不穩定的點。此外,新型堆疊 TA 模塊還可以進一步利用多級特徵注意力。而 CFR 模塊可在不過度消耗計算成本的情況下提升定位準確率。在 KITTI 數據集驗證集上的實驗結果表明,在難度較大的噪聲環境中(即在每個對象周圍添加額外的隨機噪聲點),TANet 的性能遠遠超過當前最優方法。
  • 今年CVPR,我們填補了3D場景布局數據集空白,並向全世界開源!
    來自名校各界的3D視覺和圖形學學者舉辦了一場以「3D建模」為主題的線上 workshop,阿里巴巴淘系技術部資深算法專家樂田在會上分享了3D場景數據集3D-FRONT(3D Furnished Rooms with layOuts and semaNTics) 的報告,並與圖形學資深研究者張皓教授(Simon Fraser University)合作, 並向全世界開源此份數據集
  • 一起做ROS-DEMO:基於find_object_2d的目標模板匹配識別
    所以我們打算採用其他的方法來進行目標的識別識別。目前我知道的比較好上手的方法有兩種,一是使用模板匹配(包括彩色圖像或點雲匹配),二是使用最近大熱的機器學習來做(比如yolo等,以後會具體介紹)。那麼這次我會講一講基於彩色圖像的模板匹配,因為目前ROS上現有的find_object_2d功能包能夠讓我們在不需要了解具體實現原理的情況下,快速上手此功能,比較適合任務的迅速部署。
  • nnUnet使用2d數據訓練方法-DKFZ官方版
    >上一篇文章介紹了《保姆級教程:nnUnet在2維圖像的訓練和測試》,採用的是自己的2d數據集進行2d到3d的數據轉換,內容包括nnUnet介紹、環境配置、數據配置、預處理、訓練過程、確定最佳的U-Net配置、運行推斷,算是帶著大家在2d數據情況下把nnUnet訓練和測試了一遍。
  • 3D視覺 | 機器人3D手眼標定實驗(上)
    函數接口:1.void getMatsEth(int* other_info, char* point3d_str, char* point2d_str, char* robot_str, double* mtx33_l, double* mtx33_r, double* mtx44_l, double* mtx44_r)2.void getMatsEih
  • 拯救小目標檢測!Tiny Person數據集和SM尺度匹配小目標檢測新方法
    整體上看,大部分目標檢測論文還是在刷 COCO的mAP,部分論文往實時目標檢測(FPS > 30)方向走,也就是追求 mAP和FPS的 trade-off。但其實現實應用中,往往還有個經常要考慮的問題:小目標檢測。Amusi 也經常被問到相關的問題:哪個網絡檢測小目標比較強?有沒有小目標檢測數據集?近期有小目標檢測論文麼?
  • 綜述:在RGB-D圖像上進行目標檢測(Object detection in RGB-D images)
    ,根據構圖先驗和背景先驗的方法進行顯著目標檢測。但是,具體落實到自動駕駛、機器人這類應用場景上時,2D場景下的目標檢測對於3D真實世界的場景描述依然不夠。目標檢測問題實際上包含了兩個任務:定位和分類。作者首先指出,目前最先進的RCNN方法在自動駕駛數據集KITTI上表現不好,原因之一在於KITTI上的測試圖像中,包含許多小型物體、遮擋、陰影,使得實際包含了object的proposals被認為是不包含的。
  • 谷歌AI良心開源:一部手機就能完成3D目標檢測,還是實時的那種
    這個pipeline檢測2D圖像中的物體,然後通過機器學習模型,來估計它的姿態和大小。那麼,它具體是怎麼做到的呢?獲取真實世界中的3D數據我們知道,3D數據集相對於2D來說,非常有限。對於靜態對象,只需要在單幀中注釋一個對象,並使用來自AR會話數據的ground truth攝像機位姿信息,將它的位置傳播到所有幀。這就讓該過程變得非常高效。AR合成數據生成為了提高預測的準確性,現在比較流行的一種方法,就是通過合成的3D數據,來「填充」真實世界的數據。但這樣往往就會產生很不真實的數據,甚至還需要大量的計算工作。
  • 基於深度學習的三維點雲綜述part2-3D物體檢測與跟蹤
    ,包含點雲形狀分類,點雲檢測和跟蹤,點雲分割,以及部分相關的數據集。該方法基於VeloFCN,他們將點雲離散化為一個4D張量,其維度是長度,寬度,高度和通道,並且擴展2D基於全卷積網絡的檢測技術到3D領域來實現3D物體檢測。相較於VeloFCN,該方法在精度上獲得了超過20%的提升,但是由於3D卷積和點雲數據的稀疏性,其不可避免的耗費了更多的計算資源。
  • Unity3d-C#入門基礎
    最近他還創造了TypeScript(JavaScript超集),國內Html5引擎http://www.egret-labs.org/就採用TypeScript開發。在Ios和WP平臺上無法使用Mono Reflection來做代碼熱更新,所以一些業務邏輯部分需要使用腳本來維護,下面列出一些腳本插件以供選擇:CSLightStudio:https://github.com/lightszero/cslightcore
  • 淺談3d文字技術方案
    3d文字技術選型首先第一點不滿足的就是我們的造型, 我們是做家居的,我們不光有3D視圖展示,還有2D視圖展示,所以就是一套數據分別在「3D」和「2D」都有對應的表達。看下面兩張圖:svg的path 信息有了, 這裡第一個難點出來了貝塞爾曲線的離散因為我們2d 可以用貝塞爾曲線去表達,但是我們3D的dataModel 中是沒有這個數據去表示的,所以說什麼呢,我得想好一個替代方案, 這裡其實就設計到一個離散, 就是我將貝塞爾曲線,離散成多個點, 然後用直線去表達。
  • 從錨點到關鍵點:目標檢測方法最新進展(2019)
    Hoi從經典的 R-CNN 到今年非常受關注的 CenterNet,目標檢測近幾年到底有哪些發展?現在都到 2019 年了,基於關鍵點檢測這一新範式效果到底怎麼樣?對於目標檢測,這篇 40 頁的綜述論文有你想要的所有答案。目標檢測是計算機視覺領域中的一個基礎視覺識別問題,在近幾十年得到了廣泛研究。
  • 姿態估計:人體骨骼關鍵點檢測綜述(2016-2020)
    二、相關數據集LSP(Leeds Sports Pose Dataset):單人人體關鍵點檢測數據集,關鍵點個數為14,樣本數2K,在目前的研究中作為第二數據集使用。FLIC(Frames Labeled In Cinema):單人人體關鍵點檢測數據集,關鍵點個數為9,樣本數2W,在目前的研究中作為第二數據集使用。