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

語言: CN / TW / HK

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

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

:star:  專案連結  :star:

點選閱讀原文一鍵GET

http://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階段。