宮大漢,于龍龍,陳輝,楊帆,駱沛,丁貴廣
(1. 清華大學(xué) 軟件學(xué)院 , 北京 100084; 2. 清華大學(xué) 北京信息科學(xué)與技術(shù)國(guó)家研究中心,北京 100084; 3. 涿溪腦與智能研究所,浙江 杭州 311121; 4. 清華大學(xué) 自動(dòng)化系,北京 100084; 5. 禾多科技(北京)有限公司,北京100102)
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)在圖像識(shí)別、對(duì)象檢測(cè)等視覺(jué)感知任務(wù)上取得了巨大的成功。由于其優(yōu)秀的性能,使得CNN已經(jīng)成為一種標(biāo)準(zhǔn)的智能結(jié)構(gòu),在智能手機(jī)、可穿戴設(shè)備、IoT終端設(shè)備、自動(dòng)駕駛等智能應(yīng)用中扮演著重要的角色。然而,CNN參數(shù)量巨大、計(jì)算復(fù)雜度高的特點(diǎn)限制了它在實(shí)際場(chǎng)景中的大范圍落地應(yīng)用。比如在自動(dòng)駕駛領(lǐng)域,如果CNN模型部署到云端,那么網(wǎng)絡(luò)傳輸?shù)姆€(wěn)定性將決定系統(tǒng)是否能及時(shí)應(yīng)對(duì)不斷變化的外部環(huán)境,進(jìn)而影響整體自動(dòng)駕駛性能。而受限于網(wǎng)絡(luò)傳輸?shù)牟环€(wěn)定性,這種云端計(jì)算終端響應(yīng)的方式在實(shí)際自動(dòng)駕駛系統(tǒng)中難以廣泛應(yīng)用。所以,基于車載終端設(shè)備實(shí)現(xiàn)深度模型的部署成為一種越來(lái)越流行的解決方案。
然而,面向車載終端設(shè)備的深度模型部署存在著計(jì)算資源和模型性能的矛盾。具體來(lái)說(shuō),深度模型復(fù)雜度越高,通常它的效果越好,但其計(jì)算速率越差??紤]到終端設(shè)備上缺少高性能計(jì)算單元(如GPU)的支持,使得復(fù)雜度高的深度模型無(wú)法滿足計(jì)算效率的要求。而如果采用復(fù)雜度低的小模型,又面臨模型性能不佳的問(wèn)題。因此,如何在計(jì)算資源受限條件下實(shí)現(xiàn)高精度深度模型的部署對(duì)自動(dòng)駕駛至關(guān)重要。
本文面向自動(dòng)駕駛場(chǎng)景,研究車規(guī)級(jí)芯片上的對(duì)象檢測(cè)[1-2]模型高效計(jì)算方法。本文使用先進(jìn)的對(duì)象檢測(cè)模型CenterNet[3]作為實(shí)驗(yàn)?zāi)P?。這種模型通過(guò)預(yù)測(cè)對(duì)象中心點(diǎn)的位置和包圍盒的偏移量,進(jìn)而確定對(duì)象的整體位置。通常使用主流深度學(xué)習(xí)模型,比如ResNet[4]作為模型的主干網(wǎng)絡(luò)。主干網(wǎng)絡(luò)可以將輸入的視覺(jué)圖像均分為網(wǎng)格區(qū)域,然后CenterNet判斷每個(gè)網(wǎng)格點(diǎn)是否是某個(gè)對(duì)象的中心。考慮到車載系統(tǒng)缺乏高性能計(jì)算單元GPU,本文采用輕量型深度模型ResNet18作為CenterNet的主干網(wǎng)絡(luò)。
ResNet18通過(guò)堆疊3×3卷積,使得在一個(gè)3×3的卷積窗口中,卷積核的中心點(diǎn)對(duì)應(yīng)的區(qū)域可以不斷“吸收”周圍區(qū)域的信息來(lái)增強(qiáng)自身的特征表達(dá)。這種方式的缺點(diǎn)在于3×3卷積將中心區(qū)域的特征和周圍區(qū)域的特征同等對(duì)待,容易降低中心區(qū)域的特性在特征中的表達(dá),加大了模型混淆中心區(qū)域和其他區(qū)域的可能性,不利于Center-Net對(duì)關(guān)鍵點(diǎn)的定位。
為了解決這個(gè)問(wèn)題,本文提出一個(gè)基于中心卷積的對(duì)象檢測(cè)模型。具體來(lái)說(shuō),本文為3×3卷積增加一個(gè)1×1卷積旁路,這種旁路對(duì)應(yīng)3×3卷積核的中心區(qū)域,可以充分學(xué)習(xí)中心區(qū)域的隱藏特性。本文對(duì)3×3卷積和1×1卷積的輸出進(jìn)行加和融合,并將這種結(jié)構(gòu)命名為中心卷積。所設(shè)計(jì)的中心卷積可以獨(dú)立學(xué)習(xí)中心區(qū)域的特性和周圍區(qū)域的關(guān)聯(lián)信息,有效增強(qiáng)中心區(qū)域的特征表達(dá),促進(jìn)關(guān)鍵點(diǎn)的預(yù)測(cè)。3×3卷積和1×1卷積都是線性變換,因此在模型部署推理時(shí),可以很方便地將1×1卷積旁路的參數(shù)融合到3×3卷積核的中心點(diǎn)上,恢復(fù)成標(biāo)準(zhǔn)3×3卷積,大大降低了推理時(shí)的模型大小。相比于標(biāo)準(zhǔn)的3×3卷積,所提出的中心卷積不增加推理復(fù)雜度,但是具有更強(qiáng)的特征學(xué)習(xí)能力,使得模型檢測(cè)效果更佳。
本文用中心卷積替換了ResNet18中的3×3卷積,構(gòu)建了基于中心卷積的CenterNet模型,并在實(shí)際的車規(guī)級(jí)計(jì)算芯片上進(jìn)行了模型部署驗(yàn)證。盡管ResNet18的計(jì)算復(fù)雜度不高,但為了充分利用車載系統(tǒng)的計(jì)算資源,希望盡可能在保持精度的情況下,提升CenterNet的計(jì)算效率。為此,本文采用一套基于量化的部署流程:首先使用量化感知的訓(xùn)練方式對(duì)給定的CenterNet進(jìn)行重訓(xùn)練,得到int8數(shù)值精度的CenterNet模型,然后調(diào)用底層開放接口,將模型部署在芯片上。通過(guò)這種量化感知訓(xùn)練,可以得到低比特的模型,減少了模型的大小,并且保持了足夠高的模型精度。而在芯片線上推理過(guò)程中,模型以低比特int8進(jìn)行運(yùn)算,相比于float32運(yùn)算,處理速度更快。
綜上所述,本文提出了一種中心卷積來(lái)替代ResNet18中的3×3卷積,構(gòu)建了基于中心卷積的CenterNet對(duì)象檢測(cè)模型;進(jìn)一步,采用基于量化的模型部署方法,實(shí)現(xiàn)在車規(guī)級(jí)芯片上的模型效果驗(yàn)證。
對(duì)象檢測(cè)領(lǐng)域的研究熱點(diǎn)經(jīng)歷了由基于錨點(diǎn)框(anchor-based)檢測(cè)模型到無(wú)錨點(diǎn)框(anchorfree)檢測(cè)模型。其中,以CornerNet[5]為代表的基于關(guān)鍵點(diǎn)預(yù)測(cè)的對(duì)象檢測(cè)模型的出現(xiàn)引起了研究者的廣泛興趣,anchor-free的方法漸漸興起。CornerNet首次提出預(yù)測(cè)包圍框的一對(duì)角點(diǎn)來(lái)檢測(cè)目標(biāo),并使用角池化操作來(lái)更好地定位包圍框的角點(diǎn)。之后,Zhou等[6]提出ExtremeNet來(lái)預(yù)測(cè)對(duì)象的極值點(diǎn)和中心點(diǎn)進(jìn)而實(shí)現(xiàn)目標(biāo)檢測(cè)的目的,后面又進(jìn)一步提出CenterNet只預(yù)測(cè)中心點(diǎn)來(lái)檢測(cè)目標(biāo)。Liu等[7]改進(jìn)了CenterNet,提出了TTFNet,使用高斯核編碼來(lái)引入更多的回歸樣本,極大地加快了模型的訓(xùn)練速度。而Zhou等[8]又將中心點(diǎn)預(yù)測(cè)的思想引入到兩階段(two-stage)檢測(cè)模型中,獲得了顯著的性能。
需要指出的是,本文重點(diǎn)關(guān)注深度模型在車規(guī)級(jí)芯片上的高效推理。具體來(lái)說(shuō),本文希望在有限的計(jì)算資源條件下實(shí)現(xiàn)高性能和高效率的對(duì)象檢測(cè)模型??紤]到CenterNet具有簡(jiǎn)單易擴(kuò)展的優(yōu)點(diǎn),所以本文采用CenterNet為實(shí)驗(yàn)?zāi)P瓦M(jìn)行探索,而不采用近期對(duì)CenterNet的改進(jìn)工作進(jìn)行實(shí)驗(yàn),如CenterNet2[8]、TTFNet[7]。
式中:?表示矩陣元素相乘;Mi,j是從M中以 (i,j)為中心截取的一個(gè)大小為H×W×C的矩陣;Fk表示第k個(gè)大小為H×W×C的矩陣。3×3卷積和1×1卷積都可以用式(1)來(lái)描述。
圖1展示了3×3卷積運(yùn)算。卷積以3×3為滑動(dòng)窗口對(duì)輸入的特征圖M進(jìn)行處理,處理時(shí),將中心區(qū)域 (i,j)信息和窗口內(nèi)的區(qū)域信息進(jìn)行融合,輸出的特征可作為中心區(qū)域 (i,j)的更高層次的特征表示??梢钥吹?,這種方式直接對(duì)窗口內(nèi)的區(qū)域特征進(jìn)行融合,沒(méi)有考慮到每個(gè)區(qū)域的不同,這樣就容易減弱中心區(qū)域的特性信息在更高層次特征中的表達(dá),使得在CenterNet中對(duì)關(guān)鍵點(diǎn)的預(yù)測(cè)效果不佳。
圖1 3×3卷積運(yùn)算Fig.1 3×3 convolution operation
為了解決上述問(wèn)題,本文提出中心卷積(center-convolution)來(lái)增強(qiáng)中心區(qū)域的信息。中心卷積被設(shè)計(jì)為雙分支的架構(gòu),其中一個(gè)分支是標(biāo)準(zhǔn)的3×3卷積后接一個(gè)批規(guī)范層(batch normalization,BN)[9],用于融合領(lǐng)域的信息,另外一個(gè)分支是一個(gè)1×1的卷積旁路,同樣后接一個(gè)批規(guī)范層,用于增強(qiáng)中心區(qū)域自身的信息。需要注意的是,兩個(gè)分支學(xué)習(xí)到的信息是不一樣的,所以學(xué)習(xí)到的特征空間中的分布不一樣。因此,雙分支的兩個(gè)BN層的參數(shù)是不共享的。在BN層將不同信息進(jìn)行規(guī)范化約束后,對(duì)兩個(gè)分支進(jìn)行加和操作得到最終的中心區(qū)域的特征。圖2展示了標(biāo)準(zhǔn)的3×3卷積和所提出的中心卷積的差異。
圖2 標(biāo)準(zhǔn)卷積和中心卷積Fig.2 Standard convolution and center-convolution
中心卷積盡管因?yàn)橐肓伺月贩种Ф黾恿四P偷膹?fù)雜度,但實(shí)際上,所引入的1×1卷積以及BN層可以融合進(jìn)3×3卷積中,因此,形式上就等價(jià)于標(biāo)準(zhǔn)的3×3卷積。具體來(lái)說(shuō),給定中心卷積,其中的3×3卷積設(shè)為F3×3∈R3×3×C×D,1×1卷積設(shè)為F1×1∈R1×1×C×D,對(duì)于給定的輸入特征中的一個(gè)3×3的分塊M∈R3×3×C,卷積層的輸出O∈RD為
式(2)可 以很容 易 地將F1×1融合 到F3×3中 的(1,1)的張量上,得到新的 3×3 卷積Fnew∈R3×3×C×D:
圖3展示了中心卷積的融合過(guò)程。在模型訓(xùn)練時(shí),本文將中心卷積設(shè)計(jì)為圖2所示的雙分支的結(jié)構(gòu),這樣可以利用冗余的1×1旁路分支來(lái)增強(qiáng)模型對(duì)圖像顯著性特征的學(xué)習(xí),提高網(wǎng)絡(luò)的學(xué)習(xí)性能,而在推理階段,利用圖3所示的分支融合機(jī)制,可以很好地將冗余參數(shù)融合進(jìn)主干3×3分支中,融合后的計(jì)算等價(jià)于標(biāo)準(zhǔn)的3×3卷積,不會(huì)提高模型的推理復(fù)雜度。
圖3 將1×1卷積融合到3×3卷積中Fig.3 Merging 1×1 into 3×3
本文選擇CenterNet來(lái)構(gòu)建檢測(cè)模型。CenterNet拋棄了傳統(tǒng)的基于錨點(diǎn)框(anchor)[10]的對(duì)象檢測(cè)方法,而是通過(guò)預(yù)測(cè)目標(biāo)對(duì)象的中心點(diǎn)位置和大小來(lái)預(yù)測(cè)對(duì)象的包圍框。
使用本文提出的中心卷積來(lái)構(gòu)建ResNet18模型,并在ImageNet[11]上進(jìn)行預(yù)訓(xùn)練。為了方便描述,本文將得到的模型命名為C-ResNet18。并基于C-ResNet18卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)主干網(wǎng)絡(luò)構(gòu)建CenterNet對(duì)象檢測(cè)模型,得到的模型稱為CRCenterNet。為了對(duì)比,本文也基于ResNet18構(gòu)建了CenterNet,得到的模型稱為R-CenterNet。對(duì)比效果詳見(jiàn)實(shí)驗(yàn)部分。
考慮到在自動(dòng)駕駛車輛上,通常部署一些專用的終端芯片和設(shè)備來(lái)執(zhí)行相關(guān)算法和模型。計(jì)算資源受限是該類設(shè)備的一大缺陷,這給復(fù)雜度高的智能模型的應(yīng)用帶來(lái)了巨大的挑戰(zhàn)。面向終端設(shè)備的深度模型加速技術(shù)能夠顯著降低深度模型的復(fù)雜度,有利于深度模型在終端設(shè)備上的部署。
本文采用基于量化的模型加速方法,以最大化車載系統(tǒng)底層計(jì)算模塊的計(jì)算效率。深度模型在訓(xùn)練過(guò)程中使用浮點(diǎn)精度來(lái)表示參數(shù)和數(shù)據(jù)的數(shù)值,從硬件原理來(lái)說(shuō),整數(shù)運(yùn)算比相同位數(shù)的浮點(diǎn)運(yùn)算更快且更省電,如果將深度模型的計(jì)算全部轉(zhuǎn)化為整數(shù)運(yùn)算,勢(shì)必帶來(lái)極大的加速效果。基于量化的模型加速方法就是通過(guò)將浮點(diǎn)(float32)精度數(shù)值量化到短型整數(shù)(int8)精度數(shù)值,實(shí)現(xiàn)了模型的高效運(yùn)算。
式中:xmax和xmin分別表示x的最大值和最小值;ymax和ymin分別表示y的最大值和最小值;round函數(shù)表示四舍五入運(yùn)算。
基于上述的數(shù)值量化方法,可以很容易地將預(yù)訓(xùn)練好的深度模型進(jìn)行參數(shù)量化。但是實(shí)驗(yàn)表明,這種后量化的方式存在量化誤差累積的缺陷,使得量化后的模型性能產(chǎn)生了極大的損失。目前的很多深度學(xué)習(xí)框架,比如pytorch[12]和TensorFlow[13]都使用了一種量化感知的方法,將參數(shù)量化的過(guò)程融合進(jìn)模型訓(xùn)練過(guò)程中,讓網(wǎng)絡(luò)參數(shù)能夠適應(yīng)量化帶來(lái)的信息損失。本文采用同樣的方法對(duì)深度模型進(jìn)行處理。具體來(lái)說(shuō),將量化算法集成為一個(gè)模塊,并串聯(lián)在卷積參數(shù)層的后面參與特征計(jì)算,流程如圖4所示。因?yàn)榱炕僮骼锩娴膔ound函數(shù)不是可導(dǎo)的,所以在反向傳播的時(shí)候無(wú)法將梯度準(zhǔn)確地傳給前面層的參數(shù)。為了解決這個(gè)問(wèn)題,本文重構(gòu)了量化層的前向和后向操作,在前向時(shí)按照量化操作正常進(jìn)行,反向時(shí)跳過(guò)量化層,直接把卷積層的梯度回傳到量化前的卷積參數(shù)中來(lái)。因?yàn)榫矸e層的梯度是經(jīng)過(guò)量化操作的,因此可以模擬量化誤差,把誤差的梯度回傳到原來(lái)的參數(shù)上,使得原來(lái)的參數(shù)去自適應(yīng)地感知量化產(chǎn)生的誤差。本文的實(shí)驗(yàn)結(jié)果表明,量化感知訓(xùn)練的方式可以避免模型的性能下降,而其計(jì)算效率成倍提升。
圖4 帶量化層的卷積操作Fig.4 Convolution with the quantization layer
本文在車規(guī)級(jí)計(jì)算芯片上搭建了對(duì)象檢測(cè)系統(tǒng)。為了達(dá)到這個(gè)目標(biāo),本文首先針對(duì)真實(shí)的自動(dòng)駕駛場(chǎng)景收集了一批數(shù)據(jù),并采用人工的方式進(jìn)行數(shù)據(jù)標(biāo)注。本文一共收集了兩批數(shù)據(jù):泊車數(shù)據(jù)和公路數(shù)據(jù)。泊車數(shù)據(jù)在室外泊車場(chǎng)景采集,共有7 848張RGB圖像,每張圖像標(biāo)注了2D的包圍框和物體接地點(diǎn)位置。如圖5所示,紅框是車輛的包圍框,彩色點(diǎn)是車輛的接地點(diǎn)。公路數(shù)據(jù)是在公路場(chǎng)景采集的,由22 213張RGB圖像組成,標(biāo)注了3D的包圍框。
圖5 泊車數(shù)據(jù)和公路數(shù)據(jù)Fig.5 Parking data and road data
成本是智能算法在自動(dòng)駕駛場(chǎng)景面臨的一個(gè)重要的問(wèn)題。自動(dòng)駕駛場(chǎng)景復(fù)雜廣泛,如果使用全監(jiān)督的方式進(jìn)行數(shù)據(jù)標(biāo)注,標(biāo)注成本將不可估量。其次,對(duì)象的3D信息是保障自動(dòng)駕駛安全可行的一種重要數(shù)據(jù),但其采集設(shè)備代價(jià)昂貴,不適合車輛量產(chǎn)。對(duì)此,本文設(shè)計(jì)了一套從2D圖片到3D空間推斷的對(duì)象檢測(cè)流程。具體來(lái)說(shuō),本文用泊車數(shù)據(jù)中的2D包圍框和接地點(diǎn)訓(xùn)練了所提出的基于中心卷積的對(duì)象檢測(cè)模型CRCenterNet,然后利用輸出的2D框和接地點(diǎn)信息,逆投影到世界坐標(biāo)系中,得到對(duì)象的3D位置信息,即輸入是2D圖像,輸出是3D位置信息(這里用鳥瞰圖表示,如圖6所示)。在訓(xùn)練階段,CRCenterNet只在泊車數(shù)據(jù)上訓(xùn)練,測(cè)試時(shí)只在公路數(shù)據(jù)上進(jìn)行測(cè)試。實(shí)驗(yàn)發(fā)現(xiàn),盡管模型在訓(xùn)練過(guò)程中沒(méi)有感知到公路數(shù)據(jù)上的對(duì)象信息,但是在公路數(shù)據(jù)上仍然具有較好的性能,說(shuō)明模型具有較好的泛化能力。
圖6 自動(dòng)駕駛的檢測(cè)任務(wù)Fig.6 A detection task toward the autopilot
芯片的計(jì)算效率是限制深度模型在車載系統(tǒng)上應(yīng)用的一個(gè)關(guān)鍵因素。本文采用常用的tda4芯片來(lái)搭建對(duì)象檢測(cè)算法驗(yàn)證系統(tǒng)。首先將訓(xùn)練好的CR-CenterNet模型進(jìn)行量化(如第3節(jié)內(nèi)容所述),然后注入到tda4芯片上進(jìn)行運(yùn)算。整體的開發(fā)流程如圖7所示。
圖7 面向車規(guī)級(jí)芯片的檢測(cè)系統(tǒng)構(gòu)建Fig.7 Constructing the detection system on car-level chips
在本節(jié)中,將驗(yàn)證所提出的中心卷積的有效性。ImageNet是目前國(guó)際上主流的大型圖像分類評(píng)測(cè)集,在人工智能的發(fā)展史上具有舉足輕重的地位。AlexNet[14]、VGGNet[15]、GoogleNet[16]、ResNet[4]和DenseNet[17]的成功都離不開ImageNet,ImageNet也已經(jīng)成為計(jì)算機(jī)視覺(jué)領(lǐng)域的標(biāo)準(zhǔn)數(shù)據(jù)集。研究者通常會(huì)使用ImageNet來(lái)驗(yàn)證新提出的模型的有效性,然后在下游任務(wù)上進(jìn)行驗(yàn)證,如對(duì)象檢測(cè)[1-2,18]、實(shí)例分割[19-21]、行人重識(shí)別[22-24]等。
因此,本文在ImageNet上對(duì)C-ResNet18進(jìn)行了預(yù)訓(xùn)練,并在圖像分類任務(wù)上展示其有效性。在訓(xùn)練時(shí),本文采用批訓(xùn)練(batch)的方式來(lái)訓(xùn)練C-ResNet18,每批次采樣256張圖片,并訓(xùn)練120輪。模型的訓(xùn)練學(xué)習(xí)率設(shè)置為0.1,采用簡(jiǎn)單的數(shù)據(jù)增廣策略,如隨機(jī)裁剪和隨機(jī)水平翻轉(zhuǎn)。
為了展示所提出的中心卷積的有效性,本文把ResNet18作為基線模型,并和C-ResNet18進(jìn)行對(duì)比。對(duì)比結(jié)果如表1所示。
表1 在ImageNet上的分類準(zhǔn)確率Table 1 Classification accuracy on ImageNet %
為了對(duì)比公平,這里展示了由pytorch官方提供的ResNet18結(jié)果(ResNet18-torchvision)和本文復(fù)現(xiàn)的ResNet18的結(jié)果(ResNet18-Ours)。從表1的實(shí)驗(yàn)結(jié)果可以看出,相比于ResNet18-torchvision,本文復(fù)現(xiàn)的ResNet18獲得了更高的分類準(zhǔn)確率,原因是本文采用更好的訓(xùn)練技巧。而本文所提出的C-ResNet優(yōu)于ResNet18-torchvision和ResNet18-Ours,其中,相比于ResNet18-torchvision,C-ResNet18在 top-1準(zhǔn)確率上提高了1.83%,在top-5準(zhǔn)確率上提高了1.24%;相比于ResNet18-Ours,C-ResNet18在 top-1準(zhǔn)確率上提高了0.84%,在top-5準(zhǔn)確率上提高了0.48%。和ResNet18-Ours的性能對(duì)比,可以看出所提出的中心卷積對(duì)模型性能的增益效果顯著,很好地證明了所提出的中心卷積的有效性。
本節(jié)驗(yàn)證所提出的中心卷積在本文所構(gòu)建的面向自動(dòng)駕駛真實(shí)場(chǎng)景中的對(duì)象檢測(cè)任務(wù)的應(yīng)用效果。本文使用所構(gòu)建的基于中心卷積的對(duì)象檢測(cè)模型(CR-CenterNet,見(jiàn)1.2節(jié))在泊車數(shù)據(jù)上進(jìn)行模型訓(xùn)練,實(shí)現(xiàn)接地點(diǎn)的預(yù)測(cè)。盡管泊車數(shù)據(jù)上提供了2D框的標(biāo)注數(shù)據(jù),但本文致力于研究從2D數(shù)據(jù)中推斷出對(duì)象的3D空間位置。因此,本文構(gòu)建CR-CenterNet時(shí)只預(yù)測(cè)跟對(duì)象有關(guān)的接地點(diǎn)位置,然后使用逆投影算法[25]推斷對(duì)象的3D空間位置信息,并可視化真實(shí)場(chǎng)景的鳥瞰圖。
考慮到對(duì)象檢測(cè)模型的復(fù)雜度較高,因此,本文訓(xùn)練CR-CenterNet時(shí)采用分布式訓(xùn)練方式。具體來(lái)說(shuō),本文使用3張2 080Ti的英偉達(dá)顯卡訓(xùn)練模型,每張卡在一個(gè)批次內(nèi)訓(xùn)練3張圖片,即批次大小是9。本文設(shè)置CR-CenterNet的學(xué)習(xí)率為3e-5。整體訓(xùn)練進(jìn)行了300輪,并保存最后一輪的結(jié)果進(jìn)行模型評(píng)測(cè)。
為了驗(yàn)證CR-CenterNet的性能,本文也基于ResNet18訓(xùn)練了CenterNet模型(R-CenterNet)。在模型評(píng)測(cè)時(shí),本文計(jì)算鳥瞰圖模式下,算法推斷的包圍框和人工標(biāo)注的包圍框的交并比,將交并比大于0.5的預(yù)測(cè)當(dāng)作是正確的預(yù)測(cè)。表2展示了基線模型R-CenterNet和本文的CR-Center-Net的整體性能對(duì)比。
表2 R-CenterNet和CR-CenterNet的性能對(duì)比Table 2 Performance comparison between R-Center-Net and CR-CenterNet %
從表2可以看出,CR-CenterNet可以比RCenterNet獲得5.9%的提升,進(jìn)一步證明了所提出的中心卷積在這個(gè)任務(wù)上的有效性。
圖8展示了算法的對(duì)象檢測(cè)效果,包括CRCenterNet預(yù)測(cè)的接地點(diǎn),以及逆投影后的鳥瞰圖效果。圖8(a)中也展示了標(biāo)注的包圍框,圖8(b)中綠色的是標(biāo)注的鳥瞰圖矩形框,紅色的是使用R-CenterNet得到矩形框,橙色的是使用CR-CenterNet得到的矩形框??梢钥吹?,即使因?yàn)檎趽鯁?wèn)題而無(wú)法從圖像中直接看出接地點(diǎn),所提出的CR-CenterNet也可以有效推斷出對(duì)象的接地點(diǎn);相比于R-CenterNet,CR-CenterNet對(duì)對(duì)象的3D空間位置推斷(鳥瞰圖)更加準(zhǔn)確,也側(cè)面說(shuō)明了所提出的CR-CenterNet的有效性和優(yōu)越性。
圖8 對(duì)象檢測(cè)效果可視化Fig.8 Visualization of detected objects
Tda4芯片是一款由世界第三大半導(dǎo)體制造商德州儀器(TI)推出的面向新一代智能駕駛應(yīng)用的車規(guī)級(jí)芯片,具有性能強(qiáng)、成本低、功耗低、安全性較高等優(yōu)勢(shì),因此被許多汽車廠商和一級(jí)供應(yīng)商選為計(jì)算平臺(tái)。本文采用基于量化的方法成功將所提出的基于中心卷積的對(duì)象檢測(cè)模型部署到該款車規(guī)級(jí)芯片tda4上。為了展示模型在tda4上的推理性能,在不同的計(jì)算平臺(tái)上部署了本文提出的CR-CenterNet,并測(cè)試了模型處理單張圖片的時(shí)間開銷。表3展示了各個(gè)平臺(tái)上的時(shí)間開銷對(duì)比情況。
表3 不同平臺(tái)上CR-CenterNet的時(shí)間開銷Table 3 Time consumption of CR-CenterNet in various platforms.
本文選擇了6種不同的計(jì)算平臺(tái),包括服務(wù)器端CPU和GPU、筆記本CPU和GPU、芯片模擬器和車規(guī)級(jí)芯片tda4,對(duì)比結(jié)果如表3所示??梢钥吹剑诜?wù)器端,無(wú)量化版的CR-CenterNet在CPU上達(dá)到776 ms的時(shí)間開銷,而量化版的CR-CenterNet在tda4上可以提升超10倍,時(shí)間開銷下降到64 ms。由此可見(jiàn),量化版的深度模型可以在計(jì)算性能更受限的車規(guī)級(jí)芯片上取得比服務(wù)端高性能CPU更優(yōu)的計(jì)算速率。
此外,本文所采取的量化方法在訓(xùn)練過(guò)程中進(jìn)行,可以抵抗由于量化所導(dǎo)致的模型精度的驟降。表4展示了CR-CenterNet在量化前后的檢測(cè)性能的對(duì)比,可以觀察到,經(jīng)過(guò)量化感知訓(xùn)練的模型在檢測(cè)效果上跟量化前的模型差異不大(僅下降了1.4%)。
表4 量化對(duì)模型效果的影響Table 4 Impact of the quantification method on the detection performance %
從上述分析可以看到,基于量化的部署方法可以提升模型的計(jì)算效率且保持模型的精度,滿足了車規(guī)級(jí)芯片的計(jì)算需求,因此,本文將整套算法集成到支持tda4芯片的開發(fā)板上,形成一套面向車規(guī)級(jí)芯片的檢測(cè)模型驗(yàn)證系統(tǒng)。圖9展示了利用tda4進(jìn)行計(jì)算得到的檢測(cè)效果??梢钥吹剑瑢?duì)于輸入的RGB圖片,所構(gòu)建的車規(guī)級(jí)芯片驗(yàn)證系統(tǒng)能夠準(zhǔn)確地給出3D空間位置信息(鳥瞰圖)。
圖9 面向車規(guī)級(jí)芯片的對(duì)象檢測(cè)模型驗(yàn)證系統(tǒng)Fig.9 Object detection model verification system for carlevel chips
本文針對(duì)自動(dòng)駕駛場(chǎng)景下智能模型計(jì)算效率要求高和終端設(shè)備計(jì)算資源受限的矛盾,提出了基于中心卷積的輕量化卷積神經(jīng)網(wǎng)絡(luò)和基于量化的深度模型部署方法。所提出的中心卷積在訓(xùn)練時(shí)為標(biāo)準(zhǔn)3×3卷積引入了1×1卷積旁路,可以增強(qiáng)模型對(duì)視覺(jué)信息的學(xué)習(xí),而在推理時(shí),可以方便地將旁路融合進(jìn)3×3卷積中,減少了計(jì)算量且保持了和原來(lái)模型一樣的性能。所采用的量化模型部署方法可以降低模型的大小,在保持量化前模型精度的情況下成倍提升模型的計(jì)算效率。基于輕量化中心卷積結(jié)構(gòu)和量化技術(shù),本文成功將深度對(duì)象檢測(cè)模型在車規(guī)級(jí)芯片tda4上部署,在自動(dòng)駕駛場(chǎng)景上取得了良好的檢測(cè)性能。未來(lái),有望集成到真實(shí)車輛駕駛系統(tǒng)中,在真實(shí)自動(dòng)駕駛場(chǎng)景下發(fā)揮更大的作用。