




















【摘要】針對基于深度學習的三維點云目標檢測算法在更換場景或設備的情況下容易出現網絡性能無法維持、可遷移性較差的問題,提出一種準確、靈活且遷移性較好的兩階段三維點云目標檢測算法(AF3D):在第一階段,對采集到的激光點云使用分段擬合算法去除路面,并使用具有噪聲應用的基于密度的空間聚類(DBSCAN)算法對非地面點云進行聚類,得到若干個聚類簇;在第二階段,搭建點云全連接網絡(PFC-Net)對聚類簇提取特征并進行分類。試驗結果表明:該算法在KITTI數據集上可實現良好的檢測性能,且在實車數據集上對汽車、行人、騎行者的檢測精度分別為69.74%,41.25%、54.33%,具有較好的可遷移性。
主題詞:智能交通 無人駕駛 深度學習 目標檢測 激光點云
中圖分類號:U461.91" "文獻標志碼:A" "DOI: 10.19620/j.cnki.1000-3703.20230550
A Two-Stage 3D Point Cloud Object Detection Algorithm for Road Surfaces
【Abstract】The 3D point cloud object detection algorithm based on deep learning is prone to issues such as inability to maintain network performance and poor transferability when changing scenes or devices. To address this issue, this article proposes an Accurate, Flexible, and highly transferable two-stage 3D point cloud object detection algorithm (AF3D). In the first stage of the AF3D detection algorithm, a segmented fitting algorithm is used to remove the road surface from the collected laser point cloud, then DBSCAN algorithm is used to cluster non-ground point clouds and obtain several clustering clusters. In the second stage of the AF3D detection algorithm, a point cloud fully connected network PFC-Net is established, and features are extracted and classified. Through experiments, it has been proven that this algorithm can achieve good detection performance on public KITTI datasets, and the detection accuracy for cars, pedestrians, and cyclists on real vehicle datasets is 69.74%, 41.25%, and 54.33%, respectively, indicating good transferability.
Key words: Intelligent transportation, Unmanned vehicle, Deep learning, Object detection, Laser point cloud
1 前言
傳統三維點云目標檢測算法整體具有不錯的檢測效果,但難以獲得障礙物的語義信息[1]。范小輝等[2]采用自適應具有噪聲應用的基于密度的空間聚類(Density-Based Spatial Clustering of Application with Noise,DBSCAN)算法耗時較長,且難以獲得語義信息。范晶晶等[3]引入KD-Tree(K-Dimensional Tree)方法,縮短了運行時間,但難以獲取行人的語義信息。楊思遠等[4]使用DBSCAN算法實現了車輛等動態障礙物聚類。萬佳等[5]提出一種多密度自適應DBSCAN算法,聚類效果較好,但時間較長,難以獲取語義信息。
近年來,深度學習[6]技術廣泛應用于三維目標檢測領域。如YOLO系列算法及其變體[7-8],計算速度較快,但存在一定的漏檢及誤檢。Zhou等[9]提出的體素網絡(VoxelNet)準確率較好,但無法滿足實時性要求。Lang等[10]提出的Pointpillars算法可預測目標的空間位置和朝向等信息,但遷移性較差。Chen等[11]提出的多視點三維目標檢測網絡(Multi-View 3D object detection Network,MV3D-Net)算法將融合后的圖像通過VGG16(Visual Geometry Group 16)[12]提取二維圖像特征,結果更加準確,但受模型深度及復雜度影響,遷移性較差。Qi等[13]提出Frustum PointNet對圖片進行目標檢測,同樣,其在陌生場景下的檢測準確率將會下降。Qi[14]提出的PointNet直接以點云數據作為網絡輸入,該網絡可完成點云分類、分割等任務。Anshul Paigwar等[15]將視覺注意力機制擴展到三維點云,結合PointNet進行車輛識別,該方法檢測速度較快,但識別準確率不高。Shi等[16]將圖像分割網絡區域卷積神經網絡(Region-based Convolutional Neural Networks,RCNN)遷移到點云數據,提出一種兩階段三維目標檢測網絡,但該方法的深度學習模型較為復雜,限制了其泛化能力。
基于深度學習的檢測算法通常效果更優,但由于其更加依賴數據集,造成在大范圍內場景信息變化極大的陌生場景下應用時存在性能突然下降的現象。另外,由于點云標注成本高,算法的可遷移性顯得尤為重要。事實上,場景的變化對目標點簇的特征影響較小,利用該特征,本文提出一種準確、靈活且遷移性較好的兩階段三維點云目標檢測算法(Accurate, Flexible and highly transferable 3D object detection algorithm,AF3D),通過經典聚類方法提取目標點簇,以縮小識別的感興趣區域,利用深度學習方法直接識別點簇,可提升對陌生場景的適應能力。
2 兩階段三維點云目標檢測算法
本文結合傳統障礙物檢測算法,搭建基于PointNet的點云分類網絡并命名為點云全連接網絡(Point cloud Fully Connected Network,PFC-Net),提出一種靈活準確的三維目標檢測算法,如圖1所示,算法主要由2個階段組成:在第一階段中,首先通過分段擬合算法進行地面分割,然后將剩余點云通過DBSCAN算法進行聚類,得到若干個點云聚類簇{C1,C2,C3,…,Ck-1,Ck};在第二階段,首先搭建點云分類網絡PFC-Net,基于KITTI 3D Object重構數據集進行訓練,得到權重文件,其次,將第一階段得到的每個聚類簇的點云數量通過最遠點采樣或零填充的方式統一設置為1 024個,并行輸入到訓練好的PFC-Net中進行點云聚類簇的分類,得到屬于汽車、行人、騎行者類別的目標,最終通過最小外接矩形的方法生成三維邊界框。
2.1 基于分段擬合的路面濾除
在原始激光雷達點云數據中,地面點云數量占比約為40%~50%[17],地面點云的存在會對點云聚類、分類過程造成嚴重干擾,因此有效去除地面有利于減少后續非地面點云聚類中的噪聲及其計算量,提高障礙物檢測的準確率。基于分段擬合的點云地面分割算法主要思想為:沿汽車前進方向(激光雷達X坐標軸方向)將激光點云分割為若干子區域,對各子區域提取高度最低的種子點集,擬合得到初始平面模型;判斷點到初始平面模型的距離是否小于設定閾值,將滿足條件的點作為新的種子點擬合得到新的平面,循環數次后得到每個子區域地面的平面表示。圖2所示為基于KITTI數據集的點云地面分割算法分割效果。
2.2 點云聚類
去除地面點云后,需對非地面點云進行分割處理。DBSCAN算法可以從有噪聲的空間數據庫中通過分割獲得任意形狀的簇,連接密度足夠大的相鄰區域,不需要提前指定聚類數量。因此,本文針對去除地面后的點云通過KD-Tree的方法建立點云拓撲關系,采用DBSCAN算法進行非地面點云聚類。基于DBSCAN的點云聚類算法流程如圖3所示。根據可視化結果,將基于KD-Tree的DBSCAN點云聚類算法聚類鄰域半徑Eps設置為0.45 m,簇的最小點集中點云數量設置為10個,基于DBSCAN的點云聚類效果如圖4所示,分割出的點云較為接近實際情況,未出現明顯的欠分割或過分割現象。本文采用原理簡單、計算量較小的基于最小外接矩形的包圍框擬合方法獲得三維邊界框。
2.3 PFC-Net點簇分類網絡
采用DBSCAN算法完成自動駕駛場景中非地面點云的聚類后需對聚類生成的簇進行分類,識別點云場景中的目標。首先搭建PFC-Net,該網絡主要負責對DBSCAN算法生成的聚類簇進行分類,獲得每個簇類的語義信息。
PFC-Net網絡結構如圖5所示,該網絡以(N,3)大小的張量作為輸入,其中N為點云數量,3為點云通道信息,使用多個權重共享的多層感知機(Multi-Layer Perceptron,MLP)對每個點云進行特征提取,依次經過64個3×1、256個4×1、512個256×1、1 024個512×1大小的卷積核,得到(N,1 024)大小的張量,這時對于卷積后的每一個點云,都有1 024維的向量特征,經過最大池化得到點云的全局特征。將點云的全局特征與每個點云的特征進行拼接,得到(N,2 048)大小的張量,該張量既包含每個點云的多維特征,又包含點云的全局特征。然后依次經過2 048個2 048×1大小的卷積核、1 024個2 048×1大小的卷積核,得到(N,1 024)大小的張量。將該張量展平,經3層全連接層后得到分類預測結果。
3 基于KITTI數據集的試驗
3.1 數據處理
KITTI 3D Object數據集是目前國際上最大的自動駕駛場景下的計算機視覺算法評測數據集。由于其目標種類與本文的目標種類不同,無法直接用于本文網絡的訓練過程,因此首先對該數據集進行重構,提取屬于汽車、行人、騎行者3種類別的點云數據并賦予相應的類別標簽。其次,針對因各類別樣本數量不均衡易導致模型泛化能力差的問題,采用數據增強方法均衡各類別樣本的數量。KITTI 3D Object數據集的重構主要包括目標點云提取、數據增強2個部分。
3.1.1 目標點云提取
針對KITTI訓練集的每一幀點云文件,將其對應的標簽文件中類別為“廂式貨車(Van)”“汽車(Car)”“卡車(Truck)”“有軌電車(Tram)”的統一轉換為“汽車(Car)”,只保留“汽車(Car)”“行人(Pedestrian)”“騎行者(Cyclist)”3種類別。KITTI 3D Object數據集只對相機視角下的點云進行了標注,因此本文只對相機視角中的點云進行處理。如圖6所示,根據相機坐標系與激光雷達坐標系之間的轉換關系,將類別為汽車、騎行者、行人的三維邊界框中的點云逐一提取保存至文件夾并賦予類別標簽,提取后的點云可視化結果如圖7所示。此外,由于激光雷達“近密遠疏”的成像特點,遠處的目標點云空間信息嚴重缺失,影響網絡分類性能,因此規定類別為汽車的目標點云數量不能少于200個,類別為行人的目標點云數量不能少于50個,類別為騎行者的目標點云數量不能少于50個。
此外,將目標提取后的剩余點云依次進行地面去除(如圖8所示)、DBSCAN聚類(如圖9所示),保存通過DBSCAN聚類生成的其他目標簇并將該類別命名為“其他目標(Otherobjects)”。至此,本文從KITTI 3D Object數據集提取了“汽車”“行人”“騎行者”“其他目標”4種類別的數據集進行點云分類網絡的訓練。
3.1.2 數據增強
KITTI 3D Object重構數據集中4種類別的樣本數量所占比例相差較大,會導致網絡模型泛化能力較差。本文一方面通過對點云進行平移、繞激光雷達坐標系的軸隨機旋轉某個角度等經典數據增強方法對樣本數量較少的類別進行擴充,另一方面采用加權隨機采樣的方法,有效解決各類別樣本數量比例不均衡的問題。采用數據增強方法、加權隨機采樣后樣本數量所占比例如表1所示。因提取的各種類別的點云數量不同,輸入網絡前需統一對點云數據進行預處理:若目標簇點云數量少于1 024個,則通過零填充的方式補充至1 024個;若該目標簇點云數量多于1 024個,則采用最遠點采樣法將點云數量下采樣至1 024個,盡可能完整地保留點云的空間幾何信息。
3.2 基于KITTI數據集的試驗
本文試驗在Unbutu 18.04 LTS系統上運行,涉及的軟件有Cuda 11.1、Cudnn 8.0.5、Python 3.7等。將重構后的KITTI 3D Object數據集按照8∶2的比例劃分為訓練集、測試集作為試驗數據集。
云分類網絡PFC-Net采用交叉熵損失作為損失函數:
式中,N為樣本數量;M為類別數量;yic為樣本i屬于類別c的符號函數,若網絡預測類別與標簽一致,則取yic=1,否則取yic=0;pic為樣本i屬于類別c的預測概率。
本文將重構后的KITTI 3D Object數據集特征標準化(Feature Standardization)后作為網絡輸入,以真實類別信息作為標簽,使用初始學習速率為1×10-3的Adam優化器,最大迭代次數(Epoch)設置為150,批量處理尺寸(Batch Size)設置為128。由于激光雷達點云數據具有“近密遠疏”的特點,遠處的目標點云數量較少,不再具有完整的輪廓,根據文獻[18],車速為80 km/h的車輛應具有檢測前方40~50 m距離內目標的能力,以較低速度行駛的車輛(車速≤40 km/h)應至少具有30 m的檢測距離。因此,本文僅對車輛行駛方向上40 m距離內的障礙物進行感知。
為了驗證本文AF3D算法的可遷移性,引入Pointpillars[14]算法進行對比。2種三維目標檢測算法基于公開數據集的試驗對比結果如表2所示。
采用AF3D算法對KITTI數據集進行推理,可視化結果如圖10所示。
由圖10可以看出,AF3D算法可有效識別地面,以及近距離的汽車、行人與騎行者,但該方法依靠聚類得到目標輪廓,通過PFC-Net進行分類獲得每個聚類簇的語義信息,在識別過程中無法獲得點云場景的上下文信息,導致某些因存在嚴重遮擋或距離較遠造成點云數量稀疏而無法保留其輪廓的目標識別效果較差。
4 實車試驗
4.1 實車數據采集平臺
本文搭建如圖11所示的實車數據采集平臺,數據采集車基于長安奔奔改裝獲得,該車搭載的硬件設備包括激光雷達安裝支架、禾賽科技Pandar 64線激光雷達、單目相機、差分GPS以及一臺筆記本電腦。其中,禾賽科技Pandar 64線激光雷達傳感器安裝于汽車縱向對稱平面處的激光雷達支架上,距離地面高度約為1.90 m。雷達參數和計算機配置如表3、表4所示。
4.2 激光雷達點云數據采集及處理
本文基于機器人操作系統(Robot Operating System,ROS)建立計算機端與禾賽科技Pandar 64線激光雷達間的通信,激光雷達的工作頻率默認為10 Hz,部分場景如圖12所示。
激光雷達在采集數據的過程中因障礙物材質、自身精度等會產生少量的非數(Not a Number,NaN)點、噪聲點、離群點,需對每幀激光雷達點云進行預處理,處理過程如圖13所示。首先去除激光點云數據中的NaN點,其次,通過直通濾波截取感興趣區域,相應閾值為:
式中,(x,y)為點的坐標。
最后,對感興趣區域中的點云通過統計濾波進行噪聲點、離群點的濾除,完成數據預處理。本文借助開源軟件PCAT依次對挑選出的200幀點云數據使用三維邊界框進行標注,包括“汽車”“行人”“騎行者”3種類別。
4.3 實車試驗
由于點云數據標注難度大、耗時長、成本高,且算法在陌生場景下的遷移性十分重要。因此對2種三維目標檢測算法Pointpillars、AF3D在未重新訓練的情況下進行測試,2種算法在實車數據集上的檢測精度如表5所示。
本文采用經KITTI 3D Object數據集訓練后的Pointpillars、AF3D算法直接推理實車數據集,表2、表5數據對比表明:Pointpillars在陌生場景中的檢測精度下降幅度較大,而AF3D算法檢測精度波動相對較小。這一方面可能是因為標注后的真實值與實際場景的真值存在一定誤差,另一方面可能是由于PFC-Net對實際場景中的某些車型(如灑水車、敞篷電動車等)無法準確識別導致。AF3D算法的目標檢測結果如圖14所示,AF3D算法在陌生場景中依舊可以準確地檢測出目標所在的位置以及類別。由此可見,相比于Pointpillars,AF3D算法對陌生場景的適用性較強,具有良好的場景遷移性。
5 結束語
本文提出一種較為靈活、準確且遷移性好的兩階段三維點云目標檢測算法框架AD3F:在第一階段,采用基于分段擬合的地面點云分割方法完成地面點云分割,選用DBSCAN算法對非地面點進行聚類,獲得聚類結果;在第二階段,搭建PFC-Net進行特征識別,準確完成點云聚類簇分類任務。分別對Pointpillars、AF3D算法在KITTI 3D Object數據集以及實車數據集上進行了算法對比驗證,結果表明:在KITTI 3D Object數據集上,經訓練后的Pointpillars網絡模型檢測精度整體優于AF3D算法;在實車數據集上,AF3D算法的檢測精度優于Pointpillars;Pointpillars在陌生場景中的檢測精度下降幅度較大,而AF3D算法依靠聚類獲得障礙物的輪廓,使得該算法可以更好地適應陌生場景,算法性能可以較好地保持,具有高度可遷移性。
參 考 文 獻
[1] MAO J G, SHI S S, WANG X G, et al. 3D Object Detection for Autonomous Driving: A Comprehensive Survey[EB/OL]. (2023-04-04)[2023-09-10]. https://doi.org/10.48550/arXiv.2206.09474.
[2] 范小輝, 許國良, 李萬林, 等. 基于深度圖的三維激光雷達點云目標分割方法[J]. 中國激光, 2019, 46(7): 292-299.
FAN X H, XU G L, LI W L, et al. A 3D LiDAR Point Cloud Target Segmentation Method Based on Depth Maps[J]. China Laser, 2019, 46(7): 292-299.
[3] 范晶晶, 王力, 褚文博, 等. 基于KD-Tree樹和歐式聚類的越野環境下行人識別的研究[J]. 汽車工程, 2019, 41(12): 1410-1415.
FAN J J, WANG L, CHU W B, et al. Research on Pedestrian Recognition in off-Road Environments Based on KDTree Tree and Euclidean Clustering[J]. Automotive Engineering, 2019, 41(12): 1410-1415.
[4] 楊思遠, 鄭建穎. 基于路側三維激光雷達的車輛目標分類算法[J]. 傳感器與微系統, 2020, 39(7): 123-126.
YANG S Y, ZHENG J Y. Vehicle Target Classification" " " Algorithm Based on Roadside 3D LiDAR[J]. Sensors and" "Microsystems, 2020, 39(7): 123-126.
[5] 萬佳, 胡大裟, 蔣玉明. 多密度自適應確定DBSCAN算法參數的算法研究[J]. 計算機工程與應用, 2022, 58(2): 78-85.
WAN J, HU D X, JIANG Y M. Research on Algorithm for Multidensity Adaptive Determination of DBSCAN Algorithm Parameters[J]. Computer Engineering and Applications, 2022, 58(2): 78-85.
[6] GUO Y L, WANG H Y, HU Q Y, et al. Deep Learning for 3D Point Clouds: A Survey[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 43(12): 4338-4364.
[7] ALI W, ABDELKARIM S, ZIDAN M, et al. Yolo3D: End-to-End Real-Time 3D Oriented Object Bounding Box" " " " " "Detection from LiDAR Point Cloud[C]// 2018 European" " Conference on Computer Vision (ECCV) Workshops." " " " Munich, Germany: Springer, 2018: 716-728.
[8] MARTIN S, STEFAN M, KARL A. Complex-YOLO: An" "Euler-Region-Proposal for Real-Time 3D Object Detection on Point Clouds[C]// 2018 European Conference on" " " " "Computer Vision (ECCV) Workshops. Munich, Germany: Springer, 2018: 197-209.
[9] ZHOU Y, TUZEL O. VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection[C]// 2018 IEEE" Conference on Computer Vision and Pattern Recognition (CVPR). Salt Lake City, UT, USA: IEEE, 2018: 4490-4499.
[10] LANG A H, VORA S, CAESAR H, et al. Pointpillars: Fast Encoders for Object Detection from Point Clouds[C]// 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Long Beach, CA, USA: IEEE, 2019: 12697-12705.
[11] CHEN X Z, MA H M, WAN J, et al. Multi-View 3D Object Detection Network for Autonomous Driving[C]// 2017 IEEE/CVF Computer Vision and Pattern Recognition (CVPR). Honolulu, HI, USA: IEEE, 2017: 1907-1915.
[12] SIMONYAN K, ZISSERMAN A. Very Deep Convolutional Networks for Large-Scale Image Recognition[EB/OL]. (2015-04-10)[2023-07-24]. https://arxiv.org/abs/1409.1556.
[13] QI C R, LIU W, WU C X, et al. Frustum Pointnets for 3D Object Detection from RGB-D Data[C]// 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Salt Lake City, UT, USA: IEEE, 2018: 918-927.
[14] QI C R, SU H, MO K, et al. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation[C]// 2017 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu, HI, USA: IEEE, 2017: 652-660.
[15] PAIGWAR A, ERKENT O, WOLF C, et al. Attentional PointNet for 3D-Object Detection in Point Clouds[C]// 2019 IEEE/CVF Conference on Computer Vision and" nbsp; "Pattern Recognition (CVPRW). Long Beach, CA, USA: IEEE, 2019: 1297-1306.
[16] SHI S S, WANG X G, LI H S. PointRCNN: 3D Object" " " Proposal Generation and Detection from Point Cloud[C]// 2019 IEEE/CVF Conference on Computer Vision and" " "Pattern Recognition (CVPR). Long Beach, CA, USA: IEEE, 2019: 770-779.
[17] 王肖. 復雜環境下智能車輛動態目標三維感知方法研究[D]. 北京: 清華大學, 2016.
WANG X. Research on 3D Perception Method for Dynamic Targets of Intelligent Vehicles in Complex Environments[D]. Beijing: Tsinghua University, 2016.
[18] LI B. On Enhancing Ground Surface Detection from Sparse Lidar Point Cloud[C]// 2019 IEEE/RSJ International" " " Conference on Intelligent Robots and Systems (IROS)." " "Macau, China: IEEE, 2019: 4524-4529.