胡 坤,陳遲曉,李 偉,甘中學(xué)
(復(fù)旦大學(xué) 工程與應(yīng)用技術(shù)研究院,上海 200433)
近年來,用深度神經(jīng)網(wǎng)絡(luò)對單目圖像進(jìn)行深度估計已經(jīng)有了很大的發(fā)展.隨著精度上升,但是網(wǎng)絡(luò)結(jié)構(gòu)卻變得越來越大,如圖1所示.隨之而來的是對計算設(shè)備的高要求和高功耗,出現(xiàn)了研究與實際應(yīng)用間的背離.這樣的高要求使得在小型化的硬件設(shè)備(如機(jī)器人、無人機(jī)、AGV設(shè)備)上部署神經(jīng)網(wǎng)絡(luò)[1-3]變得困難.而且由于神經(jīng)網(wǎng)絡(luò)稀疏的特性,計算過程中對內(nèi)存利用率不高,這對硬件資源造成了很大的浪費(fèi).因此,對深度估計神經(jīng)網(wǎng)絡(luò)的輕量化研究有著重大的應(yīng)用價值.
對神經(jīng)網(wǎng)絡(luò)的輕量化工作通常可以分為兩個方向:1)網(wǎng)絡(luò)參數(shù)位寬量化;2)神經(jīng)網(wǎng)絡(luò)計算結(jié)構(gòu)壓縮.由于深度神經(jīng)網(wǎng)絡(luò)的參數(shù)是用32bit單精度浮點(diǎn)數(shù)來表示.可以將參數(shù)位寬 較高的浮點(diǎn)數(shù)轉(zhuǎn)換為位寬低的定點(diǎn)數(shù).雖然損失了一定的表示精度,但網(wǎng)絡(luò)占用卻可以大幅壓縮.同時,網(wǎng)絡(luò)參數(shù)改為定點(diǎn)數(shù)計算時計算效率會有所提升.
圖1 深度估計網(wǎng)絡(luò)參數(shù)總量和絕對相對誤差趨勢對比Fig.1 Parameters and relative absolute error trend of depth prediction network
計算結(jié)構(gòu)的壓縮則是根據(jù)不同任務(wù)調(diào)整網(wǎng)絡(luò)結(jié)構(gòu).在一般的網(wǎng)絡(luò)參數(shù)量化的研究工作中,多是對圖像分類任務(wù)進(jìn)行參數(shù)量化,而結(jié)構(gòu)相對復(fù)雜的特征金字塔網(wǎng)絡(luò)(FPN)結(jié)構(gòu)量化工作較少.一般的圖像分類任務(wù)神經(jīng)網(wǎng)絡(luò)往往結(jié)構(gòu)相對簡單,網(wǎng)絡(luò)層與層之間幾乎是單個特征圖傳遞,同時由于輸出的全連接層參數(shù)依賴小故對參數(shù)的精度敏感度低;而目前對于深度估計等采用全卷積網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)來說,首先卷積的輸出層對參數(shù)的精度敏感度高;其次網(wǎng)絡(luò)中往往存在跳躍連接(skip connection),而且跳躍連接的特征圖傳遞需要占據(jù)很大的空間,影響網(wǎng)絡(luò)的推理的內(nèi)存布局.故對于深度估計網(wǎng)絡(luò)的輕量化實現(xiàn)是一個很有挑戰(zhàn)性的課題.
本文提出了輕量化的單目深度估計網(wǎng)絡(luò).該網(wǎng)絡(luò)采用可學(xué)習(xí)步長量化的方式使得網(wǎng)絡(luò)的參數(shù)體積大大減小,同時保證其精度損失在可接受范圍內(nèi).同時經(jīng)過對網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計,網(wǎng)絡(luò)的運(yùn)行所占內(nèi)存空間也遠(yuǎn)小于傳統(tǒng)的基于ResNet的深度估計網(wǎng)絡(luò).
從2D的RGB圖像中對其深度進(jìn)行估計,一直是計算機(jī)視覺的焦點(diǎn),由于從單純的2D圖片中對圖像深度進(jìn)行建模不但可以減小深度估計對硬件的要求和降低成本,而且對理解圖片中的3D場景有著重大的研究價值.與利用不同位置的攝像機(jī)記錄同一個物體的視差信息來估計圖像的深度的雙目深度估計不同.單目圖像的深度估計需要依據(jù)圖像不同尺度的特征進(jìn)行深度估計.但由于單個圖片中僅根據(jù)尺度信息是無法判斷圖像的絕對深度,Eigen[4,5]使用多尺度網(wǎng)絡(luò)的方法,利用不同尺度網(wǎng)絡(luò)對圖像進(jìn)行特征提取,于此同時Eigen還提出了一種可以反映像素之間的相對誤差的尺度無關(guān)損失函數(shù).在隨后的工作中,通過增加條件隨機(jī)場(CRF)的方式[6,7],或者是使用采用對圖像語義信息有更好提取的全卷積網(wǎng)絡(luò)[8]來對單張圖像進(jìn)行語義級別深度預(yù)測[9],又或者改變損失函數(shù)讓深度估計變成像素基本的分類問題[10]等都提升了對單目圖像的深度估計準(zhǔn)確率.
一個好的單目深度估計需要大量的像素級別的深度標(biāo)簽,這是一個非常有挑戰(zhàn)性的工作.在一些近期的工作中,Godard[11,12]通過將單張圖片的深度估計網(wǎng)絡(luò)放在一個自監(jiān)督結(jié)構(gòu)中訓(xùn)練,通過自監(jiān)督網(wǎng)絡(luò)產(chǎn)生像素級別的深度標(biāo)簽,提高了單目深度估計的魯棒性和泛化性.
神經(jīng)網(wǎng)絡(luò)從誕生以來就伴隨著其網(wǎng)絡(luò)模型越來越大的問題,這讓部署工作變得非常困難,比如在機(jī)器人抓取任務(wù)中神經(jīng)網(wǎng)絡(luò)的處理物體深度信息并識別的速度為13.5s每幀[1],在微創(chuàng)手術(shù)中深度處理等的神經(jīng)網(wǎng)絡(luò)需要部署在特定的機(jī)器上[2].對神經(jīng)網(wǎng)絡(luò)進(jìn)行壓縮的嘗試很早就已經(jīng)開始,通過對比將網(wǎng)絡(luò)參數(shù)從浮點(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)數(shù)或動態(tài)定點(diǎn)數(shù)對網(wǎng)絡(luò)體積以及精度的影響,發(fā)現(xiàn)將網(wǎng)絡(luò)量化到比較低的比特依然能保持精度[13,15].而且在早期的嘗試中,發(fā)現(xiàn)如果強(qiáng)制將全連接層神經(jīng)網(wǎng)絡(luò)的權(quán)值綁定到一個隨機(jī)哈希函數(shù)以提高網(wǎng)絡(luò)參數(shù)復(fù)用率[16],或者將神經(jīng)網(wǎng)絡(luò)的全連接換成矢量量化的方式[17],可以在幾乎不損失精度或者損失較少的情況下使得網(wǎng)絡(luò)的計算效率變高,網(wǎng)絡(luò)的模型變小.因此人們開始將這種量化方法推廣到整個深度神經(jīng)網(wǎng)絡(luò)中[18],同時采用更激進(jìn)的策略把網(wǎng)絡(luò)參數(shù)降到更低的位寬,如2bit甚至1bit.
該節(jié)描述了多尺度特征融合的單目深度估計網(wǎng)絡(luò)結(jié)構(gòu)以及網(wǎng)絡(luò)輕量化的方法.
多尺度的特征融合的目的是將讓網(wǎng)絡(luò)在圖像不同尺度的特征之間提取出深度空間信息.本文設(shè)計的多尺度特征融合網(wǎng)絡(luò)主要分成兩個結(jié)構(gòu):編碼器和解碼器,分別負(fù)責(zé)對輸入圖像進(jìn)行特征抽取和對特征的解碼,如圖2所示.
圖2 多尺度特征融合網(wǎng)絡(luò)Fig.2 Multiscale feature fusion network
編碼器(Encoder).是用于自下而上提取圖像不同尺度下的特征信息,每一個層級特征網(wǎng)絡(luò)會提取出以2為倍數(shù)縮小的圖像特征信息.由于編碼器部分的不同尺度特征信息提取跟卷積網(wǎng)絡(luò)結(jié)構(gòu)無關(guān),因此可以更換不同的特征網(wǎng)絡(luò),本文采用Efficientnet-b0的深度可分離卷積塊[19]作為特征提取網(wǎng)絡(luò)(參看3.2小節(jié)).
在這里,編碼器網(wǎng)絡(luò)會提取7個不同尺度的圖像特征圖(feature_maps)fm1、fm2、fm3、fm4、fm5、fm6、fm7,分別為原圖像的1/2、1/4、1/8、1/16、1/16、1/32、1/32.
解碼器(Decoder).用于對不同尺度的圖像特征進(jìn)行融合.由于解碼器網(wǎng)絡(luò)輸入的特征圖尺度大小不一致,因此對于不同尺度的特征圖要有一定的放縮,解碼器中會插入上采樣層使得特征圖以2的倍數(shù)放大,使得其可以與編碼器輸出的特征信息的尺度相匹配.在這里解碼器的通道數(shù)數(shù)量與編碼器特征圖輸出的通道數(shù)量一致,因此編碼器的特征圖可以和解碼器的特征圖進(jìn)行一對一的元素疊加.在解碼器的最后輸出是和輸入圖像為1∶1等大.為了減小神經(jīng)網(wǎng)絡(luò)激活層的輸出特征圖的內(nèi)存占用,Efficientnet-b0采用了ReLU6作為激活函數(shù)限制了激活函數(shù)的輸出位寬.故有可能會帶來解碼器中的特征圖表示范圍不足的問題.因此在這里增加了兩個具有相同放縮尺度的特征圖,用以減小ReLU6帶來的影響.
輕量化網(wǎng)絡(luò)目的是為了減小神經(jīng)網(wǎng)絡(luò)的體積,使其可以適應(yīng)內(nèi)存有限的設(shè)備.本文描述的深度估計網(wǎng)絡(luò)體積由網(wǎng)絡(luò)中的卷積核權(quán)重和偏置量決定,因此對于該網(wǎng)絡(luò)的輕量化考慮有兩個方向,即減小參數(shù)總數(shù)量以及減小參數(shù)量體積的大小.
圖3 深度可分離卷積網(wǎng)絡(luò)對比Fig.3 Depthwise separable convolution network
在計算機(jī)中神經(jīng)網(wǎng)絡(luò)每一個神經(jīng)網(wǎng)絡(luò)參數(shù)表示為32bit浮點(diǎn)數(shù).通過將網(wǎng)絡(luò)參數(shù)進(jìn)行量化,可以將每一個神經(jīng)網(wǎng)絡(luò)參數(shù)用一個低位寬的定點(diǎn)數(shù)來表示,以此來達(dá)到減小網(wǎng)絡(luò)體積的目的.隨之帶來的好處是不單只網(wǎng)絡(luò)的體積被壓縮,由于網(wǎng)絡(luò)原來的浮點(diǎn)數(shù)參數(shù)被定點(diǎn)數(shù)替代,計算的效率也大大提高,在神經(jīng)網(wǎng)絡(luò)Z=act(a?w)中,設(shè)網(wǎng)絡(luò)的量化函數(shù)為:
(1)
(2)
神經(jīng)網(wǎng)絡(luò)Z中a和w分別表示上層神經(jīng)網(wǎng)絡(luò)的輸入和該層神經(jīng)網(wǎng)絡(luò)的權(quán)重.式(1)表示的量化函數(shù)中clip(x,a,b)為分段函數(shù),當(dāng)x∈(a,b)時返回x,當(dāng)x≤a或x≥b時返回a或b.N為需要輸出量化值x的bit位數(shù),而range(xfloat)為原精度浮點(diǎn)數(shù)xfloat的表示范圍.式(2)所示的xstep為量化函數(shù)的步長.因此,神經(jīng)網(wǎng)絡(luò)Z可以表示為:
Z=act((astep·aquan)?(wstep·wquan))
=act((astep·wstep)·(aquan?wquan))
(3)
如圖4所示輸入a和網(wǎng)絡(luò)權(quán)重w先分別量化成低比特位數(shù)的參數(shù)再進(jìn)行卷積操作,由式(3)中Z可以看出由于astep和wstep均為給定的浮點(diǎn)數(shù)標(biāo)量,若a和w的參數(shù)量分別是m和n則整個網(wǎng)絡(luò)卷積運(yùn)算中浮點(diǎn)數(shù)運(yùn)算次數(shù)由原來nm次減小到了m次,帶來了指數(shù)級別算法效率的提升.
圖4 網(wǎng)絡(luò)量化示意圖Fig.4 Diagram of network quantization
所以可以把高位寬的神經(jīng)網(wǎng)絡(luò)參數(shù)量化到低位寬,以此來減小神經(jīng)網(wǎng)絡(luò)的體積和提高計算效率.但隨之帶來的問題是由于網(wǎng)絡(luò)的參數(shù)位寬不夠,參數(shù)的表示范圍和精度出現(xiàn)下降導(dǎo)致整體網(wǎng)絡(luò)的準(zhǔn)確率下降.因此在網(wǎng)絡(luò)量化過程中,對于量化函數(shù)中的量化步長選擇至關(guān)重要,往往需要針對原網(wǎng)絡(luò)的權(quán)重分布特征進(jìn)行權(quán)衡.對此,本文采用了可學(xué)習(xí)步長[20]的量化方法,令:
(4)
(5)
Cw=wstep·wquan
(6)
Ca=astep·aquan
(7)
在日常部署中,小型計算機(jī)不單只是計算資源的限制而且最重要的是計算內(nèi)存的限制.由于待計算的數(shù)據(jù)必須儲存在內(nèi)存中,因此對于內(nèi)存的優(yōu)化也至關(guān)重要.計算內(nèi)存占用分為兩種:1)運(yùn)行時內(nèi)存占用;2)運(yùn)行時產(chǎn)生的臨時占用.
對于運(yùn)行時內(nèi)存占用可以通過盡可能縮小運(yùn)行的神經(jīng)網(wǎng)絡(luò)內(nèi)存占用,壓縮神經(jīng)網(wǎng)絡(luò)的參數(shù),或者將神經(jīng)網(wǎng)絡(luò)分成不同層級的階段逐層計算來達(dá)到內(nèi)存優(yōu)化的目的.目前大多數(shù)神經(jīng)網(wǎng)絡(luò)量化壓縮相關(guān)的文章已經(jīng)作出大量的研究工作,本文第2部分亦有所介紹.
對于運(yùn)行時產(chǎn)生的臨時占用,是長期以來在神經(jīng)網(wǎng)絡(luò)量化壓縮的工作中被忽視的重要問題.因此往往在一般的神經(jīng)網(wǎng)絡(luò)量化中,僅針對神經(jīng)網(wǎng)絡(luò)本身進(jìn)行量化,從未真正對神經(jīng)網(wǎng)絡(luò)運(yùn)行的內(nèi)存進(jìn)行真正的優(yōu)化.特別地,在深度估計網(wǎng)絡(luò)中,解碼器對圖像深度信息進(jìn)解碼的操作很大程度上依賴編碼器部分提供的特征圖信息,特征圖信息是由編碼器在計算途中不斷產(chǎn)生的,但是由于在時序上解碼器部分的計算需要在編碼器完成之后,因此編碼器產(chǎn)生的特征圖信息需要額外占用一段內(nèi)存直到解碼器利用尺度特征進(jìn)行計算之后釋放.而在深度估計網(wǎng)絡(luò)中,特征圖信息參數(shù)總量幾乎可以和解碼器參數(shù)總量在同一個數(shù)量級上.因此是一個不可忽視的內(nèi)存因素.因此,對深度估計網(wǎng)絡(luò)的輕量化還需考慮內(nèi)存優(yōu)化的問題,通過設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)盡可能減小編碼器和解碼器之間傳遞的特征圖信息總量.
表1 解碼器網(wǎng)絡(luò)結(jié)構(gòu)
Table 1 Structure of decoder (a)Efficientnet-b0作為編碼器
in_channelsresolutionout_channelinputconv1032032192fm7conv938432192conv10,fm6conv8(upsampling)19232112conv9conv72241680conv8,fm5conv61601680conv7,fm4conv5(upsampling)801640conv6conv480840conv5,fm3conv3(upsampling)40824conv4conv248424conv3,fm2conv1(upsampling)24416conv2conv032216conv1,fm1disp conv1(upsampling)16216conv0disp conv01611disp conv1
(b)Resnet-18作為編碼器
in_channelsresolutionout_channelinputconv9(upsampling)51232256fm5conv851216256conv9,fm4conv7(upsampling)25616128conv8conv61288128conv7,fm3conv5(upsampling)256864conv6conv464464conv5,fm2conv3(upsampling)128432conv4conv232232conv3,fm1conv1(upsampling)64216conv2conv016116conv1disp conv01611conv0
在這里通過使用深度可分離卷積,減小了編碼器輸出特征圖的通道數(shù)來減小特征圖占用,同時為了保證精度增加了解碼器的深度,通過控制解碼器深度和特征圖的通道比例來保證網(wǎng)絡(luò)運(yùn)行時內(nèi)存的良好布局,解碼器網(wǎng)絡(luò)結(jié)構(gòu)如表1所示.
該節(jié)描述了任務(wù)的數(shù)據(jù)集,數(shù)據(jù)集的分割,相關(guān)實驗系統(tǒng)環(huán)境和深度估計網(wǎng)絡(luò)相關(guān)實驗結(jié)果對比分析以及量化結(jié)果的對比分析.
KITTI深度補(bǔ)全與估計數(shù)據(jù)集[21],包含了93000 張帶有LiDaR掃描的RGB深度信息圖.
在這里對數(shù)據(jù)集進(jìn)行了一系列的預(yù)處理工作.采用了Eigen[2]一樣的數(shù)據(jù)集劃分方式將KITTI深度補(bǔ)全與估計數(shù)據(jù)集劃分訓(xùn)練集與測試集;并將數(shù)據(jù)集中的靜態(tài)幀剔除,因此訓(xùn)練集中有45200個樣本而測試集包含1776個樣本,如圖5所示.
圖5 KITTI深度補(bǔ)全與估計數(shù)據(jù)集展示Fig.5 Dataset of KITTI depth completion and depth prediction
實驗采用Python3.6.6 + PyTorch CUDA的網(wǎng)絡(luò)訓(xùn)練環(huán)境.實驗服務(wù)器操作系統(tǒng)為Ubuntu 18.04,CUDA版本為10.2.
通過8組實驗對深度估計網(wǎng)絡(luò)的輕量化結(jié)果進(jìn)行評估,實驗分為兩大組分別為基于ResNet以及基于Efficientnet解碼器的估計網(wǎng)絡(luò).對于每一大組實驗進(jìn)行4組對比實驗,分別是網(wǎng)絡(luò)未量化,僅對編碼器部分量化,僅對解碼器部分量化以及全量化.實驗的結(jié)果主要對比絕對相對誤差(abs_rel),均方根誤差(RMSE),精確度(δ),以及延伸的平方相對誤差(sq_rel)和對數(shù)均方根誤差(RMSE_log).
實驗結(jié)果如表2所示.表中Res和Eff分別表示基于ResNet-18以及Efficientnet-b0 編碼器的深度估計網(wǎng)絡(luò),后綴quen、qude、quan分別表示對網(wǎng)絡(luò)進(jìn)行了僅編碼器部分量化,解碼器部分量化以及全網(wǎng)絡(luò)3bit量化.
表2 深度估計網(wǎng)絡(luò)實驗結(jié)果
Table 2 Results to the depth prediction network experiments
abs_relsq_relrmsermse_logδ<1.25δ<1.252δ<1.253Res0.1140.9144.9500.1980.8760.9550.978Res-quan0.1841.6796.3000.2660.7510.9120.962Res-enqu0.1721.6336.1930.2550.7780.9160.964Res-dequ0.1230.9385.0640.2030.8610.9540.979Eff0.1140.9765.0910.2070.8620.9500.976Eff-quan0.1601.5236.1460.2550.7740.9120.963Eff-enc-qu0.1621.6456.1340.2540.7760.9140.962Eff-dequ0.1471.3055.9090.2430.8000.9270.967
對不同程度輕量化的深度估計作了對比結(jié)果.實驗包括了編碼器部分采用ResNet-18和Efficientnet-b0,解碼器部分分別根據(jù)作出調(diào)整的深度估計網(wǎng)絡(luò).并包含了分別對兩個不同深度估計網(wǎng)絡(luò)進(jìn)行3bit可學(xué)習(xí)步長量化后的結(jié)果.為了尋找深度估計網(wǎng)絡(luò)對特征學(xué)習(xí)的特點(diǎn),還增加了4組實驗,分別對基于ResNet-18和基于Efficientnet-b0網(wǎng)絡(luò)進(jìn)行了部分量化,即僅量化編碼器部分或僅量化解碼器部分.
通過實驗結(jié)果對比可以看出,深度估計網(wǎng)絡(luò)對于特征提取部分的更換本身并不敏感,由于ResNet和Efficientnet本身對于圖像特征提取有著幾乎相同的能力,因此在未對深度估計網(wǎng)絡(luò)進(jìn)行量化之前,相對誤差以及平方根誤差基本維持在同一水平.但是基于Efficientnet編碼器深度估計網(wǎng)絡(luò)不僅總參數(shù)量比基于ResNet網(wǎng)絡(luò)小了39.7%,如圖6(a),同時量化后精度比ResNet高,因此可以認(rèn)為,對于Efficientnet更利于將網(wǎng)絡(luò)輕量化.
圖6 基于ResNet與基于Efficientnet網(wǎng)絡(luò)量化后參數(shù)量及參數(shù)所占空間對比Fig.6 Quantized parameters and footprint comparison of ResNet based and Efficientnet based
運(yùn)行過程中,基于ResNet編碼器網(wǎng)絡(luò)特征圖占用的參數(shù)總量約為2.89×106而經(jīng)過結(jié)構(gòu)優(yōu)化的基于Efficientnet編碼器特征圖占用的參數(shù)量為9.06×105,因此在內(nèi)存中節(jié)約了約68.61%的特征圖占用.
如圖6(b)所示,對于ResNet編碼器,其網(wǎng)絡(luò)總參數(shù)量約為1.48×107,由于網(wǎng)絡(luò)參數(shù)在計算機(jī)中儲存為32bit浮點(diǎn)數(shù),因此未量化的ResNet編碼器網(wǎng)絡(luò)在計算機(jī)中占用儲存空間約為56.62MB.經(jīng)過3bit量化后ResNet編碼器網(wǎng)絡(luò)參數(shù)總量由于可學(xué)習(xí)步長的引入增加了6.831×103,但由于參數(shù)位寬從32bit縮小到3bit,故參數(shù)占用儲存空間約為5.31MB.網(wǎng)絡(luò)參數(shù)壓縮率約為90.62%.
而對于Efficientnet編碼器網(wǎng)絡(luò),參數(shù)總量約為7.09×106因此在計算機(jī)中占儲存空間約為34.12MB.該網(wǎng)絡(luò)量化引入可學(xué)習(xí)參數(shù)量為2.9983×104,量化后占用空間約為3.21MB,壓縮率約為90.59%.
在對深度估計最終結(jié)果輸出如圖7,其中圖標(biāo)號1為原圖2、3、4、5分別為分別為未量化深度估計輸出可學(xué)習(xí)步長量化,僅量化編碼器以及僅量化解碼器的深度估計輸出.可以看 到本文設(shè)計的深度估計網(wǎng)絡(luò)可以很好地輸出單目2D圖片的深度估計圖.經(jīng)過量化之后雖然整體深度估計保持了比較好的水平但由于參數(shù)的精度損失而網(wǎng)絡(luò)的表達(dá)不足致使最終結(jié)果細(xì)節(jié)處稍有缺失.因此在網(wǎng)絡(luò)盡可能壓縮的基礎(chǔ)上,未來的研究方向是如何保持精度,因此本文做了對比實驗.意在探索 由量化引入的量化誤差對深度估計網(wǎng)絡(luò)不同部分產(chǎn)生的影響,因此可以看到當(dāng)僅量化編碼器部分時,網(wǎng)絡(luò)輸出細(xì)節(jié)缺失較為嚴(yán)重同時深度估計輸出層次豐富.而當(dāng)僅量化解碼器部分時,網(wǎng)絡(luò)輸出細(xì)節(jié)豐富但深度估計輸出層次感缺失.因此可以得出對于深度估計網(wǎng)絡(luò)量化的未來提升方向:由于編碼器部分對于深度估計網(wǎng)絡(luò)的細(xì)節(jié)部分特征提取起較大的作用,解碼器部分對深度估計網(wǎng)絡(luò)的最后輸出深度層次起較大的作用,因此可以根據(jù)網(wǎng)絡(luò)的不同功能采用不同的量化方法,以此來提高量化壓縮比以及準(zhǔn)確率.
圖7 深度估計網(wǎng)絡(luò)輸出對比Fig.7 Outputs of the depth prediction network
文章討論了對于深度估計網(wǎng)絡(luò)的輕量化實現(xiàn),提出了一個可以進(jìn)行量化的單目深度網(wǎng)絡(luò)模型設(shè)計,并完成對該模型的量化壓縮工作.通過對網(wǎng)絡(luò)的輕量化設(shè)計以及壓縮,最終量化后深度估計網(wǎng)絡(luò)參數(shù)所占空間從34.12MB下降到了3.21MB,壓縮率達(dá)到了90.59%.同時考慮了網(wǎng)絡(luò)運(yùn)行的內(nèi)存優(yōu)化,使得網(wǎng)絡(luò)在內(nèi)存有限設(shè)備中特征圖的內(nèi)存占用降低了68.61%.并且極大地保持了深度估計網(wǎng)絡(luò)的精度,使得其在KITTI數(shù)據(jù)集中絕對相對誤差約為16.0%.