百度Apollo開放平臺自上線以來始終保持著創新和高頻的自我迭代,從最開始聚焦于基礎能力的搭建,走向側重場景能力的發展,再升級為對平臺工程易用性精益求精的追求。2022年12月28日,Apollo開放平臺面向所有開發者,正式推出了Apollo自動駕駛開放平臺的全新升級版本——Apollo 8.0,進一步夯實了平臺的易用性,讓開發者操作更簡單易上手。
Apollo 8.0版本在以下幾個功能點做出升級:
一、軟件包管理
在最新的8.0版本中,我們重新整理了模塊之間的依賴并引入了軟件包的概念來管理和發布各個模塊,優化了下載安裝中出現的下載量大、無法按需使用、編譯時間過長等問題,并在這個基礎上更新發布了基于應用場景的擴展方案讓更多開發者更好更快的使用Apollo。 (*關于【軟件包管理】:包管理既將Apollo的編譯產出按照“模塊化”粒度進行規范化組織。一方面支持直接使用產出包的方式直接使用組件;另一方面規范組件的依賴關系以及組件的粒度,從而降低組件的使用/復用難度,提升自動駕駛系統的研發效率。詳細規范介紹可以參考文檔 Introduce to Package of Apollo。)
1、更清晰的模塊結構,降低學習門檻
相較于以往Apollo里各個模塊間的依賴關系錯綜復雜,開發者要想了解和學習Apollo往往容易陷入代碼閱讀的困難中。在Apollo 8.0中,我們將Apollo各個模塊進行重新梳理,去掉了不合理的依賴關系,整合了通用的模塊,使Apollo整體結構更清晰簡潔。此外,我們將各個模塊依賴關系的明確聲明放在包的描述文件(cyberfile.xml)中,方便開發者統一查看。同時,我們也提供了快速查看工具,方便開發者了解學習相關代碼,整體降低開發者的學習門檻。
2、更快速的部署方式,提升編譯效率
以往開發者安裝Apollo都需要下載源碼再全量編譯才能完成整個部署,這個過程環節多耗時長,往往需要天級別的時間,且失敗率高,成為開發者使用Apollo的第一道門檻。為了提升開發者編譯效率,我們在Apollo 8.0引入了包管理的概念,在模塊化的基礎上對Apollo各個模塊作了預編譯和發布,并提供更細粒度的包以方便開發者按需獲取和使用。無論開發者是想快速體驗或是快速使用Apollo,都可以直接通過我們提供的工具快速安裝部署,整個過程耗時縮短至30分鐘內即可完成,大大減少了下載和編譯的時間。 ?
3、更便捷的擴展方案,方便二次擴展、驗證及實踐
以擴展修改Planning模塊為例( Demo 工程的代碼可參考 https://github.com/ApolloAuto/application-demo ),只需創建如下示例聲明文件(Planning以源碼形式安裝),再執行編譯指令即可將Planning源碼安裝到工作空間當中,同時也會將Planning調試相關必要模塊以二進制包的形式安裝。然后我們便可以直接修改工作空間下的Planning源碼、編譯、調試,從而構建出適用于所需場景的Planning模塊。而構建一個完整的端到端自動駕駛軟件系統,也只需要在上述基礎上再添加相應的模塊即可,如Perception、Prediction、Control等。
更多場景的示例可以參考文檔 Apollo 8.0 Quick Start。 ?
二、感知框架
為了幫助開發者更好的提升感知模塊的開發效率,在Apollo 8.0版本中,我們提供了一套完整的端到端自動駕駛感知開發流程,在數據、模型、框架和驗證4個主要環節都做了提升,同時迭代優化了任務流程和工具,幫助開發者快速實現自動駕駛感知的開發、部署和驗證,提高感知開發效率。
1、清晰的任務流水線,多樣的算法插件
在8.0感知框架中,開發者可以根據不同的感知任務類型來創建對應的流水線,并通過配置文件來定義流水線任務。相比以前,每個任務的運行流程更加清晰,同時還方便進行擴展。此外,開發者還可以根據需要選擇不同的算法插件,比如Apollo感知模塊提供4種檢測器,開發者可以根據配置文件,選擇不同的檢測器,來驗證檢測效果,通過算法插件,算法工程師更加專注于算法本身,而不需要過多關注框架的實現。
2、全新的模型訓練,易用的深度學習模型
此次Apollo 8.0中,Apollo聯合Paddle3D提供了端到端的自動駕駛模型開發解決方案,覆蓋了從自動駕駛數據集到模型訓練、模型評估和模型導出的算法開發全流程。 對自動駕駛駕駛中,開發者比較關心的3D目標檢測任務和分割任務,Apollo提供了最新SOTA的算法模型實現,包括單目相機檢測,激光雷達點云目標檢測和多模態的目標檢測模型,開發者開箱即用,不需要再苦于自己復現模型。同時,我們還提供模型的Benchmark,包括速度、精度等指標以及預訓練好的模型。開發者可以實時跟蹤最新的3D目標檢測和分割模型實現,保持自動駕駛感知算法上的先進性。
Apollo 8.0感知模型中,已引入了3個深度學習模型:
PETR:目前自動駕駛方向中視覺BEV領域中的代表性模型,模型創新性地將3D坐標信息與圖像特征相融合,借助Transfomer的結構進行端到端的3D目標檢測,實現了基于視覺的360°障礙物感知,模型整體架構設計簡潔,在速度和精度之間取得了很好的tradeoff,在nuScenes上精度達到了43.52 NDS, 38.35mAP。
CenterPoint:點云檢測方向的前沿模型,該模型是Anchor-Free的三維物體檢測器,基于關鍵點檢測的方式回歸物體的尺寸、方向和速度。相比于Anchor-Based的三維物體檢測器,CenterPoint不需要人為設定Anchor尺寸,面向物體尺寸多樣不一的場景時其精度表現更高。模型的結構設計簡單而高效,在nuScenes上精度達到了61.30 NDS,50.97mAP。
CaDDN:基于單目3D檢測的前沿模型,針對于單張圖像預測3D物體的病態問題,CaDDN創新性地提出了使用每個像素的預測分類深度分布,將豐富的上下文特征信息投射到3D空間中適當深度區間的解決方案,并使用計算效率高的鳥瞰投影和單級檢測器來生成最終的輸出包圍框,將單目3D的模型指標提到了一個新的高度,在KITTI數據中達到了較高的精度指標(Car類別3D AP 21.45 14.36 12.57)。
3、高效的模型管理,便捷的模型驗證
為了更方便快捷的將訓練好的模型部署到Apollo系統中,在此次Apollo 8.0中我們引入了模型Meta和模型管理。其中模型Meta中包含了模型的基本信息,如名稱、任務類型、傳感器類型、框架和訓練所需的數據集,同時還包含了模型的標準輸入、輸入、前后處理、模型文件存放的路徑等。同時,Apollo還提供模型管理工具,開發者可以通過該工具下載安裝模型倉庫中的模型,展示系統中已經安裝的模型和模型的詳細信息。通過對模型進行標準化和模型管理工具,開發者可以非常方便的安裝部署訓練好的模型,并且管理這些模型,實現模型部署效率提升。
此外,在感知模型驗證中,我們提供了基于數據集的數據包(record文件),方便開發者直接基于數據集的數據來在線驗證模型的檢測效果,保證訓練和部署是同一套基線,快速測試模型性能。除了提供測試數據包之外,Apollo 8.0還提供了可視化工具鏈,通過可視化的圖形界面,展示傳感器的原始數據和目標檢測結果,方便開發者查看模型檢測效果,調試感知模型。
三、工具鏈
為進一步滿足自動駕駛開發流程需求,提升開發者研發效率,在Apollo 8.0版本中,我們結合開發者的痛點和訴求,提供了更全面、更易用的工具鏈,加速開發者研發進程,更好更快的上手Apollo。
1、全新完善的PnC工具鏈
(1)支持本地PnC仿真:Apollo 8.0提供了PnC仿真測試的本地調試功能,開發者在本地通過Dreamview的仿真器便可模擬車輛行駛以及再現各種場景。
(2)支持云端場景創建和管理:Apollo Studio提供了云端仿真場景管理的功能,開發者可以自由創建符合自己測試仿真需求的場景及障礙物,并針對場景可以進行分類和管理; (3)支持一鍵下載:在Apollo 8.0中,Dreamview中引入了Studio插件,通過插件開發者可以將Studio中的場景和動力學模型下載本地,PnC調試效率提升一倍以上。
2、便捷的感知結果可視化工具
Apollo 8.0為感知模塊提供了感知結果可視化工具,支持了將Lidar、Camera檢測結果的原始數據和Boundingbox同時進行可視化顯示,方便開發者及時在本地查看調試模型檢測效果。
?
3、Dreamview 配置中心
作為常用資源,為了方便開發者的使用和觸達,在Apollo 8.0中我們將數據包、場景集、動力學模型集成到Dreamview 配置中心,開發者可以通過配置中心下載數據包、場景集和動力學模型,無需在本地終端wget拉取,大大降低新手開發者的上手成本。 在8.0中,我們提供2個典型數據包demo_3.5和sensor_rgb,包含了較全面的channel消息,方便開發者查看感知效果和PnC效果。
四、文檔
為了讓更多新手開發者能夠快速上手學習Apollo,同時讓更多資深開發者能夠快速便捷的找到與自己相關的模塊源碼解析,在Apollo 8.0版本中,我們將Apollo Github和Apollo社區官網的技術文檔進行了優化重構。
1、更清晰的Apollo Github開源文檔
Apollo Github開源文檔,主要為想要研究源碼、進行擴展開發的資深開發者提供詳細的源碼解讀。相較以往的Github文檔分類較為模糊,開發者較難找到自己需要的文檔。在8.0版本中,我們將Apollo Github文檔結構進行了重構,將原來的文檔按照自動駕駛模塊進行分類,開發者可以根據自己想要了解的模塊【Installation Instructions】【Quick Start】【CyberRT】【Localization】【Perception】【Prediction】【Planning】【Decider】【Control】等直接進入查找。
Github文檔地址: https://github.com/ApolloAuto/apollo/tree/master/docs
2、更全面的Apollo社區官網文檔
Apollo社區官網文檔,主要為新手開發者提供Apollo相關介紹、以及上機場景和上車場景的實踐說明,讓新手開發者能快速了解Apollo并上手實操。在8.0中,我們優化了社區官網文檔的結構,從開發者使用場景出發,針對不同場景提供應用實踐案例指導以及擴展開發指導。
Apollo 8.0從“新架構”、“新能力”兩個重要層面進行了全面升級,從開發者的實際需求出發進行改良,幫助開發者更好、更快地熟悉和使用Apollo開放平臺。此次Apollo開放平臺8.0的推出,再次讓Apollo開放平臺在工程易用性上向前邁進一大步,降低操作難度、操作成本的門檻,讓更多開發者可以簡單方便地上手Apollo開放平臺、投身自動駕駛技術領域。
編輯:黃飛
?
評論
查看更多