章佳琪,肖 建
(1.南京郵電大學(xué) 電子與光學(xué)工程學(xué)院、柔性電子(未來技術(shù))學(xué)院,江蘇 南京 210046;2.南京郵電大學(xué) 集成電路科學(xué)與工程學(xué)院,江蘇 南京 210046)
隨著當(dāng)今社會經(jīng)濟(jì)和AI技術(shù)的快速發(fā)展,中國移動機(jī)器人行業(yè)迎來了爆發(fā)式增長,移動機(jī)器人也被廣泛應(yīng)用于工業(yè)、服務(wù)、農(nóng)業(yè)、醫(yī)療等社會各領(lǐng)域。移動機(jī)器人通過相機(jī)等視覺傳感器感知環(huán)境,使用目標(biāo)檢測算法識別并定位物體。目標(biāo)檢測算法作為移動機(jī)器人感知環(huán)境能力中的重要一環(huán),在應(yīng)用時也對其運行速度和精度提出了愈來愈高的要求。目標(biāo)檢測算法模型龐大,占用較多的存儲資源,且計算復(fù)雜,通常運行于算力強(qiáng)大,計算資源豐富的設(shè)備上,而嵌入式設(shè)備存儲空間有限,計算資源不足[1]。目標(biāo)檢測算法在嵌入式設(shè)備中部署往往存在因模型龐大導(dǎo)致存儲空間不足、檢測算法準(zhǔn)確度不高和運行效率低下等問題。因此,適用于移動機(jī)器人的目標(biāo)檢測算法已成為當(dāng)今機(jī)器人研究領(lǐng)域的一大熱點。
目前,目標(biāo)檢測算法可以大致分為兩類。一類是二階段算法模型,如基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)R-CNN[2]、Fast R-CNN[3]、Faster R-CNN[4]。這類二階段算法模型首先需要獲取目標(biāo)候選幀,然后對候選幀進(jìn)行一系列的分類和回歸操作,其優(yōu)點是識別精度較高。另一類是單階段算法模型,其中YOLO系列算法是最典型的代表,其優(yōu)點是識別速度快、識別精度高。雖然二階段算法模型精度較高,但一階段算法模型所需計算資源更少,運行速度更快,更適合部署在嵌入式設(shè)備中,因此基于YOLO改進(jìn)的算法模型在嵌入式部署領(lǐng)域應(yīng)用更為廣泛。2020年,國外Adarsh等人提出了YOLOv3-tiny,該算法在YOLOv3的基礎(chǔ)上去掉了一些特征層,只保留兩個獨立預(yù)測分支,在運行速度上有了較大的提升[5]。Fang Wei等人提出了Tinier-YOLO,該算法在YOLOv3-tiny基礎(chǔ)上進(jìn)一步縮小模型尺寸,并提高檢測精度和實時性[6]。2021年,國內(nèi)南京郵電大學(xué)的張偉等人在YOLOv3-tiny的基礎(chǔ)上提出了DS-YOLO,該網(wǎng)絡(luò)結(jié)構(gòu)簡單、計算量小,適合部署于無人機(jī)終端上[7]。2020年6月,在YOLOv4[8]算法提出的兩個月后,Alexey A B等人又提出了其輕量化網(wǎng)絡(luò)YOLOv4-tiny[9]。同年,Jiang Zicong等人在YOLOv4-tiny的基礎(chǔ)上利用ResBlock-D模塊替換CSPBlock模塊,降低了計算復(fù)雜度,并利用輔助殘差網(wǎng)絡(luò)塊,提升檢測精度,最終提出了一種高性能的實時目標(biāo)檢測算法[9]。2021年,Wang Guanbo等人提出了TRC-YOLO,該算法對YOLO v4-tiny的卷積核進(jìn)行修剪,通過構(gòu)建CSPResNet結(jié)構(gòu)增強(qiáng)網(wǎng)絡(luò)特征提取能力,最終在Jetson Xavier NX上實現(xiàn)了每秒36.9幀的實時性能[10]。2020年,Jocher提出YOLOv5模型中的YOLOv5s,不僅識別精度高,而且有較高的實時性,但在實際移動機(jī)器人應(yīng)用場景中,嵌入式設(shè)備的計算資源仍不足。
為了更好地實現(xiàn)移動機(jī)器人平臺下的實時目標(biāo)檢測,根據(jù)YOLOv5在嵌入式設(shè)備部署的不足[11],該文提出針對性的改進(jìn)方法:一方面針對YOLOv5s的backbone網(wǎng)絡(luò)比較復(fù)雜的問題,重構(gòu)其backbone網(wǎng)絡(luò),并引入深度可分離卷積,這種卷積相較于普通卷積計算量更小,能降低模型復(fù)雜度,提高網(wǎng)絡(luò)實時性,在引入深度可分離卷積后不可避免地會產(chǎn)生大量信息損失,通過在backbone網(wǎng)絡(luò)中引入殘差結(jié)構(gòu)還原損失的信息,提升該輕量化后網(wǎng)絡(luò)的精度;另一方面以YOLOv5l作為教師網(wǎng)絡(luò),YOLOv5s作為助教網(wǎng)絡(luò)指導(dǎo)輕量化后的DID-YOLO網(wǎng)絡(luò)訓(xùn)練,因backbone網(wǎng)絡(luò)被重構(gòu),因此特征信息大量流失,通過對該網(wǎng)絡(luò)進(jìn)行特征層和輸出層蒸餾,提升DID-YOLO網(wǎng)絡(luò)精度。
YOLO算法將圖像劃分為單元格,并在每個單元格中判斷候選錨。如果目標(biāo)的中心落在一個單元格里,這個單元格負(fù)責(zé)預(yù)測目標(biāo)。YOLOv5是當(dāng)前主流的目標(biāo)檢測算法,其分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四個模型。這四種模型的網(wǎng)絡(luò)結(jié)構(gòu)一致,但模塊數(shù)量和卷積核數(shù)量依次遞增,其中YOLOv5s為輕量型網(wǎng)絡(luò),廣泛應(yīng)用于嵌入式設(shè)備中,具有較高的精度和實時性能。
如圖1所示,YOLOv5s網(wǎng)絡(luò)分為三個部分:第一部分是backbone網(wǎng)絡(luò),負(fù)責(zé)目標(biāo)的特征信息提取。它由Focus模塊、BottlenCSP1模塊和SPP模塊組成。Focus模塊將圖像數(shù)據(jù)分成四部分,每部分可等效為對輸入圖像進(jìn)行兩次下采樣。通過在信道維度上進(jìn)行拼接和卷積的操作來最大限度地減少因?qū)D像下采樣而造成的信息損失。BottlenCSP1結(jié)構(gòu)將CSPNet[12]結(jié)構(gòu)添加到殘差結(jié)構(gòu)中,并將梯度變化映射到特征圖中,該結(jié)構(gòu)可以減少卷積神經(jīng)網(wǎng)絡(luò)的整體計算量,降低網(wǎng)絡(luò)復(fù)雜程度,而且可以有效地增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力。SPP模塊首先通過固定池化操作解決了輸入圖片尺寸不一致問題,并最終獲得相同尺寸的輸出;其次通過空間金字塔池化操作增加了網(wǎng)絡(luò)的整體接受域,實現(xiàn)多重感受野融合。第二部分是Neck 網(wǎng)絡(luò)-PANet[13],主要是對骨干網(wǎng)絡(luò)提取的特征信息進(jìn)行增強(qiáng)。第三部分是head網(wǎng)絡(luò),采用與YOLOv3相同的檢測結(jié)構(gòu),三個檢測頭分別對原始圖像進(jìn)行了8次、16次和32次采樣。

圖1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)示意圖
該文搭建的移動機(jī)器人主控為Jetson AGX Xavier,其結(jié)合相機(jī)組成目標(biāo)檢測算法驗證的嵌入式平臺。Jetson AGX Xavier作為全球首款專為自主機(jī)器打造的計算機(jī),其板載的Xavier Soc具有一個Carmel架構(gòu)8核64位的CPU和Volta架構(gòu)512 CUDA處理器GPU,能以低至10W的功耗提供32 TOPs的強(qiáng)大算力,作為Al邊緣計算平臺,利用英偉達(dá)豐富的Al工具鏈和完備的生態(tài)鏈資源,使得開發(fā)者能夠在較短的時間內(nèi)完成神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練和部署。
2.1.1 深度可分離卷積
卷積是人工神經(jīng)網(wǎng)絡(luò)中一個非常重要的數(shù)學(xué)運算。卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以在圖像幀的幫助下學(xué)習(xí)特征和分類數(shù)據(jù)。深度可分離卷積是CNN常用卷積中的一種,與標(biāo)準(zhǔn)卷積相比,它們需要調(diào)整的參數(shù)更少,且深度可分離卷積計算量較少,這使得它更適合應(yīng)用于移動視覺類型的CNN中,其中谷歌提出的MobileNet[14]、Xception[15]等網(wǎng)絡(luò)為深度可分離卷積在移動視覺領(lǐng)域的典型應(yīng)用。
深度可分離卷積可分為兩個過程:逐通道卷積和逐點卷積。逐通道卷積:一張彩色圖片可分為r、g、b三個通道,每個通道都與一個卷積核進(jìn)行卷積可得到與輸入圖片通道數(shù)一致 的特征圖,如圖2所示。逐點卷積:采用的是1×1卷積的方式,將未卷積前的圖在深度上進(jìn)行加權(quán)組合,生成特征圖,如圖3所示。

圖2 逐通道卷積示意圖

圖3 逐點卷積示意圖
由圖2和圖3可知,當(dāng)卷積核大小為3時,則生成m個特征圖所需的參數(shù)量pn1如公式(1)所示。普通卷積生成m個特征圖所需的參數(shù)量pn2如公式(2)所示。由公式(1)和公式(2)可知,當(dāng)m>1時,生成同數(shù)量的特征圖深度可分離卷積所需參數(shù)量小于普通卷積所需參數(shù)量,因此該文以深度可分離卷積重構(gòu)YOLOv5s的backbone網(wǎng)絡(luò),降低網(wǎng)絡(luò)復(fù)雜度。
pn1=3*3*3+1*1*3*m=27+3m
(1)
pn2=3*3*3*m=27m
(2)
2.1.2 倒置殘差結(jié)構(gòu)
在引入深度可分離卷積后,網(wǎng)絡(luò)復(fù)雜程度下降,但隨著backbone網(wǎng)絡(luò)模型縮小不可避免會產(chǎn)生大量特征信息損失。該文通過在backbone網(wǎng)絡(luò)中引入倒置殘差結(jié)構(gòu)還原損失的信息,提升該輕量化后網(wǎng)絡(luò)的精度。ResNet[16]中提出的殘差結(jié)構(gòu)由1*1卷積、3*3卷積和1*1卷積順序組成,實現(xiàn)網(wǎng)絡(luò)先降維后升維的操作。倒置殘差結(jié)構(gòu)則采用了3*3的深度可分離卷積并將網(wǎng)絡(luò)先升維后降維,將高維特征映射到低維中,通過提升通道數(shù),獲得更多的特征信息。當(dāng)步長為1時,如圖4(a)所示。首先通過1*1的卷積升維,擴(kuò)張通道數(shù)為原來的6倍,然后使用3*3的深度可分離卷積進(jìn)行特征信息提取,再通過1*1的卷積降維至原通道數(shù)量。當(dāng)步長為2時,如圖4(b)所示。由于卷積的步長不一致倒置輸入輸出的尺寸存在差異,因此不將輸入輸出進(jìn)行拼接融合。

圖4 倒置殘差結(jié)構(gòu)示意圖
2.1.3 DID-YOLO算法的建立
針對目標(biāo)檢測算法在嵌入式設(shè)備中運行效率低、占用存儲資源過多的問題,該文使用深度可分離卷積和倒置殘差模塊對YOLOv5s的backbone網(wǎng)絡(luò)進(jìn)行重構(gòu),降低模型復(fù)雜度和計算量,減少模型占用空間,提高其部署在嵌入式設(shè)備時的檢測速度。提出的基于YOLOv5s改進(jìn)后適用于嵌入式設(shè)備的輕量型目標(biāo)檢測算法DID-YOLO網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。圖5中虛線框中是輕量化重構(gòu)后的backbone網(wǎng)絡(luò),負(fù)責(zé)提取圖像中的特征信息。其中DBL為卷積+BatchNormalization+relu6,PDP為stride=2的倒置殘差結(jié)構(gòu)塊,IRLB為stride=1的倒置殘差結(jié)構(gòu)塊,resn即為n個res結(jié)構(gòu)相連接。DBL、PDP和IRLB作為基礎(chǔ)模塊構(gòu)成了DID-YOLO的backbone網(wǎng)絡(luò),使用深度可分離卷積和倒置殘差模塊對YOLOv5s的backbone網(wǎng)絡(luò)進(jìn)行重構(gòu)后,以VOC為數(shù)據(jù)集進(jìn)行訓(xùn)練,計算量為4.65 G,最終生成的模型參數(shù)量為3.63 M。

圖5 DID-YOLO網(wǎng)絡(luò)框架結(jié)構(gòu)示意圖
DID-YOLO算法的整體流程如圖6所示。該網(wǎng)絡(luò)模型的總體結(jié)構(gòu)由輸入端處理模塊、backbone網(wǎng)絡(luò)、neck網(wǎng)絡(luò)以及輸出端處理模塊組成。在輸入端處理模塊中,YOLOv5引入了Mosaic數(shù)據(jù)增強(qiáng)的方法,選用四張圖片以隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的方式將圖片拼接成訓(xùn)練圖片。Mosaic數(shù)據(jù)增強(qiáng)可以豐富數(shù)據(jù)集,在拼接過程中圖片會隨機(jī)縮放,拼接完成后數(shù)據(jù)集中將增加大量小目標(biāo)數(shù)據(jù),提升小目標(biāo)的檢測效果和網(wǎng)絡(luò)的魯棒性。在訓(xùn)練時,針對不同數(shù)據(jù)集初始錨框值處理的問題,輸入端處理模塊中引入自適應(yīng)錨框計算,每次訓(xùn)練時可以自適應(yīng)計算出訓(xùn)練集的最佳初始錨框值。在推理中,針對不同尺寸的輸入圖片,DID-YOLO在輸入端處理模塊中引入了自適應(yīng)圖片縮放,直接在原始圖像中自適應(yīng)地添加最少的黑邊,大大減少了推理計算量,提高了目標(biāo)檢測速度。

圖6 DID-YOLO算法流程
DID-YOLO的backbone網(wǎng)絡(luò)用于提取輸入端處理模塊處理后圖像的特征信息,經(jīng)過輕量化后的backbone網(wǎng)絡(luò)解決了原網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,參數(shù)量和計算量龐大的問題,提高了算法的運行速度。DID-YOLO的Neck網(wǎng)絡(luò)采用PANet結(jié)構(gòu),用于處理特征圖生成特征金字塔,增強(qiáng)模型對不同尺寸目標(biāo)對象的檢測精度,達(dá)到網(wǎng)絡(luò)高精度識別不同大小和尺寸物體的目的。PANet結(jié)構(gòu)為在FPN的基礎(chǔ)上增加一個自底向上方向的增強(qiáng),使得頂層特征圖融合底層特征圖的位置信息,從而提升對大尺寸目標(biāo)物體的檢測效果。
為解決預(yù)測框和真實框完全不重合時,損失函數(shù)不可求導(dǎo)的問題,DID-YOLO的輸出端處理模塊選用CIOU_Loss函數(shù)作為Bounding box的損失函數(shù),其計算公式為:
(3)
CIOU_Loss=1-CIOU=1-(IOU-
(4)
CIOU_Loss不但考慮到了預(yù)測框和真實框重疊的面積,還引入了預(yù)測框和真實框的長寬比和兩者中心點的距離。針對多目標(biāo)框的篩選,YOLOv5的輸出端處理模塊選用nms非最大值抑制,保留檢測效果最好的預(yù)測框,去除冗余的預(yù)測框。
知識蒸餾是一種常用的模型壓縮方法。現(xiàn)有的主流知識蒸餾方法大致可分為兩類。第一類知識蒸餾,使用由教師網(wǎng)絡(luò)生成的分類軟標(biāo)簽和真實標(biāo)簽來指導(dǎo)學(xué)生網(wǎng)絡(luò)訓(xùn)練。Jimmy Ba 等人[17]首先提出了這類方法。但是,隨著網(wǎng)絡(luò)復(fù)雜程度不斷加深,單純依靠教師網(wǎng)絡(luò)的軟標(biāo)簽來蒸餾訓(xùn)練學(xué)生網(wǎng)絡(luò)會產(chǎn)生信息溝壑,導(dǎo)致蒸餾訓(xùn)練對學(xué)生網(wǎng)絡(luò)精度提升效果減弱。因此,第二類利用教師網(wǎng)絡(luò)的特征層對學(xué)生網(wǎng)絡(luò)進(jìn)行指導(dǎo)的知識蒸餾方法被提出。Junho Yim等人[18]在學(xué)生網(wǎng)絡(luò)訓(xùn)練中提出了一種模擬多層教師網(wǎng)絡(luò)特征的方法。Hui Wang等人[19]提出了一種逐步蒸餾的方法,允許學(xué)生網(wǎng)絡(luò)逐步學(xué)習(xí)教師網(wǎng)絡(luò)中間層的特征信息。
該文在YOLOv5s基礎(chǔ)上對其backbone網(wǎng)絡(luò)進(jìn)行輕量化后提出DID-YOLO,造成DID-YOLO大量特征層信息損失,因此提出了針對特征圖和輸出層的知識蒸餾,其蒸餾框架如圖7所示。因backbone網(wǎng)絡(luò)進(jìn)行重構(gòu)后,其輸出特征圖維度與原網(wǎng)絡(luò)輸出的特征圖維度不一致,采用在DID-YOLO的backbone網(wǎng)絡(luò)輸出上添加Converter模塊的方法,使其升維至與教師網(wǎng)絡(luò)匹配。其中Converter模塊由conv、bn和relu6組成。因此教師網(wǎng)絡(luò)在其backbone網(wǎng)絡(luò)輸出上套接relu6函數(shù),保證學(xué)生和教師網(wǎng)絡(luò)的特征層的激活函數(shù)一致。該文提出的知識蒸餾結(jié)構(gòu)在輸出層蒸餾的基礎(chǔ)上,對特征提取也進(jìn)行了蒸餾,提升學(xué)生網(wǎng)絡(luò)的backbone在特征提取上的表征能力,在一定程度上提高了提出的基于YOLOv5s輕量化網(wǎng)絡(luò)的識別精度。

圖7 知識蒸餾框架示意圖
為了驗證提出的移動機(jī)器人目標(biāo)檢測算法DID-YOLO的有效性,該文所有算法模型均在公共數(shù)據(jù)集Pascal VOC上完成訓(xùn)練,并在其驗證集上驗證模型的正確性。其中隨機(jī)篩選16 552張圖片作為訓(xùn)練集用以網(wǎng)絡(luò)模型訓(xùn)練,4 953張圖片作為驗證集用以驗證網(wǎng)絡(luò)模型的正確性。提出的移動機(jī)器人目標(biāo)檢測算法訓(xùn)練和驗證的環(huán)境為ubuntu18.04操作系統(tǒng),硬件配置為Intel?Xeon?Silver4210 CPU@2.20 GHz和TeslaP100-PCI-E GPU,內(nèi)存為12 GB,總顯存為16 GB,該算法在cuda10.1,Pytorch1.7.0下完成模型的搭建和網(wǎng)絡(luò)訓(xùn)練。
在比較模型性能時,以平均準(zhǔn)確率(mAP@0.5)、模型尺寸(Model Size)、檢測速度(fps)衡量算法的精度、復(fù)雜程度和實時性能。其中mAP@0.5是指均交比閾值為0.5時,所有類別的平均AP,其計算公式為:
(5)
mAP@0.5衡量模型精確率隨召回率變化的趨勢,是目標(biāo)檢測算法使用VOC數(shù)據(jù)集測試精度最常用的評價指標(biāo)。其中檢測速度是由目標(biāo)檢測算法處理每張相機(jī)實時捕捉的圖片所用的平均時間,是評價算法運行速度的常用評價指標(biāo)。
提出的移動機(jī)器人目標(biāo)檢測算法DID-YOLO在以不同網(wǎng)絡(luò)為教師網(wǎng)絡(luò)指導(dǎo)訓(xùn)練后的結(jié)果如表1所示。輕量化網(wǎng)絡(luò)DID-YOLO的mAP@0.5為68.05%,以YOLOv5l為教師網(wǎng)絡(luò)進(jìn)行知識蒸餾后,DID-YOLO算法的mAP@0.5提升至72.24%,提升了6.16%;以YOLOv5s為教師網(wǎng)絡(luò)進(jìn)行知識蒸餾后,DID-YOLO算法mAP@0.5提升至72.49%,提升了6.52%;以YOLOv5l為教師網(wǎng)絡(luò)、YOLOv5s為助教網(wǎng)絡(luò)進(jìn)行知識蒸餾后,DID-YOLO算法mAP@0.5提升至73.83%,提升了8.49%。

表1 知識蒸餾結(jié)果對比
由表1可知,DID-YOLO算法的mAP@0.5值最高達(dá)到73.83%。相較于以YOLOv5l為教師網(wǎng)絡(luò)的知識蒸餾訓(xùn)練,引入YOLOv5s作為助教網(wǎng)絡(luò)輔助蒸餾可以得到最高的mAP@0.5值。YOLOv5l具有最高的精度,但其網(wǎng)絡(luò)模型在結(jié)構(gòu)和復(fù)雜度上與學(xué)生網(wǎng)絡(luò)存在較大的差異,因此引入YOLOv5s作為助教網(wǎng)絡(luò)可以提高知識蒸餾能力,輔助指導(dǎo)學(xué)生網(wǎng)絡(luò)訓(xùn)練。
為驗證提出的移動機(jī)器人目標(biāo)檢測算法DID-YOLO部署在嵌入式設(shè)備中的效果,在VOC數(shù)據(jù)集中測試了當(dāng)前嵌入式平臺使用的主流輕量化目標(biāo)檢測算法,包括YOLOv3-Tiny、YOLOv4-Tiny和YOLOv5s,實驗結(jié)果以平均精度均值mAP@0.5、網(wǎng)絡(luò)模型大小和在Xavier上運行的實時幀數(shù)為評價指標(biāo),對比結(jié)果如表2所示。

表2 多種檢測模型結(jié)果對比
以Pascal VOC為數(shù)據(jù)集進(jìn)行訓(xùn)練,YOLOv5s的計算量為8.39 G,生成的模型參數(shù)量為7.07 MB。經(jīng)過深度可分離卷積和倒置殘差模塊對YOLOv5s的backbone網(wǎng)絡(luò)進(jìn)行重構(gòu)后,計算量為4.65 G,最終生成的模型參數(shù)量為3.63 MB。相較于YOLOv5s,DID-YOLO網(wǎng)絡(luò)模型參數(shù)量下降了48.65%,計算量降低了44.58%。對比實時性能,在以AGX Xavier為主控的移動機(jī)器人嵌入式平臺,DID-YOLO實時運行可達(dá)到每秒31.2幀的速度,相較于29.2幀/s的YOLOv5s提升了5.41%。在檢測精度上,DID-YOLO最高mAP@0.5可達(dá)73.83%,相較于YOLOv5s,下降了0.54%。經(jīng)過輕量化后的DID-YOLO損失了一定程度的檢測精度,但實時性能有較大的提升。
與當(dāng)前移動機(jī)器人領(lǐng)域中主流的目標(biāo)檢測算法YOLOv3-Tiny和YOLOv4-Tiny相比,DID-YOLO在模型尺寸、檢測準(zhǔn)確率和速度上都有著較大的優(yōu)勢。由表2可知,提出的DID-YOLO的模型尺寸僅為YOLOv3-Tiny的10.4%、YOLOv4-Tiny的15.38%,其模型尺寸被壓縮至3.63 MB,在嵌入式設(shè)備部署時僅需占用極小的空間資源。雖然DID-YOLO模型尺寸較小,但在公共數(shù)據(jù)集Pascal VOC上其檢測準(zhǔn)確率超過了YOLOv3-Tiny和YOLOv4-Tiny,DID-YOLO的mAP@0.5分別提高了21.05%和11.26%。在AGX Xavier上,DID-YOLO處理實時圖像性能也高于兩者,其檢測速度達(dá)到31.2 fps,相較于YOLOv3-Tiny和YOLOv4-Tiny,其檢測幀率分別提高了6.6幀和6.1幀。以上分析可得,提出的DID-YOLO與原網(wǎng)絡(luò)YOLOv5相比犧牲了一部分的檢測精度,但模型尺寸進(jìn)一步壓縮且實時性能得到一定程度提升,且綜合模型輕量化指標(biāo)、檢測精度參數(shù)和實時檢測性能指標(biāo)與YOLOv3-Tiny和YOLOv4-Tiny相比,提出的DID-YOLO更具優(yōu)越性。
提出的DID-YOLO算法,在YOLOv5s的基礎(chǔ)上引入深度可分離卷積和倒置殘差模塊重構(gòu)其backbone網(wǎng)絡(luò),減少算法復(fù)雜度,并進(jìn)一步壓縮模型,并通過結(jié)合特征層和輸出層的知識蒸餾提高DID-YOLO目標(biāo)檢測的準(zhǔn)確率。最終在Pascal VOC公共數(shù)據(jù)集上進(jìn)行實驗表明,DID-YOLO算法的模型尺寸壓縮至3.63 MB,mAP@0.5達(dá)到73.83%,實時檢測速度達(dá)到31.2 fps,該算法完全滿足一個移動機(jī)器人嵌入式平臺對目標(biāo)檢測算法的模型尺寸、檢測速度和精度的要求。