當今時代,通過科技改變生產生活方式的各種先進技術紛紛崛起,交通產業也經歷著巨大的變革。國家對于智能交通和交通強國戰略的支持使得交通產業更加需要相關技術支撐與賦能。對此,百度飛槳團隊與 Apollo 自動駕駛團隊強強聯合,聚焦人工智能關鍵技術,深耕自動駕駛各個場景,匯聚各方力量,不斷拓寬開源之路。
此次,飛槳基于和 Apollo 自動駕駛團隊合作開發的大量業務實踐經驗,結合自動駕駛感知算法開發難點,聯合 NVIDIA 在 NGC 飛槳容器中進行深度適配,正式發布飛槳首個端到端 3D 感知開發套件 Paddle3D,歡迎大家在 NVIDIA GPU 上體驗!
加入 Paddle3D 技術交流群
體驗 NVIDIA NGC + Paddle3D
Paddle3D 官方開源代碼鏈接如下,也歡迎大家入群進行 3D 感知開發的技術交流,接下來將為大家全面介紹 Paddle3D。
https://github.com/PaddlePaddle/Paddle3D
? ?Paddle3D 概覽
Paddle3D 是百度飛槳官方開源的端到端 3D 感知開發套件,套件整體結構自下而上分為框架層、基礎層、算法層、工具層 4 層。接下來具體介紹 Paddle3D 的整體架構。
2.1 基礎層
基礎層主要提供了數據處理管道、數據集的基礎支持、自定義算子的開發支持、高級 API 支持。
2.1.1 數據處理管道
提供數據處理的 I/O 加速能力,提高訓練階段數據吞吐速度。同時提供多種數據變換、數據增強能力,滿足 3D 模型的快速開發。
2.1.2 數據集
在本次的正式版中,我們全面支持了自動駕駛三大開源數據集 KITTI、Waymo 和 nuScenes。同時,Paddle3D 還支持用戶自定義數據集進行訓練,詳情請前往 Paddle3D 官方開源倉庫。
2.1.3 真值庫
在模型精度優化方面,除了模型層面的一些優化策略,Paddle3D 在數據層面也提供了基于真值庫的在線優化策略。在做自動駕駛感知任務時,采集和標注點云數據所耗費的人力成本偏高,我們希望可以充分利用已有的數據來拓展訓練數據的多樣性?;谡嬷祹斓脑诰€優化策略是先根據已有的訓練數據離線地生成真值庫,訓練的過程中在線地從真值庫里面隨機采樣一些真值目標,放到當前幀中來合成一幀新的點云,從而提升模型的泛化能力。
下圖是使用這個優化策略前后的精度對比情況,整體精度有 5.39%的提升。
2.1.4 自定義算子即訓即推
3D 感知模型在訓練過程中會遇到需要開發特色的自定義算子的情況,例如用于過濾重疊三維框的非極大值抑制操作(3D IoU NMS)、PointNet++中聚合和采樣點云的操作、點云體素化操作等等。Paddle3D 的模型均可基于飛槳的原生推理庫 Paddle Inference 完成服務器端和云端的模型部署,且不需要在部署階段重新開發自定義算子,完全做到即訓即用。
2.2 算法層
算法層主要提供了開箱即用的單目 3D 感知、點云 3D 感知、BEV 3D 感知、多模態 3D 感知等算法,同時提供了主流的骨干網絡實現參考。
2.2.1 單目 3D 感知模型
在和自動駕駛開源框架 Apollo 的合作過程中,我們沉淀了 SMOKE、CaDDN 這兩個經典的單目 3D 感知模型,并且已經作為 Apollo 最新的內置 3D 視覺感知模型。此外,在本次正式版發布中,我們還新增了 DD3D 模型,FCOS3D 模型的支持也即將完成。
2.2.2 激光雷達 3D 感知模型
除了視覺模型之外,我們在和 Apollo 的合作過程中同樣沉淀了激光雷達 3D 感知模型 PointPillars、CenterPoint,且已作為 Apollo 的原生激光雷達支持模型,本次正式版中我們還新增了 IA-SSD、PAConv、PV-RCNN、Voxel-RCNN 等前沿點云 3D 檢測模型,同時,也補充了點云分割模型 SqueezeSegV3。
2.2.3 BEV 模型
在自動駕駛任務中,對周圍場景的視覺感知非常重要,這一工作可以通過多個攝像頭給出的二維圖像完成對 3D 檢測框或語義圖的檢測。當前,最直接的解決方案是使用單目相機框架和跨相機后處理,該框架的缺點是其需要單獨處理不同的視圖,無法跨相機捕獲信息,導致性能和效率低下。作為單目相機框架的替代方案,一種更統一的框架是從多目相機圖像中提取整體表示。鳥瞰圖 (Bird’s Eye-View,BEV) 是一種常用的周圍場景表示方法,它能清晰地呈現物體的位置和規模,適用于各種自動駕駛任務。
而最近以 BEV 為基礎的 3D 檢測方案席卷自動駕駛屆,我們也在持續跟進該方向。目前已在 Paddle3D 的模型庫中補充BEV經典模型 PETR、PETRv2、BEVFormer,而 BEVFusion 正在實現中,即將和大家見面。
2.3. 工具層
工具層主要提供了基于 VisualDL 的訓練、推理效果可視化,同時提供了模型的量化部署加速能力、Apollo 的集成開發能力以及混合精度訓練能力。
2.3.1 自動混合精度訓練支持
自動混合精度訓練(Auto Mixed Precision, AMP)是指通過混合使用單精度和半精度數據格式,加速深度神經網絡訓練的過程,同時保持了單精度訓練所能達到的網絡精度?;旌暇扔柧毮軌?a href="http://m.xsypw.cn/tags/加速計/" target="_blank">加速計算過程,同時減少內存使用和存取,并使得在特定的硬件上可以訓練更大的模型或 batch size。
Paddle3D 目前全面支持混合精度訓練,從而進一步優化 3D 感知算法開發對硬件的需求,加速訓練。
2.3.2 量化部署支持
模型量化是一種將浮點計算轉成低比特定點計算的技術,可以有效地降低模型參數大小,降低算力、內存等資源消耗,從而提升模型在端側硬件上的運行效果。
3D 感知模型相比傳統的 2D 檢測模型往往模型更復雜,參數更多,在服務器上可能可以達到不錯的推理速度和精度的平衡,但是實際部署時,由于硬件算力限制,幀率往往達不到要求。對此,Paddle3D 對 3D 感知模型通過量化壓縮等手段在端側硬件達到了實時性能。目前官方支持 SMOKE、CenterPoint 的量化部署,同時 Paddle3D 將結合飛槳部署神器 FastDeploy 對 3D 感知模型通過量化壓縮等手段在端側硬件進行端到端的優化,支持更多模型的量化部署,鏈接參考如下:
https://github.com/PaddlePaddle/Paddle3D/tree/develop/configs/quant
https://github.com/PaddlePaddle/FastDeploy
2.3.3 稀疏卷積支持
在基于點云的 3D 檢測任務中,主流的解決思路會把無序的點云表示成有序的三維體素空間,精準地學習到幾何結構特征的最佳方法莫過于采取 3D 卷積。但是 3D 卷積耗費非常大的顯存和計算量,使得面向實時端側場景的應用須以損失部分檢測精度作為代價,將三維空間壓縮至二維空間后采用 2D 卷積來換取速度的提升和計算量的減小。然而,室外場景中數量高達~100k的點云經過體素化后,三維體素空間的稀疏性低至~0.5%,采用 3D 卷積會有大量零元素的計算浪費。
在稀疏 3D 卷積中,會預先建立一個規則表,表中僅記錄與卷積核相乘的非零輸入元素及其輸出元素在密集特征層上的位置,基于規則表完成卷積計算可避免零元素的無效運算。飛槳框架 v2.4 已經全面支持稀疏計算,Paddle3D 也集成了許多使用稀疏 3D 卷積的前沿模型,如 PV-RCNN、VoxelRCNN、CenterPoint。以CenterPoint 為例,基于飛槳原生推理庫 Paddle Inference 在一塊 RTX 3080 顯卡上的推理速度可達到 21.20 毫秒每幀,nuScenes 驗證集上精度 NDS(NuScenes Detection Score)可達到 66.74%。
2.4. 用戶體驗持續優化
2.4.1 3D 感知算法多卡算力在線開發
考慮到 3D 感知算法在實際開發過程中對顯存等硬件資源需求較大,飛槳團隊提供了免費的算力資源,方便大家在線開發,同時 Paddle3D 也提供了官方的在線開發示例,歡迎大家 fork 進行二次開發。
在線開發示例鏈接如下:
https://aistudio.baidu.com/aistudio/projectdetail/5268894
https://aistudio.baidu.com/aistudio/projectdetail/5269115
2.4.2 詳細文檔
文檔是快速上手一個開源項目的關鍵,Paddle3D 針對模型訓練部署以及每個算法都有詳細的文檔說明,歡迎大家閱讀瀏覽,同時我們也歡迎大家一同建立更完善的 Paddle3D 文檔和教程。
2.4.3 直播課&技術解讀文章
考慮到 3D 感知的更新迭代速度快,上手難度大,Paddle3D 會定期組織直播課程,由開發同學為大家深入講解 3D 感知算法的開發、部署細節。同時也會定期發布技術專欄文章進行解讀。相應的課程鏈接以及技術文章鏈接我們會定期更新到 GitHub 首頁,再次歡迎大家關注 Paddle3D 官方倉庫:
https://github.com/PaddlePaddle/Paddle3D
2.5 Paddle3D & Apollo 無縫銜接
Apollo 是由百度開源的開放、完整、安全的自動駕駛平臺,助力開發者快速搭建自動駕駛系統,Apollo 官方倉庫:
https://github.com/ApolloAuto/apollo
Paddle3D 和 Apollo 在持續性的進行合作開發,目前已打通視覺感知模型 SMOKE、CaDDN,點云感知模型 PointPillars、CenterPoint,BEV 感知模型 PETR 等模型的訓練和推理。用戶可以在 Paddle3D 進行模型的訓練、測試、導出,然后一鍵部署集成到 Apollo 的感知算法部分,和下游的跟蹤算法、多傳感器融合算法、預測算法、規劃控制算法全棧運行。同時,用戶可以通過 Apollo 的 DreamView 平臺聯合定位、預測、規劃控制模塊進行仿真調試,找出 Badcase 指導模型的優化開發。
詳細開發步驟請參考:
https://apollo.baidu.com/community/Apollo-Homepage-Document/Apollo_Doc_CN_8_0/lidar
https://apollo.baidu.com/community/Apollo-Homepage-Document/Apollo_Doc_CN_8_0/camera
2.6 總結
以上就是本次正式版本的主要內容,歡迎大家 fork 體驗。未來,我們將持續更新豐富模型庫和預訓練模型,持續優化模型在端側的量化壓縮部署,提供更詳細的開發文檔以及更簡潔的 API,為社區帶來更好用的 3D 感知開發套件。我們也歡迎社區用戶參與到 Paddle3D 的建設中,不斷完善 Paddle3D。
NGC 飛槳容器介紹
如果您希望體驗 PaddleNLP 的新特性,歡迎使用 NGC 飛槳容器。NVIDIA 與百度飛槳聯合開發了 NGC 飛槳容器,將最新版本的飛槳與最新的NVIDIA的軟件棧(如CUDA)進行了無縫的集成與性能優化,最大程度的釋放飛槳框架在 NVIDIA 最新硬件上的計算能力。這樣,用戶不僅可以快速開啟 AI 應用,專注于創新和應用本身,還能夠在 AI 訓練和推理任務上獲得飛槳+NVIDIA 帶來的飛速體驗。
最佳的開發環境搭建工具 - 容器技術
-
容器其實是一個開箱即用的服務器。極大降低了深度學習開發環境的搭建難度。例如你的開發環境中包含其他依賴進程(redis,MySQL,Ngnix,selenium-hub等等),或者你需要進行跨操作系統級別的遷移
-
容器鏡像方便了開發者的版本化管理
-
容器鏡像是一種易于復現的開發環境載體
-
容器技術支持多容器同時運行
最好的 PaddlePaddle 容器
NGC 飛槳容器針對 NVIDIA GPU 加速進行了優化,并包含一組經過驗證的庫,可啟用和優化 NVIDIA GPU 性能。此容器還可能包含對 PaddlePaddle 源代碼的修改,以最大限度地提高性能和兼容性。此容器還包含用于加速 ETL (DALI, RAPIDS),、訓練(cuDNN, NCCL)和推理(TensorRT)工作負載的軟件。
PaddlePaddle 容器具有以下優點:
-
適配最新版本的 NVIDIA 軟件棧(例如最新版本CUDA),更多功能,更高性能
-
更新的 Ubuntu 操作系統,更好的軟件兼容性
-
按月更新
-
滿足 NVIDIA NGC 開發及驗證規范,質量管理
通過飛槳官網快速獲取
環境準備
使用 NGC 飛槳容器需要主機系統(Linux)安裝以下內容:
-
Docker 引擎
-
NVIDIA GPU 驅動程序
-
NVIDIA 容器工具包
有關支持的版本,請參閱 NVIDIA 框架容器支持矩陣 和 NVIDIA 容器工具包文檔。
不需要其他安裝、編譯或依賴管理。無需安裝 NVIDIA CUDA Toolkit。
NGC 飛槳容器正式安裝:
要運行容器,請按照 NVIDIA Containers For Deep Learning Frameworks User’s Guide 中 Running A Container一章中的說明發出適當的命令,并指定注冊表、存儲庫和標簽。有關使用 NGC 的更多信息,請參閱 NGC 容器用戶指南。如果您有 Docker 19.03 或更高版本,啟動容器的典型命令是:
dockerrun--gpusall--shm-size=1g--ulimitmemlock=-1-it--rm
nvcr.io/nvidia/paddlepaddle:22.08-py3
*詳細安裝介紹 《NGC 飛槳容器安裝指南》
https://www.paddlepaddle.org.cn/documentation/docs/zh/install/install_NGC_PaddlePaddle_ch.html
【飛槳開發者說|NGC飛槳容器全新上線 NVIDIA產品專家全面解讀】
https://www.bilibili.com/video/BV16B4y1V7ue?share_source=copy_web&vd_source=266ac44430b3656de0c2f4e58b4daf82
飛槳與 NVIDIA NGC 合作介紹
NVIDIA 非常重視中國市場,特別關注中國的生態伙伴,而當前飛槳擁有超過 535 萬的開發者。在過去五年里我們緊密合作,深度融合,做了大量適配工作,如下圖所示。
今年,我們將飛槳列為 NVIDIA 全球前三的深度學習框架合作伙伴。我們在中國已經設立了專門的工程團隊支持,賦能飛槳生態。
為了讓更多的開發者能用上基于 NVIDIA 最新的高性能硬件和軟件棧。當前,我們正在進行全新一代 NVIDIA GPU H100 的適配工作,以及提高飛槳對 CUDA Operation API 的使用率,讓飛槳的開發者擁有優秀的用戶體驗及極致性能。
以上的各種適配,僅僅是讓飛槳的開發者擁有高性能的推理訓練成為可能。但是,這些離行業開發者還很遠,門檻還很高,難度還很大。
為此,我們將剛剛這些集成和優化工作,整合到三大產品線中。其中 NGC 飛槳容器最為閃亮。
NVIDIA NGC Container – 最佳的飛槳開發環境,集成最新的 NVIDIA 工具包(例如 CUDA)
點擊 “閱讀原文” 或掃描下方海報二維碼,即可免費注冊 GTC23,在 3 月 24 日 聽 OpenAI 聯合創始人與 NVIDIA 創始人的爐邊談話,將由 NVIDIA 專家主持,配中文講解和實時答疑,一起看 AI 的現狀和未來!
原文標題:BEV、單目和激光雷達 3D 感知算法開箱即用,無縫銜接 Apollo!
文章出處:【微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
-
英偉達
+關注
關注
22文章
3848瀏覽量
91995
原文標題:BEV、單目和激光雷達 3D 感知算法開箱即用,無縫銜接 Apollo!
文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論