曹獻(xiàn)爍,陳純毅,胡小娟,于海洋,李延風(fēng)
(長春理工大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,長春 130022)
增強(qiáng)現(xiàn)實(shí)(augment reality,AR)這一概念最早是由Azuma[1]提出的,他認(rèn)為增強(qiáng)現(xiàn)實(shí)必須包含三個(gè)方面的內(nèi)容:虛實(shí)結(jié)合、實(shí)時(shí)交互、三維注冊(cè)。其中,三維注冊(cè)部分受到自然圖像的識(shí)別能力和移動(dòng)設(shè)備性能的限制,存在識(shí)別速度慢、準(zhǔn)確率低的問題。隨著人工智能的飛速發(fā)展,現(xiàn)階段涌現(xiàn)大量優(yōu)秀的目標(biāo)檢測算法,其中包括以Yolo[2]算法、SSD[3]算法為代表的one-stage目標(biāo)檢測算法,單階段網(wǎng)絡(luò)流程簡單,直接產(chǎn)生物體類別率及位置情況,單次檢測即可完成,檢測速度較快[4];以RCNN[5]、Fast R-CNN[6]和Faster R-CNN[7]為代表的two-stage目標(biāo)檢測算法,雙階段網(wǎng)絡(luò)首先產(chǎn)生區(qū)域候選框并提取特征,然后產(chǎn)生位置框并預(yù)測類。目前其他研究人員提出的基于深度學(xué)習(xí)的目標(biāo)檢測算法,大都需要依賴強(qiáng)大算力的GPU,價(jià)格比較昂貴。針對(duì)類似問題,何雨等[8]在Yolov5s網(wǎng)絡(luò)的基礎(chǔ)上引入ShuffleNetv2特征提取機(jī)制來實(shí)現(xiàn)網(wǎng)絡(luò)的輕量化,同時(shí)采用加權(quán)雙向特征金字塔BiFPN獲取特征信息更為豐富的特征圖,來提升目標(biāo)檢測精度,得到一種新的室內(nèi)目標(biāo)檢測模型。Wang等[9]提出了DDH-YOLOv5目標(biāo)檢測模型,采用雙IoU感知解耦頭,在不顯著增加FLOPS和參數(shù)的情況下,大幅提高了模型的定位精度。Naritomi等[10]開發(fā)了HoloLens應(yīng)用程序以負(fù)責(zé)食品分類的信息增強(qiáng),用戶可以選用不同可選類別的虛擬視頻注冊(cè)到真實(shí)食品表面上,外部服務(wù)器負(fù)責(zé)圖像分割的神經(jīng)網(wǎng)絡(luò)計(jì)算,全息透鏡本身僅負(fù)責(zé)視覺渲染的顯示。
為解決以上不足,將改進(jìn)后的Yolov5s模型轉(zhuǎn)化為開放式神經(jīng)網(wǎng)絡(luò)(open neural network exchange,ONNX)格式移植到手機(jī)上,主要貢獻(xiàn)如下。
1) 針對(duì)在移動(dòng)端部署目標(biāo)檢測模型出現(xiàn)的模型參數(shù)量大、識(shí)別速度慢的問題,對(duì)Yolov5s進(jìn)行改進(jìn)。首先將MobileNetV3網(wǎng)絡(luò)作為Yolov5s主干網(wǎng)絡(luò)以降低模型參數(shù)量。為了更好地?cái)M合非線性數(shù)據(jù)優(yōu)化模型收斂效果,將MobileNetV3網(wǎng)絡(luò)ReLU激活函數(shù)替換成Mish激活函數(shù)以避免梯度消失和梯度爆炸。其次將Neck部分原有的PANet[11]網(wǎng)絡(luò)替換成加權(quán)雙向特征金字塔網(wǎng)絡(luò)BiFPN[12],利用一種迭代式的特征融合方法提高檢測精度。此外,引入坐標(biāo)注意力機(jī)制使得模型關(guān)注大范圍的位置信息以提高檢測性能。為了優(yōu)化模型訓(xùn)練收斂速度,采用Focal-Loss EIoU[13]作為邊框回歸損失函數(shù)以解決低質(zhì)量樣本產(chǎn)生損失值劇烈震蕩的問題。
2) 針對(duì)部分手機(jī)應(yīng)用需要通過連接Wi-Fi和在外部服務(wù)器進(jìn)行復(fù)雜運(yùn)算的問題,設(shè)計(jì)一種可以在手機(jī)移動(dòng)端使用Pytorch訓(xùn)練模型的目標(biāo)識(shí)別方案,完全本地工作,不需要Wi-Fi連接與外部設(shè)備接入。
Yolov5[14](You only look once version 5)是Ultralytics公司于2020年提出的,是目前單階段目標(biāo)檢測算法中檢測速度和識(shí)別精度比較優(yōu)秀的算法。由于將模型部署到手機(jī)移動(dòng)端要求實(shí)時(shí)監(jiān)測的速度快、延時(shí)低,因此選擇檢測速度最快的Yolov5s模型,對(duì)Yolov5s算法進(jìn)行改進(jìn)。其網(wǎng)絡(luò)一共由4個(gè)部分組成,分別是輸入部分(Input)、主干網(wǎng)絡(luò)(Backone)、頸部網(wǎng)絡(luò)(Neck)和目標(biāo)檢測頭(Head),網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
MobileNetV3[15]是谷歌提出的輕量級(jí)網(wǎng)絡(luò)模型,綜合了MobileNetV2和MobileNetV1的優(yōu)點(diǎn),在MobileNetv2網(wǎng)絡(luò)基礎(chǔ)上進(jìn)行改進(jìn)的。其主干網(wǎng)絡(luò)Bneck如圖2所示。
圖2 MobilenetV3 網(wǎng)絡(luò)Bneck結(jié)構(gòu)圖
MobileNetV3由1×1普通卷積和深度可分離卷積堆疊形成的倒殘差結(jié)構(gòu)搭建而成,即先用逐點(diǎn)卷積(point wise convolution,PW)進(jìn)行升維,之后在一個(gè)高維空間中使用深度卷積(depth-wiseconvolution,DW)來提取特征,然后用PW卷積進(jìn)行降維,并將SE注意力機(jī)制插入其部分倒殘差結(jié)構(gòu)以提升網(wǎng)絡(luò)的特征提取能力。網(wǎng)絡(luò)模型的構(gòu)建采用了自動(dòng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù)(neural architecture search,NAS)和NetAdapt算法,即先通過優(yōu)化每個(gè)網(wǎng)絡(luò)塊來搜索全局網(wǎng)絡(luò)結(jié)構(gòu),然后通過NetAdapt算法對(duì)各個(gè)模塊確定之后的網(wǎng)絡(luò)層進(jìn)行微調(diào)。
實(shí)驗(yàn)基于Yolov5s算法提出了改進(jìn)網(wǎng)絡(luò)Yolov5-MCB。主干網(wǎng)絡(luò)采用輕量化的MobileNetV3,減少參數(shù)量,提高檢測速度。MobileNetV3的ReLU激活函數(shù)替換成Mish激活函數(shù),提高網(wǎng)絡(luò)的泛化能力,在Backbone部分引入CA模塊,增強(qiáng)獲取全面區(qū)域信息特征的能力,提高檢測精度。將原有的PANet網(wǎng)絡(luò)替換成加權(quán)雙向特征金字塔網(wǎng)絡(luò)BiFPN,實(shí)現(xiàn)自上而下與自下而上的深淺層特征的雙向融合,提高檢測精度。損失函數(shù)采用Focal-Loss EIoU損失函數(shù),解決樣本不均衡問題,加快網(wǎng)絡(luò)收斂速度。改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 Yolov5s-MCB網(wǎng)絡(luò)結(jié)構(gòu)圖
MobileNetV3原本使用ReLU激活函數(shù),為了提高網(wǎng)絡(luò)的泛化能力,將其替換為Mish激活函數(shù)。Mish激活函數(shù)是非單調(diào)函數(shù),其取值范圍為[≈0.31,∞),無上界避免了導(dǎo)致訓(xùn)練速度急劇下降的梯度飽和,無下界有助于實(shí)現(xiàn)強(qiáng)正則化效果,適當(dāng)?shù)臄M合模型有助于保持小的負(fù)值以及穩(wěn)定網(wǎng)絡(luò)梯度流。ReLU的函數(shù)表達(dá)式為f(x)=max(0,x),不能保持負(fù)值導(dǎo)致大多數(shù)神經(jīng)元得不到更新。
Mish是光滑函數(shù),具有較好的泛化能力和對(duì)結(jié)果的優(yōu)化能力。如圖4所示,ReLU和Mish之間的一個(gè)隨機(jī)初始化的神經(jīng)網(wǎng)絡(luò)在宏觀平滑度上的劇烈變化。平滑的激活函數(shù)允許更好的信息深入神經(jīng)網(wǎng)絡(luò),從而得到更好的準(zhǔn)確性和泛化性。
圖4 ReLU和Mish曲線
表1是改進(jìn)后的Mobilenetv3網(wǎng)絡(luò)結(jié)構(gòu),共計(jì)6列。
表1 改進(jìn)Mobilenetv3網(wǎng)絡(luò)結(jié)構(gòu)
第1列Input代表輸入特征層的尺寸。3代表輸入特征圖的通道數(shù),640×640代表輸入特征圖的長寬尺寸。
第2列Operator代表卷積核的類型與大小。conv2d,n×n表示n×n大小卷積核的2D卷積操作;bneck全稱bottleneck,表示深度可分離卷積操作。
第3列Size代表bneck中的第一層1×1卷積升維操作后的通道數(shù)。
第4列SE代表是否使用SE注意力模塊。
第5列NL代表使用的激活函數(shù)類型。其中HS代表使用hard-swish激活函數(shù),Mish代表使用Mish激活函數(shù)。所提算法將原有的ReLU激活函數(shù)替換為Mish激活函數(shù),使得模型訓(xùn)練時(shí)具有更好的收斂能力,提升了模型的泛化能力。
第6列Stride代表卷積核的步長。Stride=2時(shí),輸出特征尺寸是輸入尺寸的一半。
傳統(tǒng)主流的注意力機(jī)制用于神經(jīng)網(wǎng)絡(luò)都可以帶來不錯(cuò)的性能提升,例如使用Self-Attention[16],但是這種注意力的計(jì)算復(fù)雜度過大,對(duì)輕量化網(wǎng)絡(luò)而言是無法承受的,因此目前主流在輕量化網(wǎng)絡(luò)上主要使用SE[17](squeeze-and-excitation)和CBAM[18](convolutional block attention module)。但SE注意力機(jī)制不足之處在于僅重視通道間的特征信息,忽視了因位置信息確定生成空間選擇性帶來的影響[14]。CBAM通過在通道上進(jìn)行全局池化捕獲位置信息,但只能捕獲局部的信息,大范圍相互依賴的信息容易被忽視。
坐標(biāo)注意力是新加坡國立大學(xué)提出的一種應(yīng)用于輕量級(jí)網(wǎng)絡(luò)的注意力機(jī)制。CA[19](coordinate attention)是一種新的高效注意力機(jī)制,其主要思想是將位置信息嵌到通道注意力中,使得輕量級(jí)網(wǎng)絡(luò)能夠獲取更加全面的區(qū)域信息特征,降低了計(jì)算的復(fù)雜度,避免了大量計(jì)算。
CA注意力機(jī)制全面考慮特征圖通道和空間的位置信息間的關(guān)系,在幾乎沒有額外消耗計(jì)算資源的情況下靈活地插入網(wǎng)絡(luò),對(duì)于算法性能的提升效果更好。其結(jié)構(gòu)如圖5所示。
圖5 CA注意力結(jié)構(gòu)圖
CA模塊工作流程如下:首先將C×H×W的特征圖作為模塊的輸入,對(duì)于CA注意力模塊編碼高度H和寬度W,分別用H×1和W×1的池化核沿著X水平方向和Y垂直方向?qū)γ總€(gè)通道進(jìn)行平均池化操作,寬度W平均池化與高度H平均池化的輸出定義分別如下:
(1)
(2)
CA模塊得到水平方向與垂直方向的特征圖后,經(jīng)過特征圖拼接、卷積、激活及拆分操作,y分解為yi和yj。之后對(duì)yi通過卷積和激活操作完成對(duì)W的加權(quán),對(duì)yj通過卷積和激活操作完成對(duì)H的加權(quán),相關(guān)定義為:
wi=σ(Fi(yi))
(3)
wj=σ(Fi(yj))
(4)
將輸入特征圖與上述2個(gè)注意力權(quán)重相乘,從而得到表達(dá)能力更強(qiáng)的特征圖。CA注意力機(jī)制的特征圖輸出定義為:
(5)
Yolov5s的特征融合網(wǎng)絡(luò)采用FPN+PAN網(wǎng)絡(luò)結(jié)構(gòu)。FPN的網(wǎng)絡(luò)結(jié)構(gòu)如圖6(a)所示。FPN只能自頂向下傳達(dá)強(qiáng)語義信息,深層特征圖上采樣后與淺層特征圖融合。但在深層的神經(jīng)網(wǎng)絡(luò)中,下采樣過程中丟失了目標(biāo)的大部分信息,這種方式不能很好地進(jìn)行特征融合。
圖6 FPN PAN BiFPN網(wǎng)絡(luò)結(jié)構(gòu)圖
PANet的網(wǎng)絡(luò)結(jié)構(gòu)如圖6(b)所示。該網(wǎng)絡(luò)包含從上到下和從下到上的2條特征融合路徑,縮小了表面特征與深層特征之間的距離,在一定程度上優(yōu)化了FPN網(wǎng)絡(luò)的特征融合方式,提高了目標(biāo)檢測效果,但也增加了網(wǎng)絡(luò)的參數(shù)和計(jì)算量。
BiFPN的結(jié)構(gòu)如圖6(c)所示。在PANet網(wǎng)絡(luò)中驗(yàn)證了雙向特征融合的有效性,但結(jié)構(gòu)較為簡單。2020年Tan等在EfficientDet網(wǎng)絡(luò)中提出BiFPN,進(jìn)一步優(yōu)化了PANet網(wǎng)絡(luò)。
由于不同的輸入特征具有不同的分辨率,因此特征對(duì)網(wǎng)絡(luò)的影響也是不同的。無界融合、Softmax基礎(chǔ)融合和快速歸一化融合方法的比較結(jié)果表明:無界融合訓(xùn)練是不穩(wěn)定的,需要權(quán)重歸一化約束才能穩(wěn)定;Softmax基礎(chǔ)融合能量表明每個(gè)輸入的重要程度,但會(huì)導(dǎo)致計(jì)算量的增加;快速歸一化融合與Softmax基礎(chǔ)融合類似,但不對(duì)參數(shù)應(yīng)用Softmax函數(shù),因此其操作精度與Softmax基數(shù)融合相似,而計(jì)算速度比前者快。
為此,所提算法引入BiFPN加權(quán)雙向特征金字塔網(wǎng)絡(luò)來學(xué)習(xí)不同輸入特征信息的重要性,對(duì)重要的特征信息進(jìn)行融合。BiFPN計(jì)算如下:
(6)
式中:ω為可學(xué)習(xí)的權(quán)重;Ii為特征圖。這種思想類似于Softmax將每個(gè)歸一化權(quán)重放縮到[0,1]之間,這種融合方法使得訓(xùn)練速度快、效率高,所以研究選用這種帶權(quán)特征融合方法替換原有Yolov5s的特征融合模塊。
所提算法對(duì)原算法采用的CIoU Loss進(jìn)行改進(jìn),實(shí)現(xiàn)目標(biāo)監(jiān)測中預(yù)測框與真實(shí)包圍框更準(zhǔn)確的定位損失計(jì)算。CIoU的定義如下:
(7)
式中:b為包圍框的中心點(diǎn);ρ為2個(gè)中心點(diǎn)之間的歐氏距離;c為真實(shí)框和預(yù)測框最小閉包區(qū)域的對(duì)角線距離。v和α是分別為衡量長寬比的參數(shù)和權(quán)重參數(shù),其計(jì)算公式分別為:
(8)
(9)
其中的v使用的是寬和高的相對(duì)比例,不是實(shí)際值,存在低質(zhì)量樣本造成的損失劇烈震蕩的問題,因此所提算法采用Focal-Loss EIoU作為邊框的回歸損失函數(shù)。
損失函數(shù)包括IoU損失LIoU、中心距離損失Ldis和縱橫比損失Lasp:
(10)
式中:Cw和Ch分別為覆蓋2個(gè)包圍框的最小外接框的寬和高。由于存在邊界返回樣本比例失調(diào)問題,圖像中的目標(biāo)物體稀少,與回歸誤差小的高質(zhì)量樣本的數(shù)量遠(yuǎn)遠(yuǎn)低于低質(zhì)量樣本的數(shù)量。異常值會(huì)產(chǎn)生過大的梯度,這對(duì)訓(xùn)練過程是不利的,所以所提算法結(jié)合了Focal Loss[20]損失函數(shù),懲罰計(jì)算為:
LFocal-EIoU=IoUγLEIoU
(11)
式中,γ為一個(gè)控制曲線弧度的超參,減少了與目標(biāo)框重疊部分IoU較小框?qū)吙蚧貧w的優(yōu)化貢獻(xiàn),提高高質(zhì)量錨框的貢獻(xiàn)。
實(shí)驗(yàn)所用的操作系統(tǒng)為Win10 64位;內(nèi)存大小為16 GB;顯存大小為8 GB;GPU為NVIDIA Quadro P4000;深度學(xué)習(xí)框架采用Pytorch1.7.0/cuda10.1/cudnn7.0;編譯環(huán)境為Pycharm/Python語言。
采用的數(shù)據(jù)集為VOC 2007+VOC 2012聯(lián)合數(shù)據(jù)集,總共20個(gè)小類。VOC 2007數(shù)據(jù)集和VOC 2012數(shù)據(jù)集兩者本身是互斥的,聯(lián)合起來的圖片量可以達(dá)到33 043張,目標(biāo)個(gè)數(shù)可以達(dá)到 79 540個(gè),訓(xùn)練集和測試集的比例為9∶1。
Yolo系列算法中的anchor box作為目標(biāo)箱的潛在候選箱,anchor box的選取會(huì)影響Yolo算法的準(zhǔn)確性以及速度,因此要保證anchor box的長寬值接近真實(shí)的目標(biāo)包圍框。由于Yolo網(wǎng)絡(luò)的目標(biāo)檢測頭包含3種不同大小感受野的信息,每個(gè)感受野有3個(gè)anchor box,因此在模型訓(xùn)練前要將目標(biāo)的大小聚類成9類,替換初始的Yolov5的anchor box。常用的k-means方法,通過計(jì)算樣本之間的距離將較近的樣本聚為同一類別,由于初始的聚類中心點(diǎn)是隨機(jī)選取的,k-mean對(duì)初始的聚類中心和樣本順序敏感,因此算法收斂得到的是局部最優(yōu)解而非全局最小值。
研究采用基于k-means的改進(jìn)算法k-means++,最后在80×80的網(wǎng)絡(luò)上聚類出anchor box為(10,13)、(16,30)、(33,23)。在40×40網(wǎng)絡(luò)上聚類結(jié)果為 (30,61)、(62,45)、(59,119)。在20×20網(wǎng)絡(luò)上聚類結(jié)果為(116,90)、(156,198)、(373,326)。實(shí)施過程如下。
1) 隨機(jī)選取一個(gè)樣本點(diǎn)作為第一聚類中心C1。
2) 對(duì)于剩下的樣本,計(jì)算每個(gè)樣本距離最近的簇中心的距離,用D(x)表示;這個(gè)值越大,表示被選取作為聚類中心的概率較大,概率P(x)計(jì)算公式如下:
(12)
3) 重復(fù)步驟2,直到選出k個(gè)聚類中心[C1,C2,…,Ck]。
4) 使用標(biāo)準(zhǔn)的k-means算法進(jìn)行聚類。
實(shí)驗(yàn)中使用的評(píng)價(jià)指標(biāo)為FPS、平均精度均值(mean average precision,mAP)和lamr(log-average miss rate)。FPS用來評(píng)估目標(biāo)檢測的速度,即每秒可以檢測的圖片數(shù)量,其計(jì)算過程主要考慮了模型前向計(jì)算、非極大值抑制、閾值篩選和檢測框繪制幾個(gè)步驟。各評(píng)價(jià)指標(biāo)計(jì)算公式如下。
(13)
(14)
(15)
(16)
式中:FP(false positive)為樣本類別為負(fù),預(yù)測類別為正;FN(false negative)為樣本類別為正,預(yù)測類別為負(fù);TP(ture positive) 為樣本類別為正,預(yù)測類別為正;TN(true negative)為樣本類別為正,預(yù)測類別為負(fù)。P(precision)指的是查準(zhǔn)率,視作模型找出來的數(shù)據(jù)的正確能力;R(recall)指的是查全率,是預(yù)測為正且實(shí)際為正占總體正樣本的比例,視作模型在數(shù)據(jù)集中檢測出目標(biāo)類型數(shù)據(jù)的能力;AP是計(jì)算某一類P-R曲線下的面積;mAP計(jì)算所有類型P-R曲線下面積的平均值即所有類別的AP均值,其值越大表示該模型的定位與識(shí)別的準(zhǔn)確率越高。
消融實(shí)驗(yàn)分別對(duì)原Yolov5s網(wǎng)絡(luò)以及改進(jìn)的輕量化網(wǎng)絡(luò)做出對(duì)比驗(yàn)證。消融實(shí)驗(yàn)如表2所示,其中“√”為使用該策略,“×”為未使用該策略。各個(gè)模型由第1列的序號(hào)表示。1代表了未經(jīng)改動(dòng)的Yolov5s網(wǎng)絡(luò);2代表了將MobileNetV3 網(wǎng)絡(luò)作為Yolov5s的主干特征提取網(wǎng)絡(luò);3代表了將原有MobileNetV3網(wǎng)絡(luò)中的ReLU激活函數(shù)替換為Mish激活函數(shù);4代表了引入CA注意力機(jī)制;5代表了將原有的特征融合網(wǎng)絡(luò)替換為加權(quán)雙向特征融合網(wǎng)絡(luò)BiFPN;6代表了將Focal-EIoU Loss損失函數(shù)作為邊框回歸損失函數(shù)。
表2 消融實(shí)驗(yàn)結(jié)果
對(duì)比實(shí)驗(yàn)1和實(shí)驗(yàn)2的模型大小與FPS可知,Yolov5s的模型大小為14.1 MB,該模型具有參數(shù)量大、計(jì)算量大、存儲(chǔ)量高以及推理速度相對(duì)較慢的問題。將原有的主干特征提取網(wǎng)絡(luò)CSP殘差結(jié)構(gòu)換為MobileNetV3網(wǎng)絡(luò),模型大小由原來的14.1 MB減小到7.53 MB,降低了46.6%;FPS由原來的84增加到116,增加了近35%;mAP由90.3%下降到85.5%,降低約5%,在犧牲了小精度的情況下?lián)Q來模型參數(shù)量的大幅縮減和推理速度的提高。
對(duì)比實(shí)驗(yàn)2和實(shí)驗(yàn)3的mAP和FPS可知,實(shí)驗(yàn)2的mAP從85.5%增加到86.1%,增加了0.5%,FPS從116減小到112,僅減少約3.5%。模型的主干特征網(wǎng)絡(luò)MobileNetV3使用了Mish激活函數(shù),訓(xùn)練的穩(wěn)定性和最終精度得到提高。
對(duì)比實(shí)驗(yàn)3和實(shí)驗(yàn)4的mAP和FPS可知,實(shí)驗(yàn)3的mAP從86.1%增加到88.0%,增加了1.9%,FPS從112減少到104。模型引入CA注意力機(jī)制,學(xué)習(xí)特征圖通道和空間的位置信息間的關(guān)系,在幾乎沒有額外消耗計(jì)算資源的情況下提高了網(wǎng)絡(luò)識(shí)別的準(zhǔn)確性。
對(duì)比實(shí)驗(yàn)4和實(shí)驗(yàn)5的mAP和FPS可知,實(shí)驗(yàn)4的mAP從88.0%增加到89.4%,增加了1.4%,FPS從104減小到99,僅減少了4.6%。實(shí)驗(yàn)5的Neck部分學(xué)習(xí)不同輸入特征信息的重要性,對(duì)重要特征信息進(jìn)行加權(quán)融合,從而使得mAP增加了1.4%。
對(duì)比實(shí)驗(yàn)5和實(shí)驗(yàn)6的mAP和FPS可知,實(shí)驗(yàn)5的mAP從89.4%增加到90.5%,增加了1.1%,該模型使用了Focal Loss損失函數(shù),將高質(zhì)量的錨框與低質(zhì)量的錨框分開,提升模型的識(shí)別精度。
在相同的基礎(chǔ)數(shù)據(jù)集上,Yolov5s-MCB算法的精度相比于Yolov5s、Yolov-x、SSD模型優(yōu)化效果更好。SSD作為一階段目標(biāo)檢測的代表,雖然在保持高速度的基礎(chǔ)上目標(biāo)檢測精度尚可,但低級(jí)特征卷積層相對(duì)較少,特征信息提取不充分,導(dǎo)致目標(biāo)的漏檢率高。Faster-RCNN精度最高,但是由于網(wǎng)絡(luò)結(jié)構(gòu)過于復(fù)雜,模型參數(shù)量大,因此達(dá)不到實(shí)時(shí)檢測的效果。Yolov5s-MCB相比于Faster-RCNN的FPS提高了94,相比于Yolov4提高了2.9倍,相比于原Yolov5s的FPS也提高了15,提升了約17%。在模型參數(shù)量方面,Yolov5-MCB也是最小的,相較于原Yolov5s算法模型參數(shù)量減小了6.47 MB,變?yōu)樵瓉淼?4.1%。
Yolov5s-MCB模型的體積是最小的,在不降低識(shí)別精度和推理速度的情況下,模型的參數(shù)量下降明顯,在Yolov5s的基礎(chǔ)上體積又降低了6 MB。綜上所述,Yolov5s-MCB模型相較于其余模型,其檢測精度、識(shí)別速度都有提升,這說明YOLOv5s-MCB模型更適用于部署在移動(dòng)端設(shè)備。模型性能的對(duì)比如圖7所示。
圖7 網(wǎng)絡(luò)模型性能柱狀圖
為了直觀感受Yolov5-MCB的效果,選取了幾張多目標(biāo)復(fù)雜背景且光照條件欠佳的場景圖片進(jìn)行檢測效果對(duì)比,檢測結(jié)果如圖8和圖9所示??梢钥闯?Yolov5-MCB算法在光線不好、背景復(fù)雜、目標(biāo)多的場景下能檢測出更多的目標(biāo),擁有更高的召回率,對(duì)目標(biāo)的檢測置信度也高于原Yolov5s算法。這說明所提的Yolov5-MCB算法在識(shí)別精度和使用場景穩(wěn)定性方面都超過了原算法。
圖8 Yolov5s檢測結(jié)果
圖9 Yolov5s-MCB檢測結(jié)果
為了驗(yàn)證Yolov5s-MCB模型的實(shí)時(shí)性、可移植性,根據(jù)Yolov5s-MCB網(wǎng)絡(luò)模型,在Android設(shè)備上構(gòu)建了一個(gè)帶有目標(biāo)識(shí)別的增強(qiáng)現(xiàn)實(shí)系統(tǒng),且在實(shí)際應(yīng)用中表現(xiàn)良好。AR系統(tǒng)的目標(biāo)識(shí)別模塊采用上述的Yolov5s-MCB,需要將訓(xùn)練好的pth文件轉(zhuǎn)換成ONNX[21]格式的中間形式移植到手機(jī)上,使用Barracuda[22]庫進(jìn)行推理,結(jié)合ARCore的環(huán)境理解和運(yùn)動(dòng)跟蹤功能開發(fā)一個(gè)帶有目標(biāo)識(shí)別功能的AR應(yīng)用。
實(shí)驗(yàn)要求運(yùn)行AR應(yīng)用程序的手機(jī)系統(tǒng)為Android 7.0及以上,手機(jī)安裝系統(tǒng)apk文件時(shí)需要允許移動(dòng)設(shè)備的相機(jī)訪問權(quán)限,以便獲取現(xiàn)實(shí)場景的視頻流和拍攝照片等數(shù)據(jù)。AR應(yīng)用使用的實(shí)驗(yàn)機(jī)型是三星的入門智能機(jī)Galaxy A51,硬件參數(shù)如表3所示。
表3 手機(jī)硬件測試環(huán)境
測試結(jié)果如圖10所示。實(shí)驗(yàn)結(jié)果表明,移動(dòng)手機(jī)到不同視角識(shí)別物體,虛擬3D標(biāo)簽和物體相對(duì)位置不發(fā)生變化,具有較強(qiáng)的穩(wěn)定性。圖11為第三視角下用戶使用的示例圖。
圖10 移植手機(jī)的目標(biāo)識(shí)別注冊(cè)結(jié)果
圖11 第三視角下的用戶使用示例圖
針對(duì)現(xiàn)有目標(biāo)檢測算法存在模型存儲(chǔ)大、參數(shù)量大、檢測速度慢、不利于在移動(dòng)端設(shè)備部署等問題,對(duì)Yolov5s算法進(jìn)行輕量化改進(jìn)。使用k-means++算法進(jìn)行聚類,獲得更合適的錨框參數(shù);采用改進(jìn)的MobileNetV3網(wǎng)絡(luò)作為主干特征提取網(wǎng)絡(luò),減小模型體積、加快檢測速度;將BiFPN作為Neck的特征融合網(wǎng)絡(luò),提高多尺度特征的融合效率;最后引用CA注意力機(jī)制更加精準(zhǔn)地定位和識(shí)別感興趣的目標(biāo)。通過實(shí)驗(yàn)和系統(tǒng)測試可以看出,改進(jìn)后的模型大小是原算法的54.1%,識(shí)別精度幾乎不變。所提模型仍有改進(jìn)空間,具體包括在終端設(shè)備進(jìn)行優(yōu)化,提高模型的處理速度和識(shí)別精度。