3D目標檢測深度學習方法數據預處理綜述

2021-02-25 極市平臺

加入極市專業CV交流群,與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度 等名校名企視覺開發者互動交流!

同時提供每月大咖直播分享、真實項目需求對接、乾貨資訊匯總,行業技術交流。關注 極市平臺 公眾號 ,回復 加群,立刻申請入群~

前言這一篇的內容主要要講一點在深度學習的3D目標檢測網絡中,我們都採用了哪些數據預處理的方法,主要講兩個方面的知識,第一個是representation,第二個數據預處理內容是數據增廣。作為本篇博文的引言,我們先給一種博主製作的比較重要的3D檢測方法圖鑑,如下,就筆者的個人理解,今年的CVPR出現了很多的one-stage的方法,同時出現了很多融合的方法,這裡的融合有信息融合,有representation融合,同時根據近兩年的發展來看,voxel-based的方法佔據了主導地位,這是得益於卷積結構優越性(point-based方法採用pointnet++結構,是MLP搭建的),但是今年的oral文章3D-SSD是一篇在point-based方法上很有建樹的文章,所以在3D檢測中了解主要的representation代表方法也是很重要的。
1.representation做3D視覺的,尤其是基於點雲做3D視覺任務的同學們都比較清楚的知道,點雲因為其具有稀疏性和無規則性使得在二維上非常成熟的CNN結構不能直接的運用在點雲中。我們先了解一下點雲的這兩個特性,如下圖所示,下圖中的(i)表示二維圖像的排列方式,(ii),(ii),(iv)表示的是點雲的數據,可以看出點雲的排列稀疏性,對比(ii)和(iii)可以得知雖然點雲數據的排列順序假使是一樣的,但是其對應的幾何結構不同,而(iii)和(iv)則可以看出儘管幾何結構表示同一個,但是排列順序卻是可以不一樣的。知道了上述的兩個點雲數據的兩種特性,所以設計一種合適的點雲表達形式是比尋找到一個高效的深度學習框架更加重要的內容,就3D檢測方面而言,到CVPR20,至少有三種比較重要和值得探究的representation方式,分表示pointrepresentation,voxel representation和graph representation。
1.1 point representation如題,就是採用最原始的點作為深度學習網絡的輸入,不採用任何的預處理工作,這類工作都是在pointnet++的基礎上進行的。這裡首選插入一點採用point-based方法的基礎backbone,如下所示,左圖表示的是pointnet的特徵提取結構,也就是point-based的基礎模塊,右圖就是point-based方法的基礎架構,由point-encoder層和point-decoder層組成,encoder層主要逐漸下採樣採點特取語義信息,decoder過程是將encoder過程得到的特徵信息傳遞給沒有被採樣到的點。使得全局的點都具有encoder的特徵信息。最後再通過每個點作為anchor提出候選框。最早的工作是CVPR18上的F-pointnet,該文章的作者也是pointnet/pointnet++的作者,具體做法如下可知,首先通過二維的檢測框架得到二維目標檢測結果,然後將二維檢測結果通過視錐投影到三維,再採用三維破pointnet++延伸結構檢測為三維目標框。算是三階段的基於point輸入的目標檢測方法隨後的CVPR19的比較經典的Point_based方法是point-rcnn,該工作不僅僅採用point作為representation,同時和上訴的F-pointnet比較沒有採用二維信息,僅僅採用點雲作為網絡輸入。如下圖所示,該工作是一個兩階段的檢測方法,第一階段根據語義分割信息對每一個點都提出一個候選框,隨後再採用多特徵融合進一步優化proposals。除了CVPR會議,在IROS和ICRA機器人相關的會議上也有很多這方面的研究,其中有一篇在F-pointnet上做出更細緻的優化的文章F-ConvNet也是很優秀的工作,有興趣的同學可以去了解下;這裡直接介紹今年CVPR20上的基於Pointrepresentation的文章 3D-SSD,如下圖所示,平平無奇的一階段encoder過程,也就是把pointnet++的decoder部分給去除掉(這樣做的目的是減少網絡前饋時間,在KITTI上達到35FPS),本文的最主要的貢獻點在於將Pointnet++的採樣方法由歐式空間度量改為特徵空間度量和歐式空間度量相結合的方法,同樣的也採用了anchor-free的設計方法,使得顯存佔用更少。
point representation方法小總結就筆者個人對這方面的理解,該類方法的優點是作為最原始的點雲數據,保留了最細緻的幾何結構信息,網絡的輸入信息損失幾乎是所有representation方法中最小的。但是缺點也很明顯,第一點,MLP的感知能力不如CNN,因此主流的effective的方法都是voxel-based的,第二點,pointnet++結構的採樣是很耗時的,所以在實時性上也不及voxel-based的方法。所以今年的CVPR oral文章3D-SSD為了實時性,丟掉了FP層,同時設計了新的SA模塊。1. 2 voxel representation1.2.1 Voxelization 步驟在3D目標檢測中,對整個場景的point2voxel的過程可以簡單描述為如下:1.設置Voxelization參數(每個voxel可以存放點的個數(max_points_number),voxel長寬高的大小(whl))2.對依次每一個點,根據其對應的坐標(x,y,z)得到該點在voxel的索引。3.根據索引判斷該voxel種是否已經存在max_points_number個點,如果存在,則將該點直接丟棄,如果不滿足,則將該點加入到該voxel中。1.2.2 Voxelization 參數上文中的體素化過程涉及到兩個重要的內容,一個是體素參數,另外一個是voxel特徵根據該voxel中的特徵如何求取。Voxelization對參數的要求比較高,就發展歷史來說,VoxelNet(CVPR18)是第一篇採用voxel-representation作為點雲輸入的網絡結構,該文章中max_points_number設置的為35,voxel大小設置為0.5;採用的voxel特徵提取方式為增加一個pointnet對每個voxel中的35個點特徵提取得到相應的voxel特徵(如下圖中的featurelearning network所示的內容),但是該參數很明顯是會丟失比較多的幾何結構信息,但是以這樣的參數劃分在當時還受到VoxelNet網絡後續的3D卷積的顯存佔用的影響(3D卷積很佔顯存,因此網絡預處理的參數受到影響)。
18年的SECOND提出的3D稀疏卷積大大減少了3D卷積的內存佔用,(我們知道,3D卷積本身會對空間中每一個voxel都進行卷積,但是3D稀疏卷積只保留了空間中非空的voxel,採用map映射的方式得到卷積後的voxel空間索引);因此參數的設置自由了很多,就目前在KITTI和Nuscence上的sota的內容而言,我們一般採用的參數和特徵提取方為:max−points−number=5,(w,l)=(0.05,0.05),h=0.1採用的voxel特徵直接為mean特徵,即對每一個voxel中的所有點的坐標求均值即可。1.2.3 related paper這裡只介紹一些在voxelrepresentation上做文章的研究內容,而不是採用voxel作為網絡輸入的研究工作,因此voxel-based的研究方法比較多,後續筆者會出一篇在這方面的研究綜述,所以這裡推薦的幾篇文章都是在voxel-representation上的做出研究的工作。voxel-based的先驅的兩篇文章voxelnet和second的主要貢獻分別是第一個提出採用voxel作為網絡輸入的方法和引入稀疏卷積替代3D卷積。這裡補充一點voxel-based方法的backbone,目前幾乎所有的voxel-based方法都採用如下的encoder的backone作為特徵提取器。下圖左圖表示的是點的voxel表示,經過Voxelization化後,經過逐步下採樣的encoder過程降為二維 feature map,最後再根據二維的feature的每一個像素點作為anchor point提出候選框。
在voxel-representation上做文章的研究工作,如下圖,這是一篇發表在sensors2020上的文章Voxel-FPN:multi-scale voxel feature aggregation in 3D object detection frompoint clouds,該研究工作的主要內容是通過不同scale的體素劃分,最後將其整合成到RPN網絡結構中的FPN網絡中,需要注意的是,這裡的scale的大小要和最初劃分的scale對應起來。
同樣採用該思想的還有今年的CVPR20的文章HVNet,如下圖所示,也是對場景中點雲採用multi-scale的體素劃分,最後也會形成一個FPN的結構,但是不同的細節和實現之處還是有很多的,HVNet採用了多線程同時並行處理每一個scale的體素劃分,同時對於voxel的特徵提取和Voxel-FPN也是不一樣的。在voxel劃分上做研究的工作還有如下的waymo組的MVF工作,可以看到,之前的研究工作如果對於一個voxel中點數沒有佔據max_points_number實際上也會採用全0佔據空間,而這一篇文章的一點創新則是修改成可自適應的儲存點,不必強行每個voxel的空間佔用一樣大,可以節省不少內存佔用。1.2.4 voxelrepresentation方法小結
voxel-representation的方法的優點即是性能好又高效,不僅僅在精度上有著point-based的方法目前無法比擬的精度,在速度上也是很可觀的,尤其是在稀疏卷積和3D流型卷積引入到3D目標檢測後,發展更為迅速。但是缺點則是該類方法對參數比較敏感,預處理劃分voxel的時候需要設置合適的參數,當然從資訊理論的方面理解,體素劃分必然帶來信息的丟失,尤其是局部細節信息的丟失,因此今年CVPR20上至少有三篇文章(SA-SSD,pointpainting,HVnet)在細節幾何結構上做了一定的研究工作。1.3 graph represention這是一個比較新的representation,在3D檢測中,今年CVPR20第一次出現了以graph作為representation的網絡結構,如下圖所示,graphrepresentation的核心問題也在於構建一個graph網絡,即下圖中的圖左所示的內容。這也是很多在語義分割中遇到的問題,在目前的建圖中大多是採用的knn的方法構建圖結構,後續再送入到圖卷積進行特種提取,最後根據pointrpn-head提出proposals。就該類方法而言,目前的研究還不是很多,因為GCN非常耗時,可以理解為時pointnet++特徵提取網絡的升級版,不僅僅提取點之間的信息,同時根據『點-邊』信息提取到更加局部細節的信息,但是優點也可以理解到,3D shape實際上在增加邊信息後,會更加容易感知(對比mesh結構可知),但是採用何種方式構建合適的graph都還是很需要研究的內容。
1.4 point-voxel fusion既然我們知道point-based的方法具有保持了幾何structure的能力,同時voxel-based的方法具有高效的感知能力,那麼最新的研究就在考慮如何做這方面的fusion工作,PV-RCNN(CVPR20)採用的將voxel特徵經過multi-scale的形式賦予到point上,最後再refine階段將點的局部信息融合到pointnet中。SA-SSD採用voxel2point添加附加任務使得voxelbackbone具有structure aware能力。實際上根據representation fusion的經驗,應該還是大有可做的。2 Augmentation實際上3D目標檢測的數據增廣方式和二維目標檢測的方式大多相同,我們總結為如下一些比較常見的數據增廣方式,根據動態圖很容易的看到的出來數據增廣的方式,這裡筆者著重介紹一下groundtruth augmentor的方法,這應該是根據3D點雲的稀疏空間特性所特有的數據增廣方式。
ground truth augmentor就KITTIobject 3D的數據而言,每一幀的object數量從無到二十多個不等,ground truth augmentor的想法則是先從所有訓練集中根據類別把groundtruth建立成一個data base,然後在訓練的時候將data base中的gt按照類別丟一定數量的gt到當前訓練的幀中,這裡筆者給出一般在KITTI上數據增廣的數量如下。即表示一般會選擇在場景中丟進去15個car,丟進10個Pedestrians和Cyclists。SAMPLE_GROUPS: ['Car:15','Pedestrian:10', 'Cyclist:10']因為該數據增廣的工作在3D目標檢測中比較重要,後續還延伸到一些涉及到該方面的研究工作,筆者做一點簡單介紹.這一篇文章(Class-balanced Grouping and Sampling for Point Cloud 3D Object Detection)的後續研究工作做成了一個detectionzoo,在github上叫det3D,但是該文章的初始問題是想解決在nuscene數據中的數據不平衡問題,根據作者的採樣得到如下圖表,這裡也就是目標檢測的longtail問題,數據不平衡問題
這裡作者採用的gt數據增廣方式採樣如下個數的gt來平衡數據集本身存在的long tail問題,並最終在nuscence上取得了榜一的成績。
筆者再介紹一篇今年CVPR20上涉及到gt augmentation的工作(oral)(What You See is What You Get:Exploiting Visibility for 3D Object Detection),,如下圖,在本文gt數據增廣後,俯視圖下由(a)變成了(b),但是作者指出這裡出現的問題在於有的增廣的物體出現在牆後,這在Lidar掃描過程中是不符合規律的,因此作者採取的增廣策略是把對應的牆體去掉,如(d)圖所示的內容。這就比較符合lidar掃描的特性,即遇到object就會反彈。
3 筆者的思考實際上數據預處理在深度學習中也是比較重要的內容,就representation來說,voxel的方法高效但存在信息丟失,point-basde的方法感知能力不及cnn但輸入為最原始的結構,Graph構建了更容易感知的結構,但也要承擔GCN網絡過長的前饋時間;就augmentation來說,gtaugmentation儘管在漲點上成了眾人皆知的trick,但是要能很好的用起來該方法還是有一些值得研究的trick在裡面,就比如上述提到的兩篇文章。最後寫一個flag,後續儘快寫一個voxel-based方法研究的發展概述,主要也是筆者的理解。推薦文獻[1]VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection
[2]Frustum PointNets for 3D Object Detection from RGB-D Data
[3]PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud』
[4]3DSSD: Point-based 3D Single Stage Object Detector
[5]Point-GNN: Graph Neural Network for 3D Object Detection in a Point Cloud

添加極市小助手微信(ID : cv-mart),備註:研究方向-姓名-學校/公司-城市(如:AI移動應用-小極-北大-深圳),即可申請加入AI移動應用極市技術交流群,更有每月大咖直播分享、真實項目需求對接、求職內推、算法競賽、乾貨資訊匯總、行業技術交流,一起來讓思想之光照的更遠吧~

△長按添加極市小助手

△長按關注極市平臺,獲取最新CV乾貨

覺得有用麻煩給個在看啦~  

相關焦點

  • 從數據集到2D和3D方法,一文概覽目標檢測領域進展
    近日,來自阿爾伯塔大學的研究者對目標檢測領域的近期發展進行了綜述,涵蓋常見數據格式和數據集、2D 目標檢測方法和 3D 目標檢測方法。目標檢測任務的目標是找到圖像中的所有感興趣區域,並確定這些區域的位置和類別。由於目標具有許多不同的外觀、形狀和姿態,再加上光線、遮擋和成像過程中其它因素的幹擾,目標檢測一直以來都是計算機視覺領域中一大挑戰性難題。
  • 深度學習第24講:計算機視覺之目標檢測算法綜述
    從本節開始,筆者將花費數講的時間對計算機視覺的第二大任務——目標檢測進行一個全面細緻的學習和講解。既是對前面的 CNN 圖像分類的內容延伸,也是繼續深入研究圖像算法的必走之路。在正式的學習各類目標檢測算法之前,本節將首先對影響目標檢測算法發展歷史的主要算法進行一個綜述,以期對後面的內容起到一個提綱挈領的作用。
  • 基於深度學習的三維點雲綜述part2-3D物體檢測與跟蹤
    實驗結果表明,密集BEV特徵圖比離散圖像特徵圖和稀疏雷射雷達特徵圖更適合於三維目標檢測。MMF: Multi-task multi-sensor fusion for 3D object detection,in CVPR。該文章提出了一種用於端到端訓練的多任務,多傳感器的三維物體檢測網絡。其中包含的任務有,2D物體檢測,地面估計,深度完善。
  • 基於深度學習的目標檢測算法綜述
    一、從Rcnn到Faster-Rcnn從Rcnn開始Girshick大神將深度學習引入目標檢測領域,後來連續發力,最終將目標檢測的所有步驟都統一在了深度學習框架之下,這就意味著所有的計算過程都可以在GPU內進行,從而計算精度和計算速度都有了很大提升。
  • 基於雷射雷達數據的深度學習目標檢測方法大合集(上)
    將全卷積網絡技術移植到三維距離掃描數據檢測任務。具體地,根據Velodyne 64E雷射雷達的距離數據,將場景設置為車輛檢測任務。在2D點圖呈現數據,並使用單個2D端到端全卷積網絡同時預測目標置信度和邊框。通過設計的邊框編碼,使用2D卷積網絡也能夠預測完整的3D邊框。
  • 深度學習檢測小目標常用方法
    在深度學習目標檢測中,特別是人臉檢測中,小目標、小人臉的檢測由於解析度低,圖片模糊,信息少,噪音多,所以一直是一個實際且常見的困難問題
  • 深度學習第25講:目標檢測算法經典論文研讀之R-CNN
    正如筆者在上一篇目標檢測算法綜述中所言,作為將深度學習引入目標檢測領域的開山之作,R-CNN 在目標檢測和計算機視覺發展歷史上具有舉足輕重的地位
  • 如何將深度學習應用於無人機圖像的目標檢測
    本文為AI 研習社編譯的技術博客,原標題: How to easily do Object Detection on Drone Imagery using Deep learning 作者|Gaurav Kaila 翻譯| zackary、Disillusion、劉劉1126 校對| 醬番梨整理| 菠蘿妹如何將深度學習應用於無人機圖像的目標檢測
  • 自動駕駛LiDAR點雲深度學習綜述
    本篇綜述總結了最近五年的140多項重要參考文獻,包括具有裡程碑意義的3D深度學習模型,以及他們在語義分割,目標檢測和分類中的出色應用。此外,本文描述了常用的點雲數據集。最後,對於當前研究的局限性及未來可能的研究方向提供了自己的見解。本文的原文DOI: 10.1109/TNNLS.2020.3015992
  • 從錨點到關鍵點,最新的目標檢測方法發展到哪了
    近日,來自新加坡管理大學和 Salesforce 亞洲研究院的研究人員撰寫了一篇論文,對基於深度學習的視覺目標檢測的近期發展進行了全面綜述,系統性地分析了現有的目標檢測框架。 如果讀者希望了解以前非常流行的兩種目標檢測方法,可以查閱以下文章: 從經典走向前沿的目標檢測 在深度學習時代之前,早期的目標檢測流程分為三步:候選框生成、特徵向量提取和區域分類。
  • 入門 | 獻給新手的深度學習綜述
    引言「深度學習」(DL)一詞最初在 1986 被引入機器學習(ML),後來在 2000 年時被用於人工神經網絡(ANN)。深度學習方法由多個層組成,以學習具有多個抽象層次的數據特徵。DL 方法允許計算機通過相對簡單的概念來學習複雜的概念。
  • 深度學習筆記 | 第16講:語音識別——一份簡短的技術綜述
    神經網絡和深度學習興起以後,循環神經網絡、LSTM、編碼-解碼框架、注意力機制等基於深度學習的聲學模型將此前各項基於傳統聲學模型的識別案例錯誤率降低了一個 level,所以基於深度學習的語音識別技術也正在逐漸成為語音識別領域的核心技術。語音識別發展到如今,無論是基於傳統聲學模型的語音識別系統還是基於深度學習的識別系統,語音識別的各個模塊都是分開優化的。
  • 基於深度學習的動靜結合的漏洞挖掘方法
    模糊測試是一種 通過向目標系統提供非預期的輸入並監視異常結果 來發現軟體漏洞的方法。隨著人工智慧的不斷發展,用深度學習的方法 來進行漏洞檢測逐漸成為熱門研究領域。目前已經 發表了很多用深度學習的方法來檢測軟體漏洞的論 文,包括源碼層面的檢測和基於中間語言的檢測。但是,這類方法相較於傳統的模糊測試等方法誤報 較多,且由於模型可能會學習到較多訓練集上的特 徵,泛化性較差。
  • 怎樣在樹莓派上輕鬆實現深度學習目標檢測?
    翻譯 | 小哥哥  狒狒      校對 | 老趙     整理 | 凡江這個現實世界造成了很多挑戰,比如數據有限、只有微型的計算機硬體(像手機、樹莓派)所造成的無法運行複雜深度學習模型等。這篇文章演示了如何使用樹莓派來進行目標檢測。就像路上行駛的汽車,冰箱裡的橘子,文件上的籤名和太空中的特斯拉。
  • 目標檢測的常用數據處理方法!
    作者:徐和鼎,浙江大學,Datawhale優秀學習者前沿在上節內容中,我們介紹了目標檢測的基礎概念,並分析了實現目標檢測的常用思路,本篇文章將重點介紹在該領域的經典數據集:VOC數據集,以及使用Dataloader對其進行數據讀取和預處理的全過程。
  • 從RCNN到SSD,深度學習目標檢測算法盤點
    、YOLOv3)進行綜述。訓練更多的是在學習背景,而不是檢測目標。但是,我們需要負採樣來學習什麼是較差的預測。所以,我們計算置信度損失來把訓練樣本分類。選取最好的那些來確保負樣本和正樣本的比例最多不超過 3:1。這使訓練更加快速和穩定。推斷過程中的非極大值抑制檢測器對於同一個目標會做出重複的檢測。我們利用非極大值抑制來移除置信度低的重複檢測。
  • 【綜述專欄】異常檢測:Anomaly Detection綜述
    在深度學習廣泛的推廣之前,傳統的異常檢測算法有很多,例如高斯擬合,半監督學習等等,而在深度學習大火之後,人們也開始研究將深度學習應用於各種異常任務中(也就是Deep Anomaly Detection,以下統稱DAD),並取得了很大的成功,本文將把當下該方向熱門的研究方向分類並列舉了對應的文章,希望能幫助大家更好地理解此方向的研究。
  • 深度人臉表情識別技術綜述,沒有比這更全的了
    隨著深度學習技術在各領域中的成功,深度神經網絡被越來越多地用於學習判別性特徵表示。目前的深度面部表情識別系統通常面臨兩個關鍵問題:由於缺乏足夠的訓練數據所造成的過度擬合,和與表情無關的變化,如照明、頭部姿勢和身份偏置信息。這篇文章是對深度面部表情識別的全面綜述,也是 AI 前線第 30 篇論文導讀。首先,我們結合相關背景知識,介紹深度 FER 系統的標準流程。
  • 【綜述專欄】2020 Pose Estimation人體骨骼關鍵點檢測綜述筆記
    為此,我們精選國內外優秀的綜述文章,開闢「綜述專欄」,敬請關注。地址:https://www.zhihu.com/people/qi-qi-17-13-4701人體骨骼關鍵點檢測是諸多計算機視覺任務的基礎,例如動作分類,行為識別,以及無人駕駛等等。
  • 華為MIT韓松論文;DeepMind開源OpenSpiel;目標檢測算法全面綜述
    機器之心整理參與:一鳴本周重點的研究有華為莫斯科研究院和莫斯科國立大學提出的新型對抗樣本攻擊方法、MIT韓松等的新論文、DeepMind開源的OpenSpiel等。其他還有微眾銀行楊強等提出的內容推薦新模型、對BERT的反思、GAN在時尚領域的研究,以及目標檢測算法綜述等。