国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種嵌入式GPU上的實時圖像語義分割方法

2019-12-04 03:15:40董建升袁景凌
小型微型計算機(jī)系統(tǒng) 2019年11期
關(guān)鍵詞:集上金字塔嵌入式

董建升,袁景凌,2,鐘 忺

1(武漢理工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430070)2(武漢理工大學(xué) 交通物聯(lián)網(wǎng)湖北省重點實驗室,武漢 430070)

1 引 言

圖像語義分割是為圖像中的每一個像素分配一個預(yù)先定義好的表示其語義類別的標(biāo)簽[1],是計算機(jī)視覺、圖像處理等領(lǐng)域的基礎(chǔ)性問題之一,可應(yīng)用于自動駕駛、智能安防、智能機(jī)器人、醫(yī)學(xué)影像分析等諸多領(lǐng)域之中,具有重要的研究意義和應(yīng)用價值.近年來深度學(xué)習(xí)的迅猛發(fā)展給各個科研領(lǐng)域帶來了巨大的影響,基于深度學(xué)習(xí)的語義分割方法也日新月異,在性能上取得了極大的飛躍.

Long等人[2]于2014年提出了FCN(fully convolutional network),設(shè)計了一種針對任意大小的輸入圖像,訓(xùn)練端到端的全卷積網(wǎng)絡(luò)的框架,實現(xiàn)逐像素分類,奠定了使用深度網(wǎng)絡(luò)解決圖像語義分割問題的基礎(chǔ)框架[3].Chen等人[4]在FCN的末端添加全連接CRF[5],提出了Deeplab模型,顯著的提高了分割性能.Zheng等人[6]在Deeplab的工作基礎(chǔ)上,將CRF建模為循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,簡稱RNN),解決了Deeplab無法進(jìn)行端到端訓(xùn)練的問題.2016年,Chen等人[7]進(jìn)一步提出Deeplab-V2網(wǎng)絡(luò),對特征圖分辨率變小、定位精度過低等問題進(jìn)行改進(jìn).2017年,Chen等人[8]對Deeplab-V2中的ASPP模塊進(jìn)行改進(jìn),提出了Deeplab-V3網(wǎng)絡(luò).

在使用CNN進(jìn)行圖像語義分割過程中,池化操作能夠增大特征圖的感受野,但也帶來了部分像素的空間信息丟失的問題[9].Olaf等人[10]提出了U-Net解決這一問題,該網(wǎng)絡(luò)利用編碼器-解碼器結(jié)構(gòu)在編碼器中逐步減少特征圖的分辨率,在解碼器中則逐步還原圖像細(xì)節(jié).Vijay等人[11]提出的SegNet是一個類似編碼器-解碼器結(jié)構(gòu)的對稱結(jié)構(gòu)網(wǎng)絡(luò),該網(wǎng)絡(luò)的左邊是一個由全卷積網(wǎng)絡(luò)構(gòu)成的編碼器,右邊是一個由反卷積網(wǎng)絡(luò)構(gòu)成的解碼器.Adam等人[12]在2016年提出的ENet中的編碼部分比解碼部分更加復(fù)雜,是一種不對稱的編碼器-解碼器結(jié)構(gòu),該網(wǎng)絡(luò)由較少的卷積層構(gòu)成,并且利用低階近似對卷積操作進(jìn)行簡化,顯著的提高了網(wǎng)絡(luò)的計算效率.

圖1 ShuffleNet V2構(gòu)造單元Fig.1 Building blocks of ShuffleNet V2

隨著半導(dǎo)體工藝以及記憶芯片設(shè)計水平的不斷提升,嵌入式GPU的性能得到了空前的發(fā)展,其計算能力不斷提升,應(yīng)用的領(lǐng)域也更為廣泛.盡管如此,受限于復(fù)雜深度學(xué)習(xí)網(wǎng)絡(luò)的算力要求,大部分高準(zhǔn)確度的深度學(xué)習(xí)網(wǎng)絡(luò)在低功耗的嵌入式GPU上運行速度緩慢,很難在實際場景中應(yīng)用,于是一些學(xué)者開始嘗試提高深度學(xué)習(xí)網(wǎng)絡(luò)的計算效率.Wu等人[13]和Zhao等人[14]通過裁剪、調(diào)整大小等操作來固定網(wǎng)絡(luò)的輸入尺寸,從而降低計算復(fù)雜度,這是一種簡單有效的方法,但會犧牲較大的性能.Hinton等人[15]和Han[16]等人分別使用知識蒸餾和剪枝來壓縮已有的復(fù)雜網(wǎng)絡(luò),其目標(biāo)在于盡可能地減小模型大小,因而會對原網(wǎng)絡(luò)結(jié)構(gòu)造成極大程度的改造甚至是破壞.Zhang等人[17]和Ma等人[18]分別提出了ShuffleNet V1和ShuffleNet V2網(wǎng)絡(luò),ShuffleNet V2構(gòu)造單元如圖1所示.這兩個網(wǎng)絡(luò)主要利用深度可分離卷積(Depthwise Separable Convolution)來簡化網(wǎng)絡(luò),在犧牲少量精度的條件下顯著地提高了計算效率,可以很好地作為我們研究輕量級圖像語義分割模型的基礎(chǔ).

因此,針對自動駕駛、智能機(jī)器人等實時性應(yīng)用背景,本文提出了一個輕量級的圖像語義分割模型,該模型在保留較高準(zhǔn)確度的前提下,實現(xiàn)了嵌入式平臺上的實時圖像語義分割,為深度學(xué)習(xí)模型在嵌入式平臺上的實時性應(yīng)用提供了支持.本文的主要工作如下:

1)提出了一個輕量級的圖像語義分割模型,該模型在嵌入式平臺上實現(xiàn)了實時圖像語義分割,并在Cityscapes數(shù)據(jù)集上達(dá)到了72.17%的mIoU.

2)使用基于深度可分離卷積的特征金字塔結(jié)構(gòu)替換輕量級網(wǎng)絡(luò)ShuffleNet V2中單個的3×3卷積核,來捕獲多尺度空間信息,提高模型的性能.

3)利用NVIDIA的推理加速器TensorRT進(jìn)行合并層、降低計算精度、并行優(yōu)化等操作,提高模型的計算效率.

2 網(wǎng)絡(luò)結(jié)構(gòu)

在圖像語義分割任務(wù)中,對小目標(biāo)如交通信號燈、桿狀物的分割極具挑戰(zhàn)性,這是因為小目標(biāo)的空間信息很容易在不斷地卷積池化過程中丟失,或者與大目標(biāo)的空間信息重疊從而被忽略,在一定程度上降低了分割精度.為了解決這一問題,本文使用特征金字塔結(jié)構(gòu)替換ShuffleNet V2中單個的3×3卷積核來捕獲多尺度空間信息,再進(jìn)行信息融合,提高模型的性能.但特征金字塔結(jié)構(gòu)是計算密集型的,為了避免對模型的計算效率產(chǎn)生較大影響,本文使用計算高效的深度可分離卷積結(jié)構(gòu)代替標(biāo)準(zhǔn)的卷積核.

2.1 深度可分離卷積

深度可分離卷積是許多輕量級神經(jīng)網(wǎng)絡(luò)模型[17-20]的關(guān)鍵結(jié)構(gòu),它通過分解標(biāo)準(zhǔn)卷積操作來降低計算量.卷積層的主要作用是特征提取,標(biāo)準(zhǔn)的卷積將三維的卷積核作用.

圖2 網(wǎng)絡(luò)構(gòu)造單元Fig.2 Building blocks of network

在一組特征圖上,需要同時學(xué)習(xí)空間上的相關(guān)性和通道間的相關(guān)性.深度可分離卷積的基本思想是將標(biāo)準(zhǔn)的卷積操作分解為逐通道卷積(Depthwise Convolution)和逐點卷積(Pointwise Convolution)兩步操作.它首先分別對輸入的每個通道使用一個逐通道卷積來捕獲通道中的空間信息,然后使用實質(zhì)為1×1卷積核的逐點卷積來捕獲跨通道信息.

假設(shè)有一個卷積層,其輸入特征圖Li大小為h×w×di,輸出特征圖Lj大小為h×w×dj.對于標(biāo)準(zhǔn)卷積層,其卷積核K∈Rk×k×di×dj,其中k是卷積核的大小,其卷積操作的計算量為h·w·di·dj·k·k.對于深度可分離卷積層,其逐通道卷積操作的計算量為h·w·di·k·k,逐點卷積操作的計算量為h·w·di·dj,因此深度可分離卷積操作的總計算量為h·w·di·(k2+dj).那么,標(biāo)準(zhǔn)卷積操作與深度可分離卷積操作的計算量之比應(yīng)為:

(1)

由此可見,深度可分離卷積操作極大地降低了標(biāo)準(zhǔn)卷積操作的計算量,當(dāng)輸出通道數(shù)量dj越大時,減少的計算量也就越大.

表1 網(wǎng)絡(luò)結(jié)構(gòu)
Table 1 Network structure

LayerOutputSizeKernelStrideRateRepeatImage512×1024×3Conv2DMaxPool256×512×24128×256×243×321Stage164×128×11664×128×11621113Stage232×64×23232×64×23221117Stage332×64×46432×64×4643×311(1,2,3)13Conv2DConv2D128×256×256128×256×n_classes1×111BilinearUp512×1024×n_classes1

2.2 網(wǎng)絡(luò)構(gòu)造單元

如圖2所示,本文使用基于深度可分離卷積的特征金字塔結(jié)構(gòu)替換ShuffleNet V2中單個的3×3卷積核,來捕獲多尺度空間信息.其中DWConv表示Depthwise Convolution,?表示連接操作.

對于圖2(a)所示的基本單元,首先通過Channel Split操作將通道數(shù)為c的輸入劃分成通道數(shù)分別為c-c′和c′的兩組特征圖,兩組特征圖分別通過下面的兩個分支.為簡單起見,本文令c′=c/2.右分支由一個特征金字塔結(jié)構(gòu)和兩個1×1卷積組成,特征金字塔結(jié)構(gòu)中的DWConv的步長均為1,通過該分支的輸入特征圖和輸出特征圖具有相同的通道數(shù).通過左分支的特征圖作同等映射直接與右分支的輸出進(jìn)行拼接.最后通過Channel Shuffle操作重新分配特征圖通道順序,保證兩個分支間的信息交流

對于圖2(b)所示的空間下采樣單元,該單元移除了Channel Split操作,輸入將被復(fù)制到兩個分支同時進(jìn)行計算,因此最后整個空間下采樣單元的輸出通道數(shù)會翻倍.與基本單元不同的是,空間下采樣單元中右分支的特征金字塔結(jié)構(gòu)中的DWConv的步長均設(shè)置2,以實現(xiàn)空間下采樣.左分支添加了一個步長為2的DWConv和一個1×1卷積.接著連接兩個分支的輸出并進(jìn)行Channel Shuffle操作.

2.3 網(wǎng)絡(luò)結(jié)構(gòu)

本文提出的網(wǎng)絡(luò)結(jié)構(gòu)如表1所示,可以劃分將其為初始化模塊,中間模塊和上采樣模塊.

初始化模塊由一個標(biāo)準(zhǔn)卷積層和一個最大池化層組成,該模塊能夠?qū)⑤斎肟焖俚叵虏蓸拥皆瓐D的1/4大小.中間模塊由3個Stage組成,這個模塊與ShuffleNet V2的網(wǎng)絡(luò)結(jié)構(gòu)類似,但本文進(jìn)行了一些修改.Chen等人[8]發(fā)現(xiàn)連續(xù)的下采樣操作會降低特征圖的分辨率,丟失大量的細(xì)節(jié)信息,這對語義分割是有害的.因此對于Stage3中的空間下采樣單元,本文將其特征金字塔結(jié)構(gòu)中的卷積步長均設(shè)置為1,同時將Stage3中基本單元中特征金字塔結(jié)構(gòu)的卷積核大小均設(shè)置為3×3,擴(kuò)張率分別設(shè)置為(1,2,3).本文通過上述設(shè)計將Stage3的output_stride由ShuffleNet V2中的32倍調(diào)整到為16倍,更有利于提取細(xì)節(jié)信息[8].上采樣模塊由兩個1×1的卷積層和雙線性插值操作組成,該模塊將提取到的特征圖進(jìn)行分類并上采樣到原圖大小.

3 TensorRT推理加速

TensorRT是NVIDIA公司推出的深度學(xué)習(xí)網(wǎng)絡(luò)推理加速引擎.如圖3所示,它可以對訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行合并層、精度校準(zhǔn)、動態(tài)存儲、內(nèi)核自動調(diào)整、并行優(yōu)化等操作,從而提升模型的推理速度.加速后的網(wǎng)絡(luò)無需深度學(xué)習(xí)架構(gòu)支持,對平臺的依賴性極小,無論在高性能GPU還是嵌入式GPU上都有可觀的加速能力.

圖3 TensorRT推理加速Fig.3 TensorRT inference acceleration

表2 Cityscapes測試集上實驗結(jié)果對比
Table 2 Comparison of experimental results on cityscapes test set

MethodmIoUBuildingSkyCarSignRoadPersonFencePoleSidewalkBicycleEnet[12]58.385.090.690.644.096.365.533.243.574.255.4ShuffleNetv2+DPC[22]70.390.793.994.066.998.178.550.951.582.567.5Fast-SCNN[21]68.089.794.393.060.597.974.048.648.381.661.2Ours72.191.293.686.172.697.281.951.058.181.269.9

算法1.使用TensorRT構(gòu)建推理加速引擎

輸入:訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)

輸出:推理加速引擎

1.model←load_model()

2.weights←get_weights()

3.model←populate_model(model,weights)

4.engine←build_engine(model)

5.engine←serialize_engine(engine)

6.return engine

推理加速引擎的構(gòu)建如算法1所示.首先加載模型和訓(xùn)練好的模型參數(shù),并將模型參數(shù)填充到模型中,然后利用加載參數(shù)后的模型構(gòu)建推理引擎,最后將推理引擎序列化.接下來就可以用推理引擎進(jìn)行推理.

4 實驗分析

4.1 數(shù)據(jù)集

本文主要在Cityscapes數(shù)據(jù)集上對提出的網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和評估.Cityscapes是一個圖像語義分割領(lǐng)域的大型城市街景數(shù)據(jù)集.它包含5000個精細(xì)標(biāo)注的樣本,其中用于訓(xùn)練、驗證和測試的數(shù)據(jù)集分別包含2975、500和1525個樣本.分割的目標(biāo)包含道路、人行道、建筑、圍墻、圍欄、桿狀物、交通信號燈、交通標(biāo)志、植被、地形、天空、人、騎手、汽車、卡車、公交車、火車、摩托車、自行車共19個類別.

4.2 訓(xùn)練細(xì)節(jié)

本文基于Pytorch深度學(xué)習(xí)網(wǎng)絡(luò)框架采用并行GPU進(jìn)行訓(xùn)練.網(wǎng)絡(luò)每次訓(xùn)練的樣本數(shù)(batch-size)為16,采用動量(momentum)為0.9的隨機(jī)梯度下降(Stochastic Gradient Descent)優(yōu)化算法.與文獻(xiàn)[19,21,22]類似,學(xué)習(xí)率采用初始值為2.5e-2,冪值(power)為0.9的多項式衰減策略,使用交叉熵?fù)p失函數(shù)進(jìn)行損失計算.為了強(qiáng)化數(shù)據(jù),我們對訓(xùn)練數(shù)據(jù)集進(jìn)行了隨機(jī)尺寸調(diào)整,隨機(jī)裁剪,水平翻轉(zhuǎn)等操作.

4.3 實驗結(jié)果

表2和表3為Cityscapes測試集上的實驗結(jié)果對比.表2展示了mIoU以及部分類別的IoU結(jié)果對比,本文提出的網(wǎng)絡(luò)無論是單個類別的IoU還是mIoU都優(yōu)于目前大部分的輕量級圖像語義分割網(wǎng)絡(luò).表3展示了19個細(xì)分類別(class)和7個粗分類別(category)的IoU結(jié)果以及網(wǎng)絡(luò)參數(shù)數(shù)量的對比,特別注意的是,盡管網(wǎng)絡(luò)的參數(shù)數(shù)量略大于部分其他網(wǎng)絡(luò),但是仍然是一個輕量級網(wǎng)絡(luò),能夠達(dá)到較快的推理速度.

表3 Cityscapes測試集的Class IoU和Cat.IoU結(jié)果
Table 3 Class and category IoU on cityscapes test set

MethodClassIoUCat.IoUParamsSegNet[11]56.179.829.46Enet58.380.400.37ShuffleNetv2+DPC70.3386.4803.82Fast-SCNN68.084.701.11Ours72.1786.6103.29

表4 Cityscapes測試集上的消融實驗結(jié)果
Table 4 Ablation results on the cityscapes test set

MethodClassParamsShuffleNetv267.702.27Ours72.1703.29

表5 Xavier上的推理速度
Table 5 Inference speed on xavier

本文進(jìn)行了一個簡單的消融實驗來驗證特征金字塔結(jié)構(gòu)對網(wǎng)絡(luò)的性能和參數(shù)的影響,實驗結(jié)果如表4所示.在Cityscapes測試集上,ShuffleNet V2的mIoU是67.7%,在使用特種金字塔結(jié)構(gòu)對ShuffleNet V2的構(gòu)造單元進(jìn)行優(yōu)化之后,mIoU達(dá)到了72.17%,網(wǎng)絡(luò)的性能得到了顯著的提升.但相應(yīng)的參數(shù)數(shù)量也增加了約1.45倍.

為了驗證網(wǎng)絡(luò)在嵌入式平臺的推理速度以及TensorRT的推理加速效果,本文在NVIDIA Jetson Xavier上進(jìn)行了推理實驗.Xavier的CPU采用8核ARM64架構(gòu),GPU采用512顆CUDA的Volta,支持FP32/FP16/INT8,20W功耗下單精度浮點性能1.3TFLOPS,Tensor核心性能20TOPs,解鎖到30W后可達(dá)30TOPs.Cityscapes數(shù)據(jù)集上的圖片像素尺寸為1024×2048,我們分別進(jìn)行了以1倍,1/2倍,1/4倍尺寸為輸入的網(wǎng)絡(luò)在嵌入式平臺Xavier推理速度測試實驗,實驗結(jié)果如表5所示.對于512×1024的輸入圖像,原網(wǎng)絡(luò)在Xavier上的推理速度約為25 FPS,經(jīng)過TensorRT加速后,推理速度達(dá)到了45 FPS,加速比約為1.8,加速后的網(wǎng)絡(luò)實現(xiàn)了嵌入式平臺上的實時圖像語義分割.

圖4 Cityscapes驗證集上的部分分割結(jié)果(標(biāo)簽中的黑色區(qū)域被忽略)Fig.4 Example results on Cityscapes validation set(Black colored regions on ground truth are ignored)

最后,圖4展示了網(wǎng)絡(luò)在Cityscapes驗證集上的部分實驗結(jié)果對比.第1列是原圖,第2列是精細(xì)標(biāo)注的標(biāo)簽,第3列是ShuffleNetV2+DPC的分割結(jié)果,第4列是本文的分割結(jié)果.可以看到,在一些細(xì)節(jié)方面,本文提出的網(wǎng)絡(luò)更接近于實際標(biāo)簽.例如第2幅圖中的圍欄,第4幅圖中遠(yuǎn)處的行人以及第5幅圖中的三輪車等.而且我們的分割結(jié)果有較少的噪聲點.

5 總 結(jié)

深度學(xué)習(xí)已經(jīng)廣泛應(yīng)用于圖像語義分割,并取得了比傳統(tǒng)方法更高的準(zhǔn)確度.本文針對復(fù)雜深度學(xué)習(xí)網(wǎng)絡(luò)在嵌入式平臺上推理速度慢,性能較低的問題,提出了一個輕量級圖像語義分割網(wǎng)絡(luò).該網(wǎng)絡(luò)通過特征金字塔結(jié)構(gòu)提取多尺度空間信息,提升網(wǎng)絡(luò)的細(xì)節(jié)分割能力從而提升網(wǎng)絡(luò)的性能.隨后利用NVIDIA的推理加速器TensorRT對網(wǎng)絡(luò)進(jìn)行優(yōu)化,提升網(wǎng)絡(luò)在嵌入式平臺上的推理速度.實驗結(jié)果表明本文的網(wǎng)絡(luò)在保留較高準(zhǔn)確率的條件下,實現(xiàn)了嵌入式平臺上的實時圖像語義分割.

從分割結(jié)果來看,邊界的精確分割是網(wǎng)絡(luò)需要改進(jìn)的方向.在未來的工作中,打算將一些邊緣分割算法與本文的網(wǎng)絡(luò)有效地結(jié)合起來,以進(jìn)一步提高模型的性能.

猜你喜歡
集上金字塔嵌入式
“金字塔”
A Study of the Pit-Aided Construction of Egyptian Pyramids
Cookie-Cutter集上的Gibbs測度
鏈完備偏序集上廣義向量均衡問題解映射的保序性
海上有座“金字塔”
搭建基于Qt的嵌入式開發(fā)平臺
復(fù)扇形指標(biāo)集上的分布混沌
神秘金字塔
童話世界(2017年11期)2017-05-17 05:28:25
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺聯(lián)盟
兰溪市| 团风县| 湟源县| 博罗县| 东明县| 明溪县| 马公市| 南召县| 浪卡子县| 松阳县| 天全县| 石河子市| 自治县| 长阳| 赣榆县| 常宁市| 潮安县| 苍梧县| 新野县| 汶上县| 磐安县| 霍林郭勒市| 万载县| 临泉县| 苗栗县| 临湘市| 左云县| 普宁市| 邯郸县| 古浪县| 彭山县| 鹿邑县| 台北市| 烟台市| 望谟县| 嫩江县| 雷波县| 泽普县| 宁强县| 钟山县| 萍乡市|