趙東宇,趙樹恩
(重慶交通大學(xué)機電與車輛工程學(xué)院,重慶 400074)
自動駕駛周圍場景的精準(zhǔn)感知是自動駕駛系統(tǒng)決策規(guī)劃的基礎(chǔ)。三維目標(biāo)檢測主要是通過圖像、點云及多維數(shù)據(jù)融合等方式獲取自動駕駛周圍場景靜動態(tài)目標(biāo)的位置、幾何信息和類別信息,以實現(xiàn)自動駕駛車輛對行駛環(huán)境的準(zhǔn)確認(rèn)知,進而做出最優(yōu)的決策規(guī)劃和運動控制。
三維目標(biāo)檢測可以有效解決檢測過程中目標(biāo)遮擋、深度信息缺乏等問題,且能表征目標(biāo)之間的空間關(guān)系。目前三維目標(biāo)檢測常用方法主要有圖像、點云及多維數(shù)據(jù)融合等方法。Li 等[1]提出高效三維檢測框架GS3D,通過單目相機獲取的圖像進行三維物體檢測,基于Faster R-CNN[2]增加了方向預(yù)測分支,預(yù)測目標(biāo)框和觀測方向。Li 等[3]提出Stereo RCNN,采用權(quán)重共享網(wǎng)絡(luò)提取左右圖像的特征,對二維RoI 和三維模板進行相似性匹配,通過Mask RCNN[4]預(yù)測語義關(guān)鍵點,最后根據(jù)二維檢測框和三維角點投影關(guān)系的約束來預(yù)測三維邊界框。但該類方法僅以圖像為輸入,獲取圖像的顏色屬性、紋理信息,依賴先驗信息來設(shè)計模型,導(dǎo)致單目、立體視覺三維檢測的精度不高,缺乏深度信息。
基于點云的目標(biāo)檢測通常是將點云轉(zhuǎn)化為二維視圖、體素或直接運用原始點云進行特征信息提取。Bewley 等[5]根據(jù)目標(biāo)距離遠近,運用范圍條件膨脹層RCD 來連續(xù)調(diào)整卷積核膨脹率從而處理尺度變化,再采用3D R-CNN 優(yōu)化3D 候選框來緩解遮擋問題。這類方法在生成二維視圖時可能會忽略壓縮軸上的大量信息。
李悄等[6]以SECOND[7]網(wǎng)絡(luò)為基礎(chǔ),提出一種采用稀疏3D 卷積的三維目標(biāo)檢測方法Reinforced SECOND,將堆疊三重注意力機制引入體素特征編碼網(wǎng)絡(luò),并設(shè)計了殘差稀疏卷積中間網(wǎng)絡(luò),提升了模型檢測速度。Hu 等[8]針對點云密度的變化,提出了一種端到端三維檢測體系,通過體素質(zhì)心定位三維稀疏卷積主干的體素特征,利用核密度估計和點密度位置編碼器對體素特征進行聚合。張名芳等[9]運用體素占用編碼點云,通過構(gòu)建金字塔主網(wǎng)絡(luò)結(jié)構(gòu)傳遞語義信息和位置信息,利用ROI Align 層對齊不同尺度特征圖,實現(xiàn)鳥瞰圖(bird’s eye view,BEV)車輛目標(biāo)檢測。該類方法會受到體素比例劃分的影響,在全局點云離散化過程中的信息丟失降低了細粒定位精度,掩蓋了原始數(shù)據(jù)的自然不變性。
Shi 等[10]提出一種基于PointNet++[11-12]的PointRCNN 算法,運用PointNet++將場景的點云分割為前景點和背景點,自上而下生成三維候選框,結(jié)合建議框中規(guī)范化的點集坐標(biāo)與全局語義特征,進行三維框回歸和置信度預(yù)測。Yang 等[13]提出3D-SSD算法去除了 PointNet++中較為耗時的FP 模塊和優(yōu)化模塊,采用一種融合歐式距離和特征距離的最遠點采樣法,通過結(jié)合語義信息排除大量背景點。此類方法直接處理原始點云,造成大量信息冗余,目標(biāo)點云的采樣策略導(dǎo)致了關(guān)鍵點周圍存在較多背景點,犧牲了實時性。
基于多維數(shù)據(jù)融合的三維檢測方法充分利用了圖像與點云的數(shù)據(jù)優(yōu)勢。謝德勝等[14]提出了PointRGBNet,利用點云投影到圖像生成的六維RGB 點云作為輸入,讓網(wǎng)絡(luò)直接學(xué)習(xí)六維 RGB 點云特征,輸出目標(biāo)的三維檢測結(jié)果。Wu等[15]提出了一種多模態(tài)框架SFD(sparse fuse density,SFD),利用深度圖補全生成偽點云,并設(shè)計了一種高效的偽點云特征提取器,運用3D-GAF(3D grid-wise attention fusion)策略充分融合了不同類型點云的信息。徐晨等[16]提出一種基于F-PointNet[17]融合稀疏點云補全的目標(biāo)檢測算法,運用編碼器-解碼器機制構(gòu)建點云補全網(wǎng)絡(luò),將稀疏點云補全為能夠傳遞幾何信息的密集點云,進行點云檢測。張旭豪[18]設(shè)計了多尺度上下文信息聚合的深度補全算法,結(jié)合注意力機制與全局平均池化構(gòu)建了編碼器,基于卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建了解碼器,實現(xiàn)圖像邊緣區(qū)域深度補全,再結(jié)合原始點云進行目標(biāo)檢測。該類方法所依賴的特征提取網(wǎng)絡(luò)、二維檢測算法的精度不高,對于被遮擋程度較大的目標(biāo)易出現(xiàn)漏檢。
綜上,盡管有許多學(xué)者已對車輛和行人等目標(biāo)進行了三維檢測研究,并取得了較豐碩的成果,但仍存在以下問題:(1)在強遮擋環(huán)境下,基于圖像的檢測易受物體間聚集的影響,并缺乏深度信息。(2)基于原始點云的方法完整地保留了點云的原始分布信息,但在大規(guī)模點云中提取目標(biāo)關(guān)鍵點的過程缺乏指導(dǎo)性,搜索范圍過大,影響自動駕駛車輛對周圍目標(biāo)檢測的實時性。
因此,為有效解決目標(biāo)檢測深度信息的缺乏,且在保留原始點云信息的同時減少點云全局分割的計算復(fù)雜度,進而提升對強遮擋目標(biāo)的三維檢測精度與實時性,本文以截體點網(wǎng)F-PointNet 映射策略為基礎(chǔ),提出一種級聯(lián)YOLOv7[19]的三維目標(biāo)檢測模型,通過將二維檢測區(qū)域縱向擴展至三維點云空間,實現(xiàn)對復(fù)雜環(huán)境中周圍車輛和行人等交通目標(biāo)的實時準(zhǔn)確檢測、定位與理解。圖1所示為級聯(lián)YOLOv7的三維目標(biāo)檢測框架。
圖1 級聯(lián)YOLOv7的三維目標(biāo)檢測框架
首先運用YOLOv7 快速檢測目標(biāo)的二維感興趣區(qū)域RoI和類別,進而構(gòu)建YOLOv7截體估計模型以提取二維RoI 對應(yīng)的目標(biāo)點云。然后運用基于PointNet++的點云分割網(wǎng)絡(luò)對截體中的目標(biāo)點云進行分割,剔除背景點云。最后通過非模態(tài)三維邊界估計網(wǎng)絡(luò),在自動駕駛場景下輸出周圍目標(biāo)的長寬高、長寬高殘差、航向角和航向角殘差等信息,同時利用輕量級回歸點網(wǎng)(light-weight regression PointNet,T-Net)修正算法,估計并修正目標(biāo)的真實質(zhì)心坐標(biāo),不斷精確目標(biāo)的三維參數(shù)。
本文的主要貢獻:
(1)在復(fù)雜交通環(huán)境下,運用YOLOv7 二維檢測算法對車輛、行人、騎車人進行快速檢測,并在縱向上拓展YOLOv7 的檢測深度,解釋了二維圖像中各目標(biāo)之間的自然分離狀態(tài),并回歸了更豐富的尺寸和航向信息。
(2)構(gòu)建了一種級聯(lián)YOLOv7 的三維點云目標(biāo)檢測模型,降低了三維檢測算法PointNet++的點云搜索范圍,提升了傳統(tǒng)F-PointNet 框架的檢測速度與精度。
YOLOv7 主要運用了高效聚合網(wǎng)絡(luò)ELAN、重參數(shù)化卷積、基于級聯(lián)的模型縮放等策略提取目標(biāo)特征,進而在二維圖像上精確提取目標(biāo)感興趣區(qū)域RoI,由Backbone 主干網(wǎng)絡(luò)和Head 層RoI 提取網(wǎng)絡(luò)組成。輸入層將交通場景圖像統(tǒng)一為640×640×3 大小。圖2 為基于YOLOv7 的二維目標(biāo)RoI 提取流程。
圖2 基于YOLOv7的二維RoI提取流程
如圖2 所示,Backbone 網(wǎng)絡(luò)由CBS、MPC-B、ELAN、SPPCSPC 等模塊連接構(gòu)成。CBS 由1 個Conv層、1 個BN 層、1 個Silu 激活函數(shù)構(gòu)成,提取不同尺度的圖像特征。MPC-B 與MPC-H 在CBS 基礎(chǔ)上增加最大池化分支,上分支通過最大池化進行下采樣,再經(jīng)過1×1 的CBS 減半圖像通道數(shù),下分支經(jīng)過1×1 CBS 減半圖像通道數(shù),再連接3×3 步長為2 的CBS下采樣,連接兩分支得到擴展下采樣結(jié)果,提高網(wǎng)絡(luò)的目標(biāo)特征提取能力。
ELAN與ELAN-H將特征圖劃分為兩個部分,然后基于跨階段局部網(wǎng)絡(luò)(cross stage partial networks,CSPNet)將其合并,結(jié)合分割梯度流來使梯度流通到不同網(wǎng)絡(luò)路徑進行傳播。通過切換級聯(lián)和轉(zhuǎn)換的步驟,將傳播的梯度信息差異化,解決因梯度信息重復(fù)而造成的計算負荷大的問題,使主干網(wǎng)絡(luò)能學(xué)習(xí)到被遮擋目標(biāo)更多的特征。ELAN 有兩條分支,上分支是1×1 CBS 做通道數(shù)變化,下分支連接了1 個1×1的CBS、4個3×3 CBS做特征提取,最后把4個特征整合得到最終的特征提取結(jié)果,ELAN-H 則是把每個CBS提取的特征都整合起來。SPPCSPC 模塊中,SPP通過3 個不同尺度的最大池化增大感受野以處理復(fù)雜行駛環(huán)境中尺寸不同的目標(biāo),CSP 將特征分為兩部分,一部分連接1×1 CBS,另一部分進行SPP 結(jié)構(gòu)的處理,將計算量減半,最后運用Cat 操作將各分支各尺度的特征進行融合。
最終在Head 提取層中將所有特征輸入到由BN層和Conv 層組成的RepConv 層進行特征整合,準(zhǔn)確提取車輛、行人、騎車人等目標(biāo)在圖像中的RoI。
為準(zhǔn)確提取YOLOv7 所確定的目標(biāo)RoI 在三維空間對應(yīng)的點云,將RoI 左上、右下點坐標(biāo)形成的近平面與激光雷達傳感器的遠平面相連接,成像為一個包含目標(biāo)點云在內(nèi)的截體,構(gòu)建YOLOv7 截體估計模型。由于估計模型以不同傳感器的信息作為輸入,目標(biāo)的位置存在多樣性,導(dǎo)致截體有多種朝向。因此,通過圖3(a)→圖3(c)坐標(biāo)轉(zhuǎn)換對截體方向進行標(biāo)準(zhǔn)化,增加截體的旋轉(zhuǎn)與平移不變性以加強模型對多目標(biāo)檢測的適應(yīng)性。
圖3 截體估計模型坐標(biāo)轉(zhuǎn)換
圖3(a)→圖3(b)將相機坐標(biāo)系繞YC軸旋轉(zhuǎn)至2.1 節(jié)中輸出的目標(biāo)點云質(zhì)心方向;圖3(b)→圖3(c)將坐標(biāo)中心沿ZC軸平移至目標(biāo)點云的質(zhì)心,相機坐標(biāo)系與掩膜點云坐標(biāo)系轉(zhuǎn)換關(guān)系為
式中:XC、YC、ZC為相機坐標(biāo)系下目標(biāo)的位置;XM、YM、ZM為掩膜點云坐標(biāo)系下的點云坐標(biāo);圖3(a)→圖3(b)旋轉(zhuǎn)矩陣Rf為
式中:α、β、γ分別為繞XC、YC、ZC軸旋轉(zhuǎn)角度,β為點云質(zhì)心O與圖像平面法線的夾角;根據(jù)KITTI 標(biāo)定矩陣,取α=0,γ=0;圖3(b)→圖3(c)平移矩陣為
各目標(biāo)相機坐標(biāo)與圖像坐標(biāo)關(guān)系為
坐標(biāo)系轉(zhuǎn)換后,根據(jù)圖像坐標(biāo)與像素坐標(biāo)換算關(guān)系,最終求得在掩膜點云坐標(biāo)系下每個截體中目標(biāo)點云坐標(biāo)為
式中:(u,v)表示像素坐標(biāo)系中通過YOLOv7 檢測出的目標(biāo)像素的行列值;(u0,v0)為像素坐標(biāo)系中點坐標(biāo);dx、dy表示像素的物理尺寸;D*是點云深度值;fc表示相機焦距。
截體估計模型將相機坐標(biāo)系與激光雷達坐標(biāo)系進行了轉(zhuǎn)換,統(tǒng)一計算了截體方向,根據(jù)二維RoI 映射的三維截體,提取像素級目標(biāo)在三維空間中的點云坐標(biāo),目標(biāo)點云提取結(jié)果如圖4所示。
圖4 目標(biāo)點云提取結(jié)果
圖4(a)為YOLOv7 所確定的RoI,通過該區(qū)域估計出對應(yīng)的截體,圖4(b)為各個截體內(nèi)所有的點云,包含目標(biāo)點云與背景點云。結(jié)果表明,截體估計模型能有效拓展二維RoI 維度,在大規(guī)模點云中提取目標(biāo)點云,并排除目標(biāo)周圍大量非相關(guān)原始點云。為增加對截體中目標(biāo)類別的識別精度,將二維RoI中目標(biāo)的類別進行one-hot編碼,使后續(xù)目標(biāo)點云分割網(wǎng)絡(luò)可以在一個特定的目標(biāo)類別下進行實例分割。
F-PointNet 結(jié)構(gòu)主要以二維RoI 劃定三維點云區(qū)域,然后運用點云分割網(wǎng)絡(luò)進一步實現(xiàn)三維目標(biāo)檢測。在此基礎(chǔ)上,級聯(lián)YOLOv7 的三維目標(biāo)檢測算法架構(gòu)如圖5所示。
圖5 級聯(lián)YOLOv7的三維目標(biāo)檢測算法架構(gòu)
圖5 中級聯(lián)模型的主體由目標(biāo)點云提取、目標(biāo)點云分割、目標(biāo)三維邊框檢測3 部分構(gòu)成。M=[(x1,y1,z1),(x2,y2,z2),…,(xM,yM,zM)]為截體中的點云集合,包含前景目標(biāo)點云與其他背景點云等多種點云信息;N為經(jīng)過點云分割后的目標(biāo)點云集合N?M;D=(x,y,z,s)為每個點的特征維度,s為反射強度;k為YOLOv7 目標(biāo)檢測網(wǎng)絡(luò)輸出的目標(biāo)類別數(shù)量。
目標(biāo)點云分割模塊用于分割截體內(nèi)部的目標(biāo)點云與背景點云。以車輛、行人、騎車人的點云三維模型為數(shù)據(jù)集,通過深度學(xué)習(xí)的方式訓(xùn)練PointNet++網(wǎng)絡(luò)。首先通過構(gòu)建分層點集特征提取結(jié)構(gòu),運用最遠點采樣算法(furthest point sampling algorithm,F(xiàn)PS)在截體內(nèi)部點云M中均勻采樣M-t個中心坐標(biāo),t≠0。然后以中心點為球心,取半徑為R的球形域,將整個截體點云劃分為不同的局部點云,每個局部點云包括K個點,輸出一組大小為(M-t)×K×(d+C')的點集,表示(M-t)×K個具有d維坐標(biāo)和C'維特征的點云。最后提取各局部點云中目標(biāo)的淺層特征,沿著層次結(jié)構(gòu)逐步抽象出更大范圍的區(qū)域,直到提取到點集的全局多尺度特征,使得PointNet++分割網(wǎng)絡(luò)能夠更精確地分割出目標(biāo)點云。針對大量點云密度分布不均勻情況,通過多尺度分組(multi scale grouping,MSG)和多分辨率分組(multi resolution grouping,MRG)增加對于密集和稀疏點云特征提取的魯棒性。
目標(biāo)點云分割網(wǎng)絡(luò)能在排除背景點云同時,輸出掩膜點云坐標(biāo)系下各個目標(biāo)點云的坐標(biāo)、目標(biāo)點云質(zhì)心坐標(biāo)O和目標(biāo)概率分?jǐn)?shù)Pm,為邊框檢測和類型識別提供依據(jù)。目標(biāo)點云分割過程如圖6所示。
圖6 目標(biāo)點云分割結(jié)果
圖6 表明,PoingtNet++在較小的截體內(nèi)可有效提取以采樣點為中心的局域特征,并正確分割出完整的目標(biāo)點云。較小的截體意味著無須再進行全局點云搜索,具有較好的計算效率,充分運用原始點云的特征也可使提取的局部特征較為有效,分割出的目標(biāo)點云更精確。
由于車載激光雷達獲得的點云均來自于目標(biāo)的表面反射,目標(biāo)點云質(zhì)心僅根據(jù)目標(biāo)表面點云所計算,因此為消除目標(biāo)點云質(zhì)心位置與目標(biāo)內(nèi)部質(zhì)心之間的坐標(biāo)偏差,運用T-Net 計算目標(biāo)的真實質(zhì)心,將掩膜點云坐標(biāo)系轉(zhuǎn)換為三維目標(biāo)坐標(biāo)系,使邊框檢測模塊可通過目標(biāo)內(nèi)部質(zhì)心更準(zhǔn)確地計算目標(biāo)的物理信息。T-Net結(jié)構(gòu)如圖7所示。
圖7 輕量級回歸點網(wǎng)T-Net
圖中k為one-hot 編碼的目標(biāo)類別信息,將N個目標(biāo)點云坐標(biāo)和目標(biāo)點云質(zhì)心坐標(biāo)O=(xM,yM,zM)作為T-Net 輸入,其中O∈N。通過隱藏層神經(jīng)元數(shù)量為(128,256,512)的多層感知機(multi layer perceptron,MLP)監(jiān)督學(xué)習(xí),輸出目標(biāo)點云質(zhì)心坐標(biāo)距離真實質(zhì)心坐標(biāo)的殘差μ=(r1,r2,r3),通過α-μ,修正得到在三維目標(biāo)坐標(biāo)系下各點云的坐標(biāo)以及真實的質(zhì)心坐標(biāo),如圖8所示。
圖8 T-Net坐標(biāo)修正
將各點反射強度s和真實質(zhì)心O*坐標(biāo)共同輸入基于PointNet++的非模態(tài)三維邊界估計網(wǎng)絡(luò),如圖9所示。
圖9 非模態(tài)三維邊界估計網(wǎng)絡(luò)
針對已分割出的目標(biāo)點云,圖9 邊界估計網(wǎng)絡(luò)首先對點云集合進行單尺度分組(single scale grouping,SSG),然后通過集合抽樣層(set abstraction,SA)提取不同鄰域球中的點集特征,使得網(wǎng)絡(luò)能夠在遠距離點云稀疏的情況下正確回歸目標(biāo)的三維幾何邊界。最終邊界估計網(wǎng)絡(luò)通過全連接層輸出三維參數(shù)總量F:
式中:3為T-Net回歸之后對于質(zhì)心坐標(biāo)O*的殘差回歸數(shù);NS是不同尺寸的三維錨框個數(shù),每個錨框有置信度P*以及邊界框L、W、H的殘差回歸4 個維度;NH代表不同朝向的錨框,有置信度P**和航向角θ兩個維度。邊界預(yù)測過程中,邊界估計網(wǎng)絡(luò)預(yù)測的質(zhì)心殘差O3Dbox、上層T-Net 回歸的質(zhì)心殘差μ和目標(biāo)點云質(zhì)心O通過O*=O3Dbox+Δμ+ΔO不斷修正,更新目標(biāo)真實質(zhì)心O*。
級聯(lián)網(wǎng)絡(luò)的目的是獲取目標(biāo)的類別以及三維邊界框的位置、大小和航向角。綜合損失函數(shù)LD定義如下:
式中:Lm-seg為PointNet++對截體點云進行語義分割的損失;Lc1-reg為T-Net 的質(zhì)心平移損失;Lc2-reg為非模態(tài)邊界估計網(wǎng)絡(luò)的質(zhì)心回歸損失;Lh-cls和Lh-seg為預(yù)測航向角的分類損失和分割損失;Ls-cls和Ls-seg為三維邊界框尺寸的分類損失和分割損失;Lh-cls、Ls-cls使用Softmax 交叉熵損失,回歸使用L1 范數(shù)損失;φ=1 和ω=10。為對三維邊界框回歸的參數(shù)精度進行優(yōu)化,引入Lcorner角度損失,定義8 個預(yù)測角和真實角的距離損失:
實驗環(huán)境配置如下:級聯(lián)模型程序采用python 3.6 編寫,Tensorflow1.4 環(huán)境下完成訓(xùn)練。硬件條件:CPU 為銳龍7 5800X 8C16T,內(nèi)存 為Kingston 16GB,GPU為NVIDIA Quadro RTX4000 8G。
級聯(lián)模型采用COCO 預(yù)訓(xùn)練權(quán)重在KITTI 數(shù)據(jù)集上進行遷移學(xué)習(xí)。KITTI包含3 712幀訓(xùn)練集以及帶有真實值的3 769幀驗證集,類別包含車輛、行人、騎車人。驗證模型時按照KITTI 中標(biāo)注的目標(biāo)截斷和遮擋程度參數(shù),將目標(biāo)劃分為簡單、中等、困難3個級別。
訓(xùn)練時運用Adam 優(yōu)化器;初始學(xué)習(xí)率0.001,運用指數(shù)衰減法降低學(xué)習(xí)率,每20 000 次迭代衰減50%,對于每一個樣本從點云截體中抽取2 048 個點用于訓(xùn)練。設(shè)置batch size=24,epoch=200,邊界交并比閾值為0.7。
為驗證級聯(lián)模型對于目標(biāo)的檢測性能,選擇驗證集中不同遮擋程度的場景進行實驗。級聯(lián)模型在多個復(fù)雜行駛場景中的檢測過程如圖10所示。
圖10 級聯(lián)YOLOv7三維檢測模型輸出過程
圖10(a)是YOLOv7 目標(biāo)RoI 提取結(jié)果。圖10(b)是PointNet++目標(biāo)點云的檢測結(jié)果,下方白線為目標(biāo)航向。圖10(c)是級聯(lián)模型融合圖像與點云后最終的三維檢測結(jié)果,后端輸出包含航向、目標(biāo)長寬高。結(jié)果表明:級聯(lián)YOLOv7 后,模型檢測結(jié)果非常接近真實邊界。級聯(lián)融合策略使檢測網(wǎng)絡(luò)具有更高的魯棒性,對于尺度較小且被遮擋的目標(biāo),能有效檢測并補充其完整幾何信息,彌補了基于圖像的目標(biāo)檢測在部分遮擋和嚴(yán)重遮擋工況下對目標(biāo)的殘缺檢測劣勢。
為驗證級聯(lián)模型相較于其他三維目標(biāo)檢測算法,對在復(fù)雜交通環(huán)境下被強遮擋的目標(biāo)是否能進行更加實時且有效的檢測并補全其信息,設(shè)定交并比(intersection over union,IoU)為級聯(lián)模型優(yōu)劣的評估標(biāo)準(zhǔn),進一步計算查準(zhǔn)率Pr-查全率Re曲線(precision-recall curve,P-R)下的包圍面積可得到平均精度(average precision,AP)。
式中:NTP、NFP分別是針對當(dāng)前目標(biāo)真實框,IoU大于、小于閾值的數(shù)量;NFN為未檢測出的目標(biāo)數(shù)量。mAP則為類別AP 值的和與所檢測類別個數(shù)之比。為探究模型在足夠高準(zhǔn)確率下的召回率,設(shè)置車輛IoU=0.7,行人和騎車人IoU=0.5。不同難易程度下,級聯(lián)模型對于不同目標(biāo)的檢測結(jié)果P-R曲線如圖11所示。
圖11 級聯(lián)模型檢測結(jié)果P-R曲線
圖11 中,2D 為YOLOv7 的二維RoI 提取結(jié)果。結(jié)果表明,在3 個級別中,車輛檢測準(zhǔn)確率AP 分別為97.27%、96.19%、89.97%;行 人AP 分別為87.52%、83.60%、76.53%;騎車人AP 分別為88.99%、72.87%、70.89%;簡單級別中所有類別平均檢測精度mAP=91.26%;中等級別mAP=84.22%;困難級別mAP=79.13%。且在設(shè)定閾值的約束下,對于驗證集1242×375 尺寸的圖像平均推理速度僅為0.02 s/幀(GPU),即FPS=50。
3D 為級聯(lián)模型的三維檢測結(jié)果,為驗證級聯(lián)模型的精度優(yōu)勢,表1 對比了多種基于不同數(shù)據(jù)類型的三維檢測算法在同一數(shù)據(jù)集下的檢測結(jié)果。
表1 不同算法在KITTI驗證集中的三維檢測精度
表1 結(jié)果表明,相較Point-GNN、Voxelnet、文獻[9]模型等僅以點云為網(wǎng)絡(luò)輸入的算法網(wǎng)絡(luò),級聯(lián)模型在不同復(fù)雜度的交通場景下平均檢測精度提升明顯;相較融合圖像與點云的算法網(wǎng)絡(luò),級聯(lián)模型精度與速度均存在優(yōu)勢,說明級聯(lián)融合策略能夠有效提高網(wǎng)絡(luò)檢測性能。相較基準(zhǔn)網(wǎng)絡(luò)F-PointNet v2耗時縮短了40 ms/幀,說明運用YOLOv7對周圍目標(biāo)進行快速檢測的策略在三維檢測精度足夠高的情況下有效提升了算法的實時性,對于在中等、困難級別的車輛和騎車人,基準(zhǔn)網(wǎng)絡(luò)mAP分別為63.24%、56.87%,級聯(lián)模型mAP分別為72.01%、66.68%,分別提升了8.77%,9.81%,表明模型對遮擋較嚴(yán)重的目標(biāo)檢測精度提升較好,并能準(zhǔn)確檢測其幾何信息,源于YOLOv7 提升了特征提取策略,更好地提取了小尺度特征,使得PointNet++分層點集結(jié)構(gòu)可以更完整提取出更多訓(xùn)練特征,但由于單階段二維RoI 提取網(wǎng)絡(luò)不存在目標(biāo)錨框建議階段,級聯(lián)模型將遠距離未遮擋且模糊的騎車人類別標(biāo)簽誤識別為行人,使得NFN增大0.88%而Re降低0.47%。相較MV3D 將點云轉(zhuǎn)化為鳥瞰圖的算法,級聯(lián)策略最大程度地保留了原始點云特征,在提升了22.42%精度的同時,實時性也優(yōu)于該算法。這是因為YOLOv7截體估計模型劃分的局部點云區(qū)域能夠彌補處理全局點云造成的計算量龐大的劣勢,GPU處理有更高的運算效率。
為確定級聯(lián)模型以PointNet++為點云分割網(wǎng)絡(luò)的有效性,表2 將不同算法作為級聯(lián)模型的點云分割網(wǎng)絡(luò)進行消融對比。
表2 級聯(lián)模型在KITTI驗證集中的消融對比
由表2可見,使用PointNet++作為分割網(wǎng)絡(luò)的級聯(lián)模型檢測精度比使用PointNet 高,但耗時多出了45 ms/幀。這是因為PointNet++的分層點集特征提取結(jié)構(gòu)使得級聯(lián)模型提取到更豐富的層次特征但同時也加大了網(wǎng)絡(luò)結(jié)構(gòu),耗時較長卻獲得了更多的精度收益,更有利于級聯(lián)模型進行目標(biāo)檢測。
級聯(lián)模型引入T-Net 結(jié)構(gòu)學(xué)習(xí)目標(biāo)坐標(biāo)偏差以增加對目標(biāo)位置的識別精度。為驗證該結(jié)構(gòu)的有效性,通過對級聯(lián)模型三維檢測網(wǎng)絡(luò)中的T-Net 坐標(biāo)修正模塊進行消融實驗以研究該結(jié)構(gòu)對檢測網(wǎng)絡(luò)的影響。實驗結(jié)果如表3所示。
表3 T-Net結(jié)構(gòu)對模型的精度影響
由表3 可知,在所有遮擋程度下,與不引入TNet 的對照網(wǎng)絡(luò)相比,級聯(lián)模型在車輛類別的檢測mAP 上增加了2.32%,行人mAP 增加了2.15%,騎車人mAP 增加了2.42%。消融結(jié)果證明,在級聯(lián)模型的非模態(tài)邊界估計網(wǎng)絡(luò)中引入T-Net 結(jié)構(gòu)以修正目標(biāo)點云質(zhì)心,能有效提高模型的三維識別精度。
為探究采用YOLOv7 作為級聯(lián)模型二維RoI 提取方法的優(yōu)勢,通過級聯(lián)不同類型的二維RoI 提取算法進行消融實驗,實驗結(jié)果如表4所示。
表4 二維RoI提取方法消融實驗
表4 中三維分割精度指經(jīng)二維RoI 提取后三維分割模型的分割精度,其中級聯(lián)YOLOv7 模型相較于同類單階段算法YOLOv5 的分割mAP 增加了2.53%,所有類別檢測mAP 上升了1.8%;相較于DETR 與ConvNeXts 的分割mAP 增加了6.7%、0.83%,所有類別檢測mAP 分別高出6.58%、0.71%。消融實驗結(jié)果表明,級聯(lián)YOLOv7 能在保持后續(xù)三維分割精度的同時降低分割耗時。
表5記錄了各模型在點云鳥瞰圖BEV 上的檢測精度AP 以及平均航向相似度(average orientation similarity,AOS)。
表5 不同算法在KITTI驗證集中的BEVAOS檢測精度
由表5 可知,級聯(lián)模型在中等、困難級別下,所有類別的平均檢測精度mAP 較于基線網(wǎng)絡(luò)FPointNet v2,分別獲得了5.86%、6.59%的增益,可以看出,通過級聯(lián)高效聚合網(wǎng)絡(luò)ELAN,差異化二維圖像之間傳播的梯度信息,使級聯(lián)網(wǎng)絡(luò)能夠?qū)W習(xí)到尺度更小、殘缺較多的特征。
平均航向相似度AOS 通過計算預(yù)測航向角與真實航向角之間差值得出,體現(xiàn)模型對于目標(biāo)航向的估計能力,mAOS 為AOS 值的和與所檢測類別個數(shù)之比。所有遮擋程度下,對于所有類別,級聯(lián)模型相較3DOP 模型,mAOS 提高了0.2%。級聯(lián)模型對于行人mAOS 距Mono3D 為2.58%,這是由于級聯(lián)模型不存在目標(biāo)航向建議階段,直接通過三維邊界估計網(wǎng)絡(luò)的結(jié)果計算目標(biāo)航向。綜合以上結(jié)果,級聯(lián)YOLOv7 的三維檢測模型能夠在保持實時性的同時,準(zhǔn)確檢測強遮擋環(huán)境中的目標(biāo),并回歸有效的目標(biāo)長寬高和航向。
結(jié)合圖像與點云數(shù)據(jù)的優(yōu)勢,提出了一種級聯(lián)YOLOv7 的三維目標(biāo)檢測算法,以解決目標(biāo)遮擋以及原始點云搜索量過大對三維檢測造成的信息殘缺和實時性差的問題。通過KITTI 數(shù)據(jù)集測試結(jié)果表明,級聯(lián)YOLOv7 模型充分利用了相機圖像的高分辨率特性和激光雷達點云的深度信息,實現(xiàn)強遮擋目標(biāo)幾何信息和航向信息的準(zhǔn)確檢測,并降低了處理點云的運算耗時,與其它方法相比,在保證了較高準(zhǔn)確率的同時提升了目標(biāo)檢測的實時性。
現(xiàn)實中可應(yīng)用自動駕駛的場景較多,所提出的模型無法完全覆蓋各場景下的靜動態(tài)目標(biāo)。為此,在實際應(yīng)用中,應(yīng)針對不同場景下的其他目標(biāo)對級聯(lián)模型進行訓(xùn)練,豐富模型可識別類型。為在保證實時性的同時盡量降低模型漏檢率,下一步將在網(wǎng)絡(luò)結(jié)構(gòu)上對二維RoI 提取算法或三維分割方法進行深入挖掘,提升級聯(lián)算法適配度,對于行人的航向角損失函數(shù)的選擇可進一步改進。