南大等最新QD-BEV:高效量化解決方案助力多視角3D檢測 !
本文經自動駕駛之心公眾號授權轉載,轉載請聯系出處。
基于鳥瞰圖(BEV)的多視角3D檢測最近取得了顯著改進。然而,最先進模型的巨大內存消耗使得它們難以在車輛上部署,而非同小可的延遲將影響流式應用的真實感知。
盡管量化技術在減輕模型方面的廣泛應用,但作者在本文中展示,直接在BEV任務中應用量化會導致1 )訓練不穩定,2)造成無法容忍的性能下降。
為了解決這些問題,作者的方法QD-BEV引入了一種新穎的視圖引導蒸餾(VGD)目標,它可以在穩定量化感知訓練(QAT)的同時,通過利用圖像特征和BEV特征來增強模型性能。
作者的實驗表明,QD-BEV在保持相似甚至更好的準確度的同時,比之前的方法具有顯著的效率提升。
在nuScenes數據集上,4位權重和6位激活量化的QD-BEV-Tiny模型僅用15.8 MB的模型大小就實現了37.2%的NDS,比BevFormer-Tiny模型提高了1.8%,模型壓縮比為8倍。在 Small 和Base變體上,QD-BEV模型也表現出色,分別實現了47.9% NDS(28.2 MB)和50.9% NDS(32.9 MB)。
1 Introduction
基于鳥瞰圖(BEV)的多視角3D檢測由于其潛在的自動駕駛能力,已成為自動駕駛的重要研究方向。根據輸入傳感器,以前的工作可以分為基于激光雷達的方法和僅基于相機的方法。與基于激光雷達的方法相比,僅基于相機的方法具有部署成本低、更接近人眼、更容易獲取駕駛環境中的視覺信息等優點。然而,即使使用僅基于相機的方法,運行最先進的BEV模型的計算和內存成本仍然很高,使得它們難以部署到車輛上。例如,BEVFormer-Base在單個NVIDIA V100 GPU上的推理延遲為540毫秒(相當于1.85幀/秒),這對于通常需要30幀/秒的實際應用來說是不可行的。由于相當大的延遲會損害流式感知,因此探索和設計基于BEV的僅相機3D目標檢測的輕量級模型尤為重要。
量化可以減少用于表示深度神經網絡中的權重和激活的比特寬度,從而在提高模型推理速度的同時,大幅節省模型大小和計算成本。然而,直接應用量化會導致性能顯著下降。與在圖像分類和2D目標檢測任務中量化標準方法表現突出相比,由于存在多視角和多維度信息(例如,BEVFormer[23]中使用的時域信息和空域信息),多相機3D檢測任務要復雜和困難得多。因此,BEV網絡的架構往往變得更復雜,具有更深的卷積神經網絡 Backbone 以從多視角提取圖像信息,以及用于編碼和解碼BEV域特征的 Transformer 。不同神經架構的存在、多個目標和來自不同模態的知識極大地挑戰了標準量化方法,降低了它們的穩定性和準確性,甚至使整個訓練過程發散。在圖1中,作者展示了在BEVFormer-Tiny模型上應用W4A6量化時的訓練曲線。可以看出,量化感知訓練(QAT)在不同時期的性能波動顯著,而作者所提出的QD-BEV方法顯示出穩定的上升趨勢。作者在第5節進行更多實驗以驗證QD-BEV的有效性。
為了解決標準QAT的問題,在這項工作中,作者首先對量化BEV網絡進行了系統的實驗和分析。然后,作者設計了一種量化感知的視角引導蒸餾方法,該方法既解決了穩定性問題,又提高了緊湊型BEV模型的最終性能。作者提出的視角引導蒸餾可以更好地利用來自圖像域和BEV域的信息進行多視角3D目標檢測。這顯著優于無法聯合處理BEV網絡中不同類型損失的先前蒸餾方法。具體來說,如圖2所示,作者首先將FP(浮點)模型作為教師模型,將量化模型作為學生模型,然后分別計算圖像特征和BEV特征的KL散度。最后,作者利用映射關系,通過相機的外部參數有機地結合圖像特征和BEV特征,實現 VGD。需要注意的是,在QD-BEV中,作者沒有使用額外的訓練數據或更大的強大教師網絡來調整精度,但 QD-BEV 模型仍然能夠在模型大小和計算要求顯著較小的情況下超越先前的 Baseline 。
作者的貢獻如下:
- 作者對量化BEV模型進行了系統實驗,揭示了阻礙標準量化感知訓練方法在BEV上的主要問題。
- 作者特別為BEV模型設計了視角引導蒸餾(VGD),它聯合利用了圖像域和BEV域的信息。VGD在解決標準QAT的穩定性的同時,提升了最終性能。
- 作者的W4A6量化的QD-BEV-Tiny模型僅擁有15.8 MB的模型大小,卻達到了37.2%的NDS,比8倍大的BevFormer-Tiny模型性能高出1.8%。
2 Related Works
Camera-only 3D object detection
在僅使用相機的3D目標檢測任務中,基于鳥瞰圖(BEV)涌現出了許多優秀的方法。先前的工作,如LSS [31]和BEVDet [14],采用自下而上的方式將圖像特征投影到BEV空間。基于DETR 和 Deformable DETR [48],DETR3D [38]通過Backbone + FPN + 解碼器的架構將2D目標檢測擴展到3D空間。此外,PETR [24]在DETR3D [38]的基礎上引入了3D位置編碼。在BEVFormer [23]中,作者使用密集的BEV Query 在BEV空間與多視角圖像空間之間交換信息。通過具有時間自注意力和空間交叉注意力的 Transformer 結構提取時間和空間信息,獲得了更穩定的BEV特征。基于BEVFormer中的時間交互,最近的工作PETRv2 [25]和BEVDet4D [13]取得了進一步的改進。除了上述工作之外,BEVDepth 和BEVstereo 分別是單目深度估計和立體視覺在鳥瞰圖(BEV)領域的兩種最先進的方法,它們利用BEV表示的獨特特性實現了高精度和高效率。
Quantization
為了減少模型大小,量化方法使用低比特寬度來表示神經網絡中的權重和激活值。通過使用低精度矩陣乘法或卷積,量化還可以使推理過程更快、更高效。給定一個預訓練模型,直接進行量化而不進行任何微調的方法稱為后訓練量化(PTQ)。盡管有其優點,但低比特寬度的PTQ仍然會導致顯著的準確度下降。因此,提出了量化感知訓練(QAT)來訓練模型以更好地適應量化。與PTQ相比,QAT方法[9, 7, 40]成本更高,但有可能獲得更高的準確度。此外,在超低量化比特寬度(例如,4比特)的情況下,即使是QAT也無法彌合準確度差距。解決這一問題的有希望的方向是使用混合精度量化[46, 36, 39],其中某些敏感層保持較高精度以恢復準確度。雖然有效,但混合精度量化在通用計算機(CPU和GPU)上的支持目前尚不成熟,可能會導致額外的延遲開銷。
盡管標準量化方法在卷積神經網絡上已經取得了很好的結果,但近期的研究[27, 44]提到,它可能在其他神經架構(如 Transformer )中表現不佳。在BEV網絡中同時存在卷積塊和 Transformer ,使得它們對傳統量化方法提出了挑戰。
Distillation
模型蒸餾通常使用大型模型作為教師來訓練一個緊湊的學生模型。在訓練學生模型時,不是使用類別標簽,關鍵思想是利用教師產生的軟概率來指導學生的訓練。之前的蒸餾方法探索了不同的知識來源(例如,[12, 22, 30]使用邏輯值,即軟概率)。教師模型的選擇也進行了研究,其中[41, 34]使用多個教師模型,而[8, 43]應用自蒸餾,無需額外的教師模型。其他先前的努力在不同的應用上應用了不同的設置進行蒸餾。關于鳥瞰圖(BEV)網絡,之前的工作[6]試圖通過蒸餾將激光雷達信息傳授給基于相機的網絡,但在作者純基于相機的設置中,對激光雷達數據的額外要求使其變得不可行。此外,BEV網絡中存在不同類型的損失使得標準的蒸餾方法無效。任意或次優的知識來源組合也會使得訓練不穩定,表現不佳,甚至發散。
3 Method
Overview of QD-BEV pipeline
本研究旨在提高現有頂尖的鳥瞰圖(BEV)模型的效率。作者從廣泛使用的BEVFormer模型[23]出發,采用逐步的量化感知訓練過程,分階段進行(具體細節在3.2節介紹)。作者進一步通過一種新穎的視圖引導的蒸餾過程來提升其穩定性和性能,這在圖2中進行了突出展示,其中作者使用浮點教師模型來促進作者量化的QD-BEV學生模型的學習。具體來說,輸入的多攝像頭圖像分別輸入到教師模型和學生模型中,然后使用網絡的圖像 Backbone 和圖像 Neck 部分來提取多攝像頭圖像特征。在網絡 Transformer 部分之后,提取BEV特征,并分別使用教師模型和學生模型的兩個部分來計算圖像蒸餾損失和BEV蒸餾損失。然后通過攝像頭的額外參數將這兩個蒸餾損失融合起來,實現作者獨特的視圖引導蒸餾機制。作者在3.3節提供了視圖引導蒸餾過程的詳細公式。
Quantization-aware training
在對稱線性量化中,量化器將權重和激活映射為帶有縮放因子的整數。以k位均勻量化可以表示為:
其中是被量化的浮點數,是中最大的絕對值,是量化后的整數。在這項工作中,作者進行了系統的實驗來分析量化在BEV網絡上的性能。對于PTQ,作者在推理階段直接將上述量化應用于預訓練模型。對于QAT,作者使用直通估計器(STE)[2]來定義上述量化操作的向前和向后過程,然后作者訓練模型以更好地適應量化。如第1節和第2節所述,考慮到標準的QAT可能由于BEV模型的特性導致發散,作者應用了分階段逐步QAT,作者在四個階段( Backbone 、 Neck 、編碼器和解碼器)中逐步降低權重精度,基于BEVFormer [23]的設計。這種逐步QAT的性能在圖3中有所展示。并且作者在4.2.2節中比較了逐步QAT與標準QAT的有效性。
View-guided distillation
與傳統的單領域蒸餾方法相比,作者的方法利用了BEV(鳥瞰圖)和圖像領域的互補特性,它們提供了不同的視角并捕捉場景的不同方面。BEV領域提供了一個自上而下的視圖,能夠準確感知和識別周圍環境,例如道路的結構、車輛的位置和車道標記。另一方面,圖像領域提供了更真實的視覺信息,捕捉豐富的場景細節和顏色信息。在以下各節中,作者將詳細介紹VGD:在第3.3.1節中介紹圖像特征蒸餾的計算,第3.3.2節中介紹BEV特征蒸餾,以及第3.3.3節中結合前兩個蒸餾損失的觀點引導蒸餾。
3.3.1 Image feature distillation
在給定一對對齊的教師和學生模型的情況下,作者首先計算圖像特征上的逐元素蒸餾損失。作者將圖像 Neck 輸出作為要提煉的圖像特征。為了提高蒸餾損失的平滑性,作者遵循之前的嘗試[33]使用基于KL散度的蒸餾損失。具體來說,作者將學生模型和教師模型的展平圖像特征視為邏輯值,通過具有溫度的softmax函數將其轉換為概率分布,如方程式(2)中定義。
然后,作者分別計算每個攝像頭的輸出之間的KL散度,以獲得圖像特征蒸餾損失,如方程式(3)。
其中B代表批量大小,W、H、C分別表示圖像特征的寬度、高度和通道數。和分別表示教師模型和學生模型的圖像特征。
3.3.2 BEV feature distillation
作者首先將學生模型和教師模型的鳥瞰圖(BEV)特征轉換為概率分布,這一過程與圖像特征的轉換相同。然后作者根據公式(4)計算鳥瞰圖特征上每一點的KL散度。
其中B代表批大小,C指的是BEV特征的通道數。和分別表示教師模型和學生模型的鳥瞰圖特征。作者將得到一個形狀為的損失。
3.3.3 View-guided distillation objective
在前兩節中,作者獲得了每個攝像頭在圖像特征上的損失以及BEV特征上每個點的對應損失。在nuScenes數據集上,攝像頭的外部參數是已知的,因此作者可以獲得每個攝像頭對應于BEV特征的分布范圍。然后作者生成可以應用于圖像特征的視角BEV Mask ,這與在BEVFormer [23]中定義的是相同的。是一個具有四個維度的張量:攝像頭數量、批處理大小、BEV大小 和3D高度,每個元素具有二進制值。通過沿最后一個維度(3D高度)計算平均值,作者可以將BEV Mask 在2D平面上展開為BEV大小 。然后,為每個攝像頭計算的 可以擴展到對應于BEV特征上每個點的損失,作者將其稱為 :
其中 表示哈達瑪積。
最后,作者使用 來獲得等式 (6) 中的視圖引導蒸餾目標:
視圖引導蒸餾的整個流程如算法1所示。
算法1 漸進量化感知的VGD視圖引導蒸餾
4 Experiments
在本節中,作者首先詳細闡述實驗設置,然后在BEV網絡上評估PTQ和QAT方法。基于這些結果的分析,作者提出了QD-BEV來克服標準PTQ和QAT的不足,并且作者專門在不同的設置和約束下將作者的結果與之前的工作進行比較。
Experimental settings
4.1.1 Dataset
作者使用nuScenes數據集[3]對作者的 Proposal 方法進行了具有挑戰性的3D檢測任務評估,這是一個由Motional(前身為nuTonomy)團隊開發的大規模公開自動駕駛數據集。該數據集包含了在波士頓和新加坡收集的1000個手動挑選的20秒駕駛場景,其中750個用于訓練,100個用于驗證,150個用于測試。數據集中的圖像來自6個具有已知內外參數的相機。
4.1.2 Evaluation metrics
在nuScenes 3D測試數據集上,主要的測量指標是平均精度(mAP),以及獨特的評估指標nuScenes檢測得分(NDS)。NDS是一個包含多方面信息的綜合評估指標。其他指標包括平均平移誤差(mATE)、平均尺度誤差(mASE)、平均方向誤差(mAOE)、平均速度誤差(mAVE)和平均屬性誤差(mAAE)。為了評估鳥瞰圖(BEV)網絡的效率,作者使用模型大小和BOPS作為度量標準。模型大小是存儲特定網絡所需的內存,它由模型中的參數總量以及存儲這些參數的量化位寬決定。BOPS測量一個網絡推理的總位操作數[35]。它是評估量化神經網絡計算的一個常見指標。對于一個具有層的模型,定義和分別為第層權重和激活值使用的位寬,那么作者有:
其中是計算第層的總乘累加操作數。為了更好地展示作者的QD-BEV模型相對于浮點模型的優勢,作者引入了sAP[19](流式平均精度)作為評估作者模型性能的一個指標。sAP是一個動態指標,它將隨著新數據的到達而更新,這使得它非常適合評估實時場景下的模型。
4.1.3 Baselines & Implementation Details
作者主要與BEVFormer [23]提出的不同輸入圖像分辨率的浮點基準模型進行比較(具體來說,分別是BEVFormer-Tiny、BEVFormer-Small和BEVFormer-Base)。對于量化基準,作者應用先前的PTQ方法DFQ [29]以及QAT方法PACT [7]和HAWQv3 [40]對BEVFormer模型進行量化,并與QD-BEV進行比較。
對于浮點模型,作者使用了BEVFormer的開源庫,并采用了兩種不同的 Backbone 網絡:ResNet50和ResNet101-DCN。作者在權重上采用逐通道的對稱線性量化,在激活上采用逐層的量化,這些都是先前量化方法的標準設置。由于在作者的設置中幾乎沒有相關的工作可供參考,作者讓作者的訓練采用與BEVFormer原始訓練策略相同的方案,即每個步驟訓練24個周期,使用AdamW優化器,初始學習率設為2e-4,線性預熱500次迭代,然后使用余弦退火。
Analysis on BEV Quantization
4.2.1 PTQ results
作者首先在表1中分析了不同模塊對量化的敏感性。可以看出,網絡的主體部分和編碼器部分對量化更為敏感,而 Neck 和解碼器部分的量化對準確度僅帶來輕微的干擾。作者要指出的是,基于敏感性分析,可以應用混合精度量化來更好地保護敏感模塊,但鑒于這超出了本文的研究范圍,作者將其作為未來的工作。
然后,作者分析了不同量化位寬對最終性能的影響。表2顯示,直接應用少于8位精度的PTQ會導致顯著的準確度下降,特別是當量化到W4A4時,結果幾乎變成了純噪聲,大約0 mAP。從表2可以觀察到,為了在實現超低比特量化時保持準確度,進行QAT是必要的。
4.2.2 QAT結果
表4:與先前方法或 Baseline 相比的QD-BEV結果。
為了解決PTQ嚴重的準確度退化問題,作者應用QAT以更好地使模型適應4位量化。在所有實驗中,直接將整個網絡量化到目標位寬的標準QAT方法會導致不穩定的QAT過程,在大模型中會引起梯度爆炸或準確度迅速下降(例如,W4A6的BEVFormer-Base僅有0.07 mAP)。基于這一觀察,作者假設標準QAT中引入的量化擾動太大,無法恢復。因此,作者應用漸進式QAT來限制訓練過程中的量化擾動。表3比較了在相同訓練周期數下漸進式QAT與標準QAT的性能。作者可以看到,在BEVFormer-Tiny和BEVFormer-Small中,漸進式QAT一致優于標準QAT(高達5% mAP),在BEVFormer-Base上取得了更大的性能提升。為了更好地驗證作者的分析,作者在圖3中繪制了前60個周期的漸進式QAT訓練曲線,其中對BEVFormer-Tiny進行W4A6量化。作者將漸進式QAT分為4個階段,并在每個階段迭代量化一個新的模塊。可以看出,在每階段的開始,NDS都會下降,對應于量化每個新模塊引入的量化擾動。
盡管漸進式QAT有其優點,但作者要注意的是,它仍然存在訓練不穩定和性能下降的問題。如圖1所示,對應于圖3的最后20個周期,漸進式QAT在達到平臺期后持續上下波動,而VGD的訓練曲線顯示出更為穩定上升的趨勢。
Main Results of QD-BEV
為了獲得更好的準確性和穩定性,作者應用了以浮點模型為教師、量化模型為學生的視圖引導蒸餾。圖3展示了VGD對BEVFormer-Tiny進行W4A6量化時的影響。需要注意的是,在最初的60個周期內,作者將VGD與逐步量化訓練(QAT)分開,以便更清晰地比較和說明,實際上VGD是一個即插即用的功能,可以始終與QAT聯合應用,正如作者在最后20個周期中所做的那樣。得益于圖像域和BEV域的知識,QD-BEV網絡能夠完全恢復量化退化,甚至超越浮點 Baseline 。如表4所示,該模型的NDS和mAP不僅優于先前的浮點 Baseline ,也優于量化網絡。由于目前還沒有緊湊型BEV網絡的現有結果,作者在BEVFormer上實施了標準量化方法DFQ [29],HAWQv3 [40]和PACT [7]作為比較。對于DFQ(DFQ是一種PTQ方法,較低的位寬會導致無法容忍的準確度下降),作者應用W8A8量化,對于QAT方法和QD-BEV模型,作者使用W4A6量化。作為比較,QD-BEV僅用32.9 MB的模型大小就能達到0.509的NDS,與BEVFormer-T-DFQ(0.340 NDS)的大小相似,但比BEVFormer-Tiny(126.8 MB,0.354 NDS)小得多。
作者在PETR [24]和BEVDepth [21]模型上進行了初步測試,使用的是圖5中的作者的方法。性能雖未達到BEVFormer的水平,但仍然超越了傳統量化方法,盡管結果各異,但這也突顯了該方法潛力。
在圖4中,作者展示了QD-BEV-Base模型在nuScenes驗證數據集上的可視化結果,并與BEVFormer-Tiny的結果和 GT 情況進行了比較。可以看出,QD-BEV-Base檢測到了更多的目標,并且3D框預測比BEVFormer-Tiny更準確。更多可視化結果在補充材料中提供。
Streaming perception result
表5:在BEVDepth[21]和PETR[24]上的QD-BEV結果。
在自動駕駛的背景下,流式感知[19]對于使模型能夠實時快速、精確地做出決策至關重要。高延遲會降低流式感知的效果,因為它會導致感知數據與神經網絡輸出之間的延遲。為了增強流式感知,量化是一項必要的技巧,它壓縮了模型大小,減少了計算負載,并加快了推理過程。在表6中,作者展示了量化在自動駕駛場景中對sAP指標的重要影響。如作者所見,與浮點模型和量化 Baseline 相比,QD-BEV模型在sAP上顯示出一致的改進。
5 Ablation study
在圖5中,作者進行了一項消融研究,比較了在僅使用圖像特征上的蒸餾、僅使用BEV特征上的蒸餾以及作者提出的視圖引導蒸餾。所提到的方法稱為CWD [33]。為了公平比較,作者使用了相同的預訓練權重和超參數,如溫度和學習率。從圖中可以看出,視圖引導蒸餾明顯優于CWD方法。無論是在mAP還是NDS曲線上,VGD都呈現出更明顯且穩定的上升趨勢,并取得了更好的最終結果。
6 Conclusion
在本工作中,作者系統地研究了在BEV網絡上的PTQ和QAT,并展示了它們面臨的主要問題。
基于作者的分析,作者提出了一種視圖引導的蒸餾(VGD)方法,該方法可以通過利用圖像域和BEV域的信息來穩定QAT過程并提升最終性能。
將VGD作為一種即插即用的功能,在量化的BEV模型中聯合應用,QD-BEV可以縮小精度差距,甚至超越浮點 Baseline 。
在nuScenes數據集上,僅15.8 MB模型大小的4位權重和6位激活量化的QD-BEV-Tiny模型達到了37.2%的NDS,相較于BevFormer-Tiny,在模型壓縮8倍的情況下性能提高了1.8%。