低成本,全流程!基于PaddleDepth和Paddle3D的三維視覺技術(shù)應(yīng)用方案
本系列根據(jù) WAVE SUMMIT+2022 深度學(xué)習(xí)開發(fā)者峰會(huì)「飛槳升級(jí) 創(chuàng)新引領(lǐng)」論壇嘉賓分享整理。本文整理自百度研究院的高級(jí)研究員沈哲倫和資深研發(fā)工程師吳澤武的主題演講——飛槳深度增強(qiáng)開發(fā)套件 PaddleDepth 和飛槳三維感知開發(fā)套件 Paddle3D 。
現(xiàn)實(shí)生活中的很多應(yīng)用場(chǎng)景都需要涉及到三維信息。針對(duì)三維視覺技術(shù)應(yīng)用場(chǎng)景復(fù)雜多樣、三維感知任務(wù)眾多、流程復(fù)雜等問題,飛槳為開發(fā)者提供了低成本的深度信息搜集方案 PaddleDepth 以及面向自動(dòng)駕駛?cè)S感知的全流程開發(fā)套件 Paddle3D 。
三維視覺技術(shù)應(yīng)用場(chǎng)景
3D 視覺是近年來十分流行的概念。它著力于讓計(jì)算機(jī)模仿人類大腦,對(duì)傳感器采集到的數(shù)據(jù)進(jìn)行理解和分析。以往我們做的二維視覺任務(wù)更多是對(duì)攝像頭采集的彩色圖像信息進(jìn)行理解和分析,但現(xiàn)實(shí)生活中,很多場(chǎng)景需要三維信息,因此三維視覺任務(wù)應(yīng)運(yùn)而生。

如下圖所示,從展示的三維視覺技術(shù)應(yīng)用場(chǎng)景可以看到,三維視覺技術(shù)在智能制造、智能無人系統(tǒng)、智能醫(yī)療等領(lǐng)域有極大的應(yīng)用價(jià)值。

根據(jù)三維視覺技術(shù)應(yīng)用場(chǎng)景,我們需要對(duì)問題進(jìn)行針對(duì)性建模。例如,對(duì)于智能體育場(chǎng)景,需要通過 3D 姿態(tài)估計(jì)技術(shù)對(duì)運(yùn)動(dòng)員姿態(tài)量化分析。在自動(dòng)駕駛場(chǎng)景下,需要通過 3D 目標(biāo)檢測(cè)和跟蹤技術(shù)實(shí)時(shí)檢測(cè)無人車旁邊的車輛。

綜上所述,三維視覺任務(wù)所要面對(duì)的主要場(chǎng)景復(fù)雜多變,我們需要針對(duì)具體業(yè)務(wù)場(chǎng)景選取合適的傳感器,并根據(jù)采集的數(shù)據(jù)確定任務(wù)的具體建模方式。由此,我們發(fā)現(xiàn)了目前三維視覺技術(shù)落地需要解決的兩大核心問題。
三維視覺應(yīng)用難點(diǎn)及方案
在數(shù)據(jù)采集上,現(xiàn)有三維數(shù)據(jù)采集設(shè)備存在價(jià)格昂貴、采集到的數(shù)據(jù)存在稀疏或者分辨率低等問題。針對(duì)這些問題,我們提出了飛槳深度增強(qiáng)開發(fā)套件 PaddleDepth 。目前,常用的深度信息采集設(shè)備分為激光雷達(dá)和 ToF (Time of Flight)設(shè)備。其中,激光雷達(dá)常應(yīng)用于室外場(chǎng)景,它采集的深度信息較為稀疏,無法進(jìn)行稠密三維重建,因此需要對(duì)深度信息進(jìn)行補(bǔ)全。而ToF設(shè)備常應(yīng)用于室內(nèi)場(chǎng)景,它采集的深度信息一般以圖像形式儲(chǔ)存,分辨率較低,因此需要對(duì)深度信息進(jìn)行超分操作。此外,現(xiàn)有的深度設(shè)備價(jià)格較高,極大限制了其在真實(shí)場(chǎng)景中的應(yīng)用范圍。因此我們考慮從彩色圖像直接估計(jì)場(chǎng)景的深度信息,從而大幅度降低獲取深度信息的成本,即深度信息估計(jì)。我們?cè)陲w槳深度增強(qiáng)開發(fā)套件 PaddleDepth 開源了深度信息增強(qiáng)技術(shù),其可以提供一個(gè)低成本的深度信息收集方案。
在 3D 感知領(lǐng)域,訓(xùn)練、評(píng)估到部署的端到端流程非常復(fù)雜,基于此,飛槳提出了 Paddle3D ,其聚焦于 3D 感知領(lǐng)域,涵蓋了大量的 3D 感知模型,并提供了從訓(xùn)練、評(píng)估到部署的全流程教程,以降低用戶開發(fā)成本。

01?飛槳深度增強(qiáng)開發(fā)套件——PaddleDepth
如下圖所示, PaddleDepth 旨在打造一個(gè)低成本的深度信息搜集方案,實(shí)現(xiàn)深度信息補(bǔ)全、深度信息超分辨和深度信息估計(jì)這三類深度信息增強(qiáng)技術(shù)的全覆蓋。目前 PaddleDepth 共包含 10+ 前沿模型以及 4+ 首次開源的自研算法。

在技術(shù)影響力方面, PaddleDepth 所提出的深度信息補(bǔ)全、超分辨率、單/雙目深度估計(jì)自研算法在各公開數(shù)據(jù)集中均達(dá)到 SOTA 的性能。

在開源數(shù)據(jù)集 KITTI 上, PaddleDepth 在自監(jiān)督單目深度信息估計(jì)、有監(jiān)督雙目深度信息估計(jì)任務(wù)以及深度信息補(bǔ)全任務(wù)上均排名第一。在 Middlebury 數(shù)據(jù)集上, PaddleDepth 在深度超分辨率任務(wù)上排名第一,并在 ECCV2020 Robust Vision Challenge Stereo Matching task 上獲得冠軍,其深度信息增強(qiáng)技術(shù)業(yè)界領(lǐng)先。
以下是效果展示:
深度信息補(bǔ)全結(jié)果展示
相比于直接通過激光雷達(dá)得到稀疏深度圖,通過深度信息補(bǔ)全,用戶能夠得到稠密的深度估計(jì)結(jié)果,更好地進(jìn)行三維重建。


深度圖超分辨結(jié)果展示
通過深度圖像超分辨,用戶能夠得到更稠密的三維重建結(jié)果。

單目深度估計(jì)結(jié)果展示
通過單目深度估計(jì),用戶能夠通過單張圖片重建原始物體的三維信息。


雙目深度估計(jì)結(jié)果展示
通過雙目測(cè)距原理,用戶能夠更好地重建原始物體的三維信息。

如下圖所示,通過三維重建結(jié)果對(duì)比,上述方法都能夠得到較為合理的三維重建結(jié)果。其中深度補(bǔ)全和雙目深度估計(jì),通過激光雷達(dá)的輸入和對(duì)局約束得到的結(jié)果更為準(zhǔn)確。

綜上所述,針對(duì)現(xiàn)有三維信息采集設(shè)備的局限性,我們提出了飛槳 PaddleDepth ,以提供一個(gè)低成本的深度信息搜集方案。
通過深度圖超分辨,主要用于解決采集的深度圖像分辨率較低的問題;
通過深度補(bǔ)全,主要用于解決采集的深度圖像稀疏的問題;
通過對(duì)輸入彩色圖像直接進(jìn)行深度估計(jì),用戶可以進(jìn)一步降低三維信息搜集成本。、
02?飛槳三維感知開發(fā)套件—Paddle3D
前面提到三維感知開發(fā)任務(wù)的一個(gè)難點(diǎn)就是任務(wù)眾多、流程復(fù)雜,基于這樣的背景我們?cè)O(shè)計(jì)并開發(fā)了飛槳三維感知開發(fā)套件 Paddle3D 。
下圖是 Paddle3D 整體的架構(gòu)圖,最底層是框架層,基于飛槳的核心框架進(jìn)行開發(fā)。在飛槳框架之上我們提供了一些基礎(chǔ)工具,包括常見數(shù)據(jù)集的集成和特定 3D 領(lǐng)域算子等。再往上是算法層,包括不同類別的算法。最上層是工具層,集成了飛槳的其他工具。

Paddle3D 具有四個(gè)特點(diǎn),包括豐富的模型庫、靈活的框架設(shè)計(jì)、端到端全流程覆蓋、部署時(shí)無縫銜接 Apollo 。
豐富的模型庫
Paddle3D 涵蓋了許多不同方向的前沿經(jīng)典模型。比如基于單個(gè)相機(jī)進(jìn)行的單目3D檢測(cè)任務(wù)中的經(jīng)典模型,如 SMOKE、CaDDN 等,這類方法的優(yōu)點(diǎn)是攝像頭成本較低、成本可控。Paddle3D 還集成了基于激光雷達(dá)的目標(biāo)檢測(cè)模型,即點(diǎn)云檢測(cè)模型,如 PointPillars 、 IA-SSD 等,這類方法的優(yōu)點(diǎn)是點(diǎn)云數(shù)據(jù)具有三維信息,基于點(diǎn)云的三維目標(biāo)檢測(cè)比單目 3D 的精度更高。Paddle3D 支持多模態(tài)模型,這類方法的優(yōu)點(diǎn)是融合不同模態(tài)數(shù)據(jù)的優(yōu)點(diǎn),具有更好的魯棒性。此外, Paddle3D 還支持目前比較火的多視角檢測(cè)任務(wù)模型,如 BEVFormer、PETR 等。用戶可以根據(jù)自己實(shí)際場(chǎng)景,選擇合適的模型進(jìn)行驗(yàn)證。

在基于點(diǎn)云的 3D 檢測(cè)任務(wù)中,經(jīng)常遇到的問題是顯存與計(jì)算量都很大。為了避免這些問題,許多方法在模型結(jié)構(gòu)上做了調(diào)整,將特征從三維空間映射到二維空間,來減少模型對(duì)顯存的消耗,但是帶來的另一個(gè)問題是模型的精度有所降低。針對(duì)這個(gè)問題,飛槳提供的解決方案是稀疏卷積 SparseConv ,它通過規(guī)則表減少無效計(jì)算,進(jìn)而解決顯存跟計(jì)算量的問題。
飛槳框架 2.4 版本已經(jīng)提供了相關(guān)的能力, Paddle3D 中也集成了許多使用 SparseConv 的前沿模型,比如 PV-RCNN 、 Voxel R-CNN 等。

可以在上圖看到列出的模型精度和速度指標(biāo),效果都非常好
靈活的框架設(shè)計(jì)
Paddle3D 的框架設(shè)計(jì)能夠滿足不同用戶的訴求,對(duì)于需要將 Paddle3D 集成到特定任務(wù)的用戶來說,可以基于飛槳提供的 API 進(jìn)行快速的二次開發(fā)。
如下圖所示,以模型訓(xùn)練為例,飛槳通過 6 個(gè) API 快速完成模型組網(wǎng)、數(shù)據(jù)集加載、優(yōu)化器定義等,然后啟動(dòng)訓(xùn)練功能。對(duì)于不需要進(jìn)行二次開發(fā)的用戶來說,使用飛槳提供的配置文件來配置不同組件,然后通過命令行工具,即可一鍵啟動(dòng)訓(xùn)練。
1. 六個(gè)API完成模型訓(xùn)練,滿足二次開發(fā)或者集成需求
指定訓(xùn)練數(shù)據(jù)集
定義模型
學(xué)習(xí)率更新策略
定義優(yōu)化器
指定訓(xùn)練器
啟動(dòng)訓(xùn)練
2.配置化簡(jiǎn)易訓(xùn)練成本,一行命令啟動(dòng)訓(xùn)練
端到端全流程覆蓋
從數(shù)據(jù)準(zhǔn)備開始,針對(duì)數(shù)據(jù)庫生成的腳本,飛槳提供了對(duì)于點(diǎn)云數(shù)據(jù)的使用接口。在訓(xùn)練過程中,飛槳集成了 VisualDL ,可以實(shí)時(shí)地查看訓(xùn)練過程中的指標(biāo)。在最后的模型部署部分,提供了完整詳細(xì)的教程和部署腳本,以及對(duì)模型推理性能的極致優(yōu)化。

無縫銜接Apollo
基于 Paddle3D 感知模型的開發(fā)流程完成 Paddle3D 訓(xùn)練模型后,將模型放到 Apollo 項(xiàng)目中,替換原有感知模型,調(diào)用相關(guān)感知接口,就可以啟動(dòng)自動(dòng)駕駛前端軟件 DreamView 查看模型的預(yù)測(cè)效果。
支持模型效果快速驗(yàn)證、多模態(tài)模型高性能融合,實(shí)現(xiàn)自動(dòng)駕駛?cè)珬J郊夹g(shù)方案的高效搭建。

綜上所述,飛槳可以解決在三維感知任務(wù)中存在的兩個(gè)難點(diǎn)。

三維數(shù)據(jù)采集。比如數(shù)據(jù)采集設(shè)備價(jià)格昂貴、設(shè)備采集數(shù)據(jù)分辨率較低、激光雷達(dá)采集的深度圖稀疏等,飛槳 PaddleDepth 為開發(fā)者提供了一個(gè)低成本的深度信息搜集方案。
三維信息應(yīng)用。該方向的難點(diǎn)包括任務(wù)建模型方式多,上手成本高等。飛槳 Paddle3D 為開發(fā)者提供了一個(gè) 3D 感知方向的全流程開發(fā)方案,涵蓋了大量的 3D 感知模型,并提供了從訓(xùn)練、評(píng)估到部署的全流程教程,用戶可以快速進(jìn)行效果驗(yàn)證。