如何輕鬆上手3D檢測應用實戰?飛槳產業實踐範例全流程詳解

語言: CN / TW / HK

隨着深度學習技術的快速發展,3D檢測技術作為關鍵發展方向之一,在機器人視覺、城市視覺、增強現實等領域發揮重要作用。傳統依靠激光雷達的3D檢測方法存在傳感器昂貴,難以大規模廣泛部署、點雲缺失紋理信息、分辨率低等問題。建立單目3D檢測模型,有效地利用了圖像相對於點雲的各個優勢,以更低的成本部署到實際應用場景。

為了讓大家能夠更快速的應用前沿的技術,百度視覺技術部基於飛槳提供了一套完整的3D視覺檢測產業實踐範例,提供了從數據準備、模型訓練及優化的全流程可複用方案,降低產業落地門檻。

:star:  項目鏈接  :star:

點擊閲讀原文一鍵GET

https://aistudio.baidu.com/aistudio/projectdetail/4038086

所有源碼及教程均已開源,歡迎大家使用

場景難點

  • 深度信息缺失,由2D圖像預測3D位置困難;

  • 相機傳感器敏感,受環境影響(夜晚、雨天)等較大;

  • 圖像層面,遮擋、截斷等問題嚴重影響感知精度。 

模型選擇

單目3D檢測提供兩種方案選擇:基於anchor的方案和anchor-free的方案。

  • anchor方案:從圖像中估計出3D檢測框,也無需預測中間的3D場景表示,可以直接利用一個區域提案網絡,生成給定圖像的3D錨點。不同於以往與類別無關的2D錨點,3D錨點的形狀通常與其語義標籤有很強的相關性。

  • anchor-free方案:將2D檢測方法CenterNet擴展到基於圖像的3D檢測器,該框架將對象編碼為單個點(對象的中心點)並使用關鍵點估計來找到它。此外,幾個平行的頭被用來估計物體的其他屬性,包括深度、尺寸、位置和方向。

我們採用基於anchor的方法,使用了3D障礙物的平均信息作為先驗知識,效果實際落地更好。在骨幹網絡部分,我們選擇的是DenseNet,這種網絡建立的是前面所有層與後面層的密集連接,實現特徵重用,有着省參數、扛過擬合等優點。我們提供了以下版本的方案嘗試:

根據單目3D檢測實時性的要求,這裏我們選擇了DenseNet121作為我們的骨幹網絡。

算法優化

本範例提供了在模型迭代過程中優化精度的思路:

  • 數據過濾:根據bbox可見程度、大小來過濾每個bbox標籤,根據有無保留bbox過濾每張圖片,整體平衡前後背景,保證訓練的穩定性。

  • 數據增強:主要使用RandomFlip、Resize兩種數據增強策略。

  • anchor定義:模型輸出

  • 後處理優化:根據將3D相關信息組成3D框,投影到圖像上得到投影的八點框,取八點最小外接包圍框與2D預測結果算IOU,通過不斷的調整旋轉角ry或深度z,來使得IOU最小。此算法利用了2D檢測的結果要比3D檢測的結果準確的先驗知識,用2D框來糾正預測的3D屬性,來達到優化3D定位精度的目的。整體框架如下圖所示:

經過調整後,在car類前後效果對比如下:

模型部署

使用飛槳原生推理庫Paddle Inference,用於服務端模型部署,總體上分為三步:

  • 創建PaddlePredictor,設置所導出的模型路徑;

  • 創建輸入用的 PaddleTensor,傳入到 PaddlePredictor中;

  • 獲取輸出的 PaddleTensor,將結果取出。

飛槳產業實踐範例 助力企業跨越AI落地鴻溝

飛槳產業實踐範例,致力於加速AI在產業落地的前進路徑,減少理論技術與產業應用的差距。範例來源於產業真實業務場景,通過完整的代碼實現,提供從數據準備到模型部署的方案過程解析,堪稱產業落地的“自動導航”。

  • 真實產業場景:與實際具有AI應用的企業合作共建,選取企業高頻需求的AI應用場景如智慧城市-安全帽檢測、智能製造-表計讀數等;

  • 完整代碼實現:提供可一鍵運行的代碼,在“AI Studio一站式開發平台”上使用免費算力一鍵Notebook運行;

  • 詳細過程解析:深度解析從數據準備和處理、模型選擇、模型優化和部署的AI落地全流程,共享可複用的模型調參和優化經驗;

  • 直達項目落地:百度高工手把手教用户進行全流程代碼實踐,輕鬆直達項目POC階段。