日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

一文聊聊激光雷達(dá)目標(biāo)檢測的3種方法

2022-03-21 19:57:51·  來源:計算機(jī)視覺之路  
 
基于lidar的目標(biāo)檢測方法可以分成3個部分:lidar representation,network backbone,detection head,如下圖所示。根據(jù)lidar不同的特征表達(dá)方式[1],可以將目標(biāo)

基于lidar的目標(biāo)檢測方法可以分成3個部分:lidar representation,network backbone,detection head,如下圖所示。

圖片

根據(jù)lidar不同的特征表達(dá)方式[1],可以將目標(biāo)檢測方法分成以下4種:基于BEV(bird’s eye view)的目標(biāo)檢測方法,基于camera view的目標(biāo)檢測方法,基于point-wise feature的目標(biāo)檢測方法,基于融合特征的目標(biāo)檢測方法。如下圖所示。

圖片

基于bev的目標(biāo)檢測方法顧名思義是使用bev作為點云特征的表達(dá),其檢測流程如下圖所示,包括3個部分:bev generator,network backbone, detection head。下面詳細(xì)介紹一下這3個部分如何在基于bev的目標(biāo)檢測方法中發(fā)揮作用。

圖片

BEV generator

BEV圖由激光雷達(dá)點云在XY坐標(biāo)平面離散化后投影得到,其中需要人為規(guī)定離散化時的分辨率,即點云空間多大的長方體范圍(Δl*Δw*Δh)對應(yīng)離散化后的圖像的一個像素點(或一組特征向量),如點云20cm*20cm*Δh的長方體空間,對應(yīng)離散化后的圖像的一個像素點。具體關(guān)于bev投影生成策略可以關(guān)注文章:自動駕駛中,激光雷達(dá)點云如何做特征表達(dá)[1]。

在bev generator中,需要根據(jù)Δl*Δw*Δh來生成最后L*W*H大小的bev特征圖,該特征圖是network backbone特征提取網(wǎng)絡(luò)的輸入,因此該特征圖的大小對整個網(wǎng)絡(luò)的效率影響很大,如pointpillar[2]通過對voxelnet[3]中bev generator的優(yōu)化,整個網(wǎng)絡(luò)效率提高了7ms。

Network backbone

網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計需要兼顧性能和效果,一般都是在現(xiàn)有比較大且性能比較好的網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上進(jìn)行修改,可以參照文章:輕量(高效)目標(biāo)檢測網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計[4]。以voxelnet[3]和pointpillar[2]為例,pointpillar[2]以voxelnet[3]為原型,不改變原流程的基礎(chǔ)上,對voxelnet[3]設(shè)計做了以下一些修改,使網(wǎng)絡(luò)效率提高了10多倍,具體如下:

簡化bev中的網(wǎng)絡(luò)結(jié)構(gòu)

voxelnet[3]使用stacked vfe layer,在代碼中使用了2個vfe layer,如下圖所示。

圖片

pointpillar[2]簡化了voxel表達(dá)形式,變成pillar,提高了數(shù)據(jù)生成效率,并且只使用了一個vfe layer,減少了2ms,如下圖所示。

圖片

簡化主網(wǎng)絡(luò)結(jié)構(gòu)

  • 不使用3D卷積

  • 輸入特征圖的channel數(shù)從128減少為64,網(wǎng)絡(luò)耗時減少2.5ms

  • 網(wǎng)絡(luò)主結(jié)構(gòu)所有層channel數(shù)減半,網(wǎng)絡(luò)耗時減少4.5ms

  • Upsampling的channel數(shù)從256減少到128,減輕detection head,網(wǎng)絡(luò)耗時減少3.9ms

  • Tensorrt加速,提速45.5%

Pointpillar[2]在保證網(wǎng)絡(luò)性能提升的前提下,逐步提高網(wǎng)絡(luò)效率,從不同角度優(yōu)化網(wǎng)絡(luò)流程,最后使網(wǎng)絡(luò)效率提高10倍有余。

Detection head

detection head包括兩個任務(wù),即:目標(biāo)分類與目標(biāo)定位,由于bev將點云用圖像的形式呈現(xiàn),同時保留了障礙物在三維世界的空間關(guān)系,因此基于bev的目標(biāo)檢測方法可以和圖像目標(biāo)檢測方法類比:目標(biāo)分類任務(wù)與圖像目標(biāo)檢測方法中目標(biāo)分類任務(wù)沒有差別;而目標(biāo)定位任務(wù)可以直接回歸目標(biāo)的真實信息,但與圖像目標(biāo)檢測方法中目標(biāo)定位任務(wù)不同,該任務(wù)需要給出旋轉(zhuǎn)框。與圖像目標(biāo)檢測方法相同,基于bev的目標(biāo)檢測方法的detection head也分成anchor base的方法和anchor free的方法。

anchor base方法

以voxelnet[3]為例,需要人為設(shè)定anchor的大小,由于bev可以直接回歸真實的目標(biāo)大小,因此anchor也可以根據(jù)真實目標(biāo)大小設(shè)定,如:以下單位為米,l、w、h分別表示anchor的長、寬、高,對于車來說anchor大小可以設(shè)定為la = 3.9,wa = 1.6,ha = 1.56,對于人la = 0.8,wa = 0.6,ha = 1.73,對于騎行者la =1.76,wa = 0.6,ha = 1.73,且對于每種anchor,設(shè)置了θa=0°和90°兩種角度。由于目標(biāo)有各種角度,因此為了得到更準(zhǔn)確的角度回歸,anchor的角度設(shè)置可以在[0°,180°)進(jìn)行等間隔采樣,獲得更多不同角度的anchor,提高回歸精度?;貧w誤差的計算如下圖所示。

圖片

anchor free方法

典型代表是pixor[5],對于bbox的回歸,如下圖所示,對于正樣本的紅點p(x,y),需要回歸如下信息:{cos(θ), sin(θ), dx, dy, w, l},其中θ為障礙物偏角,dx、dy分別為p點相對障礙物中心點的偏移,w、l是障礙物大小的表達(dá)。沒有anchor,對目標(biāo)的回歸是不是簡單了很多。

圖片

以上為基于bev的目標(biāo)檢測方法的簡單介紹,該方法在目前的自動駕駛的3D目標(biāo)檢測方案中應(yīng)用較廣。

Camera view generator

camera view圖是將每圈激光線拉成直線再按行累積而成,因此也稱為range view,其中投影圖的高為激光線數(shù),寬為lidar掃描一圈的點數(shù),如: 64線激光雷達(dá),水平角分辨率為0.2°,生成的camera view的圖大小為64*1800。camera view相對bev圖小很多,因此基于camera  view的方法效率都較高。具體投影圖的生成策略可以關(guān)注文章:自動駕駛中,激光雷達(dá)點云如何做特征表達(dá)[2]。camera view效果如下圖。

圖片

Network backbone

網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計要依據(jù)任務(wù)需求,基于camera view的目標(biāo)檢測方法,多是以分割任務(wù)為主,因此網(wǎng)絡(luò)結(jié)構(gòu)大都是encode+decode結(jié)構(gòu),如下圖1所示。因此有關(guān)提高分割效果的網(wǎng)絡(luò) 設(shè)計思想都可以在此使用,如圖2中使用不同大小的dilation rate的卷積獲得不同感受野的特征表達(dá),如圖3使用global attention增加上下文信息。更多分割增強模塊,在后面會專門寫一篇文章介紹。

圖片

圖1 ecode+decode

圖片

圖2 不同dilate rate卷積

圖片

圖3 global attention

Detection head

基于camera view的目標(biāo)檢測方法有兩種輸出方式表達(dá),一種是純分割區(qū)域,另一種是分割與檢測框。

純分割區(qū)域表達(dá)

純分割的輸出是基于camera view的模型最直接、最好的一種輸出。在原始3D點云中,尤其是遠(yuǎn)處的點,點與點之間的距離都較遠(yuǎn),如bev投影圖,造成點特征提取時很難融入上下文信息。而camera view投影圖將點云中的點聚攏,每個點都可以很方便的獲得更大范圍的上下文信息,這種投影方式更適合分割任務(wù)。如在SqueezeSeg[3]和PointSeg[4]兩篇文章中,都直接將分割作為最終任務(wù)目標(biāo),但是為了得到更好的聯(lián)通區(qū)域,需要增加較多的后處理。如在SqueezeSeg[3],在模型輸出后又增加了crf提高分割效果。在PointSeg[4]中,使用RANSAC將異常點剔除,如下圖,第一行為模型輸入,第二行為模型直接的預(yù)測輸出,第三行為將模型輸出的camera view圖反投影得到的點云圖,第四行為經(jīng)過ransac后再反投影得到的點云圖,對比第三行和第四行對應(yīng)的圖可以看出,ransac有效的抑制很多離目標(biāo)較遠(yuǎn)的點。

圖片

分割與檢測表達(dá)

分割任務(wù)對于基于camera view的模型相對簡單,但是檢測框的回歸并不容易。camera view投影圖增加了點云中點的上下文信息,但也將原本在3D空間分離的目標(biāo)拉近,引入了遮擋與目標(biāo)尺度變化,然而點云投影圖又不像真實的圖像那樣有很豐富的紋理信息,造成了camera view圖像很難做實例分割與目標(biāo)框回歸,因此,檢測框的回歸需要增加一些額外操作來實現(xiàn)。

圖片

在lasernet[5]中,對于目標(biāo)框中的點(x,y)需要回歸6個信息,如上圖所示,Box Parameters為6,包括:該點相對中心點的偏移(dx,dy), 相對旋轉(zhuǎn)角度 (ωx,ωy) = (cosω,sinω),以及框大小 (l,w),從而可以通過下述公式計算得到真正的目標(biāo)框中心點bc以及旋轉(zhuǎn)角φ,其中θ為該點在點云中的方位角,Rθ為以θ為旋轉(zhuǎn)角的旋轉(zhuǎn)矩陣。

圖片

另外,由于對每個點的預(yù)測存在噪聲,而后又在bev投影圖中使用mean shift聚類方法得到更準(zhǔn)確的目標(biāo)框。

由于3D點云在做camera view投影的時候丟失了原來的3D結(jié)構(gòu)信息,引入了圖像中的尺度變化和遮擋兩個問題,因此少有方法直接在這種模式下作3D目標(biāo)檢測,一般需要在網(wǎng)絡(luò)輸出基礎(chǔ)上做比較多的后處理。但是camera view的表達(dá)模式,極大的增加了遠(yuǎn)處點云的上下文信息,也是一種極好的提高點云特征表達(dá)能力的方式,后續(xù)在融合感知方法中會再介紹。

Point-wise

基于lidar的目標(biāo)檢測方法迎來了第3大類方法的介紹,前面已經(jīng)介紹過基于BEV(bird’s eye view)的目標(biāo)檢測方法[1],基于camera/rang view的目標(biāo)檢測方法[2],這兩種方法在自動駕駛的實際運用中都很常見,算是比較主流的方法。這兩種方法研究的也比較早,相對成熟一些。而point-wise目標(biāo)檢測方法自pointnet[3]之后,才有較多的研究文章用其解決自動駕駛中有關(guān)3D目標(biāo)檢測問題,在此之前,大都用來解決基于室內(nèi)場景或者單個全掃描目標(biāo)密集點云的分割、檢測、場景理解的問題,其中研究有關(guān)RGB-D的問題最多。

這里我們將關(guān)注點放在如何用point-wise feature來解決自動駕駛的目標(biāo)檢測問題上。自2017年pointnet[3]之后出現(xiàn)的3D目標(biāo)檢測相關(guān)文章中,50%都出自香港中文大學(xué),其中一部分來自商湯科技自動駕駛相關(guān)部門,如PointRcnn[4]、Part aware and aggregation[5]、PV Rcnn[6],另一部分來自騰訊優(yōu)圖實驗室賈佳亞老師團(tuán)隊,同樣也是自動駕駛相關(guān)業(yè)務(wù)方向,如IPoD[7]、Fast PointRcnn[8]、STD[9]、3DSSD[10]。這里面除了3DSSD[10]方法為one-stage detector,其他都是two-stage detector,而3DSSD[10]主打高效,從而也可以看出刷榜還得靠two-stage detector。

我們從如下圖所示的3個部分(lidar representation,network backbone,detection head),來介紹一下point-wise方法。其中l(wèi)idar represention部分是直接使用點云做輸入,即n*4的點集,不做單獨介紹,下面重點介紹一下其他兩個部分。

圖片

Network backbone

提取點特征一般有兩種方式:基于pointnet[3]/pointnet++[11]的點特征、voxel特征。如圖4:在STD[9]中,組合了兩種方式。如圖5,在PointRcnn[4]中,僅使用了pointnet++[11]提取點特征

圖片

圖4 STD[9]特征提取方式

圖片

圖5 PointRcnn中特征提取方式

在使用pointnet++[11]提取特征時,包含兩個重要模塊,即set abstraction(即,SA)和feature propagation(即,F(xiàn)P),如下圖6所示其中SA是特征encoder過程,通過點云篩選與特征提取逐步減少點云點數(shù),提高特征表達(dá)能力與感受野,F(xiàn)P是特征decoder過程,通過點云上采樣,獲得稠密的點云表達(dá),并級聯(lián)SA過程的特征,提高最終的點云特征表達(dá)能力。

圖片

圖6 pointnet++特征表達(dá)

在3DSSD[10]中,為了提高模型效率,去掉了耗時比較嚴(yán)重的FP模塊,由于SA過程只篩選了一部分點做特征表達(dá),對目標(biāo)檢測的召回影響很大,尤其對點云比較稀疏的遠(yuǎn)處的目標(biāo),影響更大,因此3DSSD[10]在D-FPS的基礎(chǔ)上,提出了F-FPS,即通過點的語義信息來做點的篩選,保留更多的正樣本的點,保證最終的目標(biāo)召回率。

Detection head

detection head除了完成目標(biāo)分類與目標(biāo)定位的任務(wù),在two-stage detector中,還需要實現(xiàn)roi pooling,為第二階段提供實例級別的特征。

對于目標(biāo)定位的任務(wù),同樣有anchor-base方法和anchor-free方法。在STD[9]中,為應(yīng)對有旋轉(zhuǎn)角的box回歸,提出了球形anchor,由于anchor沒有角度的變化,直接將anchor數(shù)量減少50%,提高了計算效率。其他方法大都是anchor-free的方法,關(guān)于anchor-free的方法,推薦讀一下kaiming大神的voteNet[13],比較好理解。

關(guān)于roi pooling,一般是針對單個目標(biāo),再次提取更豐富、更具表達(dá)能力的特征,因此在不同論文中,根據(jù)實例提取特征方式的不同,提出了不同的roi pooling方法,如在STD[9]中,提出了PointsPool,在Part aware and aggregation[5]中,提出了Roi aware Point Cloud Pooling,在pv-rcnn[6]中提出了Roi grid Pooling。下面分別介紹一下。

PointsPool[9]

如下圖7所示,分成三個步驟

圖片

圖7 PointsPool[9]

  1. 特征提?。涸趐roposal中隨機(jī)篩選N個點,1)獲得第一階段的點特征;2)獲得N個點的坐標(biāo),并用如下圖5所示的canonical transformation得到與原坐標(biāo)系無關(guān)的坐標(biāo)特征。兩種特征聯(lián)合在一起,作為proposal中點的特征表達(dá)

  2. Voxel表達(dá):將不同大小的proposal,通過voxel統(tǒng)一化到相同大小:dl = 6,dw = 6,dh = 6

  3. 使用VFE layer提取最終特征

圖片

圖8 canonical transformation

Roi aware Point Cloud Pooling[5]

整體流程如下圖9所示,與STD[9]中的pooling方法類似,首先將proposal分割成固定大小的voxel,如14×14×14,然后再提取voxel特征表達(dá):

  • RoIAwareMaxPool:使用的是第一階段輸出的point-wise semantic part feature,在voxel中計算max pooling

  • RoIAwareAvgPool:使用的是proposal中經(jīng)過canonical transformation點坐標(biāo)特征和segmentation score,在voxel中計算avg pooling

最后將兩組特征聯(lián)合作為proposal的pooling特征。

圖片

圖9 Roi aware Point Cloud Pooling

Roi grid pooling[6]

與上面兩種pooling方法不同的是,并沒有將proposal通過voxel得到固定大小的特征圖,而是根據(jù)pv-rcnn[6]中提出的key point信息,將proposal用6*6*6=216個grid points表達(dá),grid points是從proposal中的key points均勻采樣獲得,且RoI-grid point features提取過程和key point feature提取過程是相似的。簡單來說就是以grid point為中心,r為半徑的區(qū)域內(nèi)提取不同尺度、不同感受野的特征,最后在使用2層的MLP網(wǎng)絡(luò)獲得最終的特征表達(dá),如圖10所示。

圖片

圖10 Roi grid point feature extraction

目前基于point-wise feature的目標(biāo)檢測方法還處于研究階段,效率無法保證,精度還未在真實自動駕駛車上測試,但由于該方法直接從點云提取特征,極大的保留了點云的原始信息,比較有潛力得到更好的效果。

參考文獻(xiàn)

1、PointPillars: Fast Encoders for Object Detection from PointClouds

2、VoxelNet: End-to-End Learning for Point Cloud based 3D Object Detection

3、PIXOR: Real-time 3D Object Detection from Point Clouds

4、Multi-View 3D Object Detection Network for Autonomous Driving

5、YOLO3D: End-to-end real-time 3D Oriented Object Bounding Box Detection from LiDAR Point Cloud

6、SqueezeSeg: Convolutional Neural Nets with Recurrent CRF for Real-Time Road-Object Segmentation from 3D LiDAR Point Cloud

7、PointSeg: Real-Time Semantic Segmentation based on 3D LiDAR Point Cloud

8、LaserNet: An Ef?cient Probabilistic 3D Object Detector for Autonomous Driving

分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25