史上最全綜述:3D目標(biāo)檢測(cè)算法匯總?。?)
激光雷達(dá)數(shù)據(jù)主要包括點(diǎn)云、深度圖數(shù)據(jù)等,以下時(shí)間軸將較為經(jīng)典的算法做了個(gè)列舉。
3D目標(biāo)檢測(cè)的數(shù)據(jù)表示
點(diǎn)云數(shù)據(jù)和深度圖數(shù)據(jù)與一般的圖像不同。點(diǎn)云是稀疏、不規(guī)則的,需要設(shè)計(jì)特殊模型提取特征。而深度圖是密集緊湊,深度像素存的是3D信息,而不是RGB值。
這些都是需要打破原先的常規(guī)卷積網(wǎng)絡(luò)的固有思維,而且自動(dòng)駕駛需要檢測(cè)目標(biāo)的實(shí)時(shí)性,推理要快,如何設(shè)計(jì)一個(gè)在點(diǎn)云和深度圖上推理更快的模型也是一個(gè)挑戰(zhàn)。
1、基于點(diǎn)的3D目標(biāo)檢測(cè)
基于點(diǎn)的目標(biāo)檢測(cè)成功在點(diǎn)云上應(yīng)用深度學(xué)習(xí)方法,提出了一系列框架,可以直接從原始點(diǎn)數(shù)據(jù)來(lái)預(yù)測(cè)3D目標(biāo)。將點(diǎn)云通過(guò)基于點(diǎn)的主干網(wǎng)絡(luò),通過(guò)點(diǎn)云算子來(lái)提取點(diǎn)云特征,基于下采樣的點(diǎn)和特征預(yù)測(cè)3D框。
基于點(diǎn)的3D目標(biāo)檢測(cè)器主要組成部分為:點(diǎn)云采樣和特征學(xué)習(xí)。整體流程示意圖和代表性工作見(jiàn)下圖和表。
點(diǎn)云采樣。PointNet++[208]的FPS在基于點(diǎn)的檢測(cè)器中被廣泛采用,這種檢測(cè)器從原始點(diǎn)集中依次選擇最遠(yuǎn)處的點(diǎn)。PointRCNN[234]是一項(xiàng)開(kāi)創(chuàng)性的工作,它采用FPS逐步下采樣輸入的點(diǎn)云,并從下采樣點(diǎn)中生成3D候選。
類似的設(shè)計(jì)范式在隨后的許多工作中也被采用,并進(jìn)行了分割引導(dǎo)濾波[318]、特征空間抽樣[321]、隨機(jī)抽樣[189]等改進(jìn)。
特征學(xué)習(xí)。上下文點(diǎn)首先用一個(gè)預(yù)定義的查詢球半徑進(jìn)行選擇,然后上下文點(diǎn)和特征經(jīng)過(guò)多層感知機(jī)和max-pooling,得到新的特征。其它點(diǎn)云操作,包括圖操作、注意力操作、Transformer等。
基于點(diǎn)的3D目標(biāo)檢測(cè)器受制于特征學(xué)習(xí)中采用的上下文點(diǎn)數(shù)量和上下文半徑。增加上下文點(diǎn)數(shù)量可以獲得更強(qiáng)的表達(dá)能力,但會(huì)增加內(nèi)存,在球查詢中,上下文半徑太小,會(huì)造成上下文信息不足,半徑太大,造成3D細(xì)粒度信息丟失。
對(duì)于大部分的基于點(diǎn)的3D目標(biāo)檢測(cè)器,推理時(shí)間上的瓶頸是點(diǎn)云采樣。隨機(jī)均勻采樣因?yàn)榭梢圆⑿?,效率最高,但激光雷達(dá)掃描點(diǎn)分布不均勻,隨機(jī)均勻采樣會(huì)對(duì)點(diǎn)云密度高的地方過(guò)采樣,而稀疏的地方欠采樣。
最遠(yuǎn)點(diǎn)采樣及其變體通過(guò)從已有的點(diǎn)集中依次選擇最遠(yuǎn)點(diǎn)獲得更加均勻的采樣結(jié)果,但其不能并行,耗時(shí)較大,較難做到實(shí)時(shí)。
2、基于網(wǎng)格的3D目標(biāo)檢測(cè)
基于網(wǎng)格的3D目標(biāo)檢測(cè)器首先將點(diǎn)云柵格化為離散的網(wǎng)格表示,即體素、柱體和鳥(niǎo)瞰視圖(BEV)特征圖。然后應(yīng)用傳統(tǒng)的2D卷積神經(jīng)網(wǎng)絡(luò)或3D稀疏神經(jīng)網(wǎng)絡(luò)提取特征。最后,可以從BEV網(wǎng)格中檢測(cè)出3D目標(biāo)。
下圖展示了基于網(wǎng)格的3D目標(biāo)檢測(cè)的示例,下表給出了基于網(wǎng)格的檢測(cè)器的分類。網(wǎng)格檢測(cè)有兩個(gè)基本組成部分:基于網(wǎng)格的表示和基于網(wǎng)格的神經(jīng)網(wǎng)絡(luò)。
基于網(wǎng)格的表示。目前有3種主要的網(wǎng)格表示類型:體素、柱體和BEV特征圖。
體素。體素是3D立方體,體素細(xì)胞內(nèi)包含點(diǎn)。點(diǎn)云可以很容易地通過(guò)體素化轉(zhuǎn)化為體素。由于點(diǎn)云分布稀疏,3D空間中的大部分體素細(xì)胞都是空的,不包含點(diǎn)。在實(shí)際應(yīng)用中,只有那些非空體素被存儲(chǔ)并用于特征提取。
VoxelNet[359]是一項(xiàng)利用稀疏體素網(wǎng)格的開(kāi)創(chuàng)性工作,提出了一種新的體素特征編碼(VFE)層,從體素細(xì)胞內(nèi)的點(diǎn)提取特征。此外,還有兩類方法試圖改進(jìn)用于3D目標(biāo)檢測(cè)的體素表示:
- 多視圖體素。一些方法從不同的視角提出了一種動(dòng)態(tài)體素化和融合方案,例如從鳥(niǎo)瞰圖和****圖[360],從圓柱形和球形視圖[34],從深度視圖[59]等。
- 多尺度體素。一些論文生成不同尺度的體素[323]或使用可重構(gòu)體素。
柱體。柱體可以被視為特殊的體素,其中體素的大小在垂直方向上是無(wú)限的。通過(guò)PointNet將點(diǎn)聚集成柱狀特征[207],再將其分散回去,構(gòu)建二維BEV圖像進(jìn)行特征提取。PointPillars[117]是一個(gè)開(kāi)創(chuàng)性的工作,介紹了柱體表示,隨后的是[283,68]。
BEV特征圖。鳥(niǎo)瞰特征圖是一種密集的二維表示,其中每個(gè)像素對(duì)應(yīng)一個(gè)特定的區(qū)域,并對(duì)該區(qū)域內(nèi)的點(diǎn)信息進(jìn)行編碼。BEV特征圖可以由體素和柱體投影到鳥(niǎo)瞰圖中獲得,也可以通過(guò)匯總像素區(qū)域內(nèi)的點(diǎn)統(tǒng)計(jì)數(shù)據(jù),直接從原始點(diǎn)云中獲得。
常用的統(tǒng)計(jì)數(shù)據(jù)包括二進(jìn)制占用率[314,313,2]和局部點(diǎn)云高度和密度[40,10,342,3,245,346,8,119]。
基于網(wǎng)格的神經(jīng)網(wǎng)絡(luò)。目前主要有兩種基于網(wǎng)格的網(wǎng)絡(luò):用于BEV特征圖和柱體的2D卷積神經(jīng)網(wǎng)絡(luò),以及用于體素的3D稀疏神經(jīng)網(wǎng)絡(luò)。
與BEV特征圖和柱體2D表示相比,體素包含更多結(jié)構(gòu)化的3D信息。此外,可以通過(guò)3D稀疏網(wǎng)絡(luò)學(xué)習(xí)深度體素特征。
但是,3D神經(jīng)網(wǎng)絡(luò)會(huì)帶來(lái)額外的時(shí)間和內(nèi)存成本。BEV特征圖是最有效的網(wǎng)格表示,它直接將點(diǎn)云投影到2D偽圖像中,而無(wú)需專門的3D算子,如稀疏卷積或柱體編碼。2D檢測(cè)方法也可以在BEV特征圖上無(wú)縫應(yīng)用,無(wú)需太多修改。
基于BEV的檢測(cè)方法通??梢垣@得高效率和實(shí)時(shí)推理速度。然而,簡(jiǎn)單地匯總像素區(qū)域內(nèi)的點(diǎn)統(tǒng)計(jì)信息會(huì)丟失太多的3D信息,與基于體素的檢測(cè)相比,這會(huì)導(dǎo)致檢測(cè)結(jié)果不太準(zhǔn)確。
基于柱體的檢測(cè)方法利用PointNet對(duì)柱體單元內(nèi)的3D點(diǎn)信息進(jìn)行編碼,然后將特征分散回2D偽圖像中進(jìn)行有效檢測(cè),從而平衡3D目標(biāo)檢測(cè)的效果和效率。
選擇合適大小的網(wǎng)格單元是所有基于網(wǎng)格的方法都必須面對(duì)的關(guān)鍵問(wèn)題。通過(guò)將連續(xù)點(diǎn)坐標(biāo)轉(zhuǎn)換為離散網(wǎng)格索引,網(wǎng)格表示本質(zhì)上是點(diǎn)云的離散形式。
在轉(zhuǎn)換過(guò)程中不可避免地會(huì)丟失一些3D信息,其效果很大程度上取決于網(wǎng)格單元的大?。壕W(wǎng)格小,分辨率高,可以保持更細(xì)粒度的細(xì)節(jié),對(duì)于準(zhǔn)確檢測(cè)3D目標(biāo)至關(guān)重要。然而,減小網(wǎng)格單元又會(huì)導(dǎo)致2D網(wǎng)格表示(如BEV特征圖或柱體)的內(nèi)存消耗呈二次方增長(zhǎng)。至于像體素這樣的3D網(wǎng)格表示,問(wèn)題可能會(huì)變得更加嚴(yán)重。
因此,如何平衡更小網(wǎng)格尺寸帶來(lái)的效果和內(nèi)存增加影響效率,仍然是所有基于網(wǎng)格的3D目標(biāo)檢測(cè)方法的一個(gè)挑戰(zhàn)。
基于點(diǎn)-體素的方法采用了一種混合架構(gòu),利用點(diǎn)和體素進(jìn)行3D目標(biāo)檢測(cè)。主要分為兩類:單階段檢測(cè)框架和兩階段檢測(cè)框架。下圖顯示了這兩個(gè)類別的示例及分類:
單階段基于點(diǎn)-體素的3D目標(biāo)檢測(cè)器通過(guò)骨干網(wǎng)絡(luò)中的點(diǎn)-體素和體素-點(diǎn)的變換來(lái)連接點(diǎn)和體素的特征。點(diǎn)包含細(xì)粒度的幾何信息,體素計(jì)算效率高,在特征提取階段將它們結(jié)合在一起更加有利。
代表性工作包括:PVCNN、SPVNAS、SA-SSD、PVGNet等。
兩階段的基于點(diǎn)-體素的3D目標(biāo)檢測(cè)器,在第一階段,使用基于體素的檢測(cè)器來(lái)生成一組3D候選目標(biāo)。在第二階段,首先從輸入點(diǎn)云中采樣關(guān)鍵點(diǎn),然后通過(guò)新的點(diǎn)算子對(duì)關(guān)鍵點(diǎn)進(jìn)行進(jìn)一步細(xì)化。代表工作包括:PV-RCNN、LiDAR R-CNN、Pyramid R-CNN、CT3D等等。
與純體素檢測(cè)方法相比,基于點(diǎn)-體素的3D目標(biāo)檢測(cè)方法在增加推理時(shí)間的同時(shí),可以獲得更好的檢測(cè)精度。
Range圖像是一種密集而緊湊的2D表示,其中每個(gè)像素包含3D深度信息,而不是RGB值。需要針對(duì)Range圖設(shè)計(jì)模型和算子,并要選擇合適的視圖。
Range圖是2D的,可以借鑒2D目標(biāo)檢測(cè)方法,比如LaserNet,還有一些借鑒了U-Net、RPN、R-CNN、FCN、FPN等。
Range圖的像素包含的是距離信息,而非顏色值,因此傳統(tǒng)的2D標(biāo)準(zhǔn)卷積算子無(wú)法完全適用,滑動(dòng)窗口中的像素在3D空間中可能會(huì)相距很遠(yuǎn)。一些工作采用了新算子來(lái)有效地從Range像素中提取特征,包括深度擴(kuò)張卷積[11]、圖算子[26]和元核卷積[67]等。
Range圖是從Range視圖(Range View)中獲取的,RangeView是點(diǎn)云的球面投影。對(duì)于許多基于深度的方法[178,11,67,26]來(lái)說(shuō),直接從Range視圖檢測(cè)3D目標(biāo)是很自然的。
然而,從Range視圖進(jìn)行檢測(cè)不可避免地會(huì)遇到球面投影所帶來(lái)的遮擋和尺度變化問(wèn)題。為了規(guī)避這些問(wèn)題,許多方法嘗試?yán)闷渌晥D來(lái)預(yù)測(cè)3D目標(biāo),例如[219]中利用的圓柱形視圖(CYV),其它方案嘗試Range視圖和鳥(niǎo)瞰視圖(BEV)、點(diǎn)視圖(PV)的組合。
Range視圖由于可以借鑒2D卷積的優(yōu)點(diǎn),做特征提取比較好,但由于遮擋和尺度問(wèn)題,直接在上面做檢測(cè)效果不好,需要結(jié)合BEV來(lái)做檢測(cè),所以現(xiàn)在一般是Range圖做特征提取,BEV上做檢測(cè)。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
變壓器相關(guān)文章:變壓器原理