易明發(fā),代廣珍,周先存,王冠凌*
(1.安徽工程大學(xué)電氣工程學(xué)院,安徽 蕪湖 241000;2.皖西學(xué)院電子與信息工程學(xué)院,安徽 六安 237000)
人工智能技術(shù)發(fā)展帶動了一系列的科技變革,在自動駕駛領(lǐng)域掀起了研發(fā)熱潮。 2021 年工信部提出并于2022 年3 月1 日起實施的國內(nèi)《汽車駕駛自動化分級》[1],確定并公布了國內(nèi)自動駕駛分級及其規(guī)范。 目前,國內(nèi)外已經(jīng)發(fā)布了多款L4 級別的自動駕駛車輛。 在快速發(fā)展的自動駕駛領(lǐng)域,實時識別交通信號標(biāo)志是智能車視覺感知中至關(guān)重要的一環(huán),而實際環(huán)境中交通標(biāo)志往往是大尺寸圖像中的小目標(biāo),給實時動態(tài)目標(biāo)檢測帶來了很大的挑戰(zhàn),對檢測算法的優(yōu)化改進(jìn)往往難以同時兼顧精度與實時性。
在目標(biāo)檢測算法中,YOLO 系列算法以其創(chuàng)新的思想,經(jīng)過了好幾代的繼承發(fā)展,已經(jīng)成為目標(biāo)檢測領(lǐng)域的標(biāo)桿算法之一。 在2015 年提出了YOLOv1 的算法[2], 在2016 年該作者提出了YOLOv2 算法[3],在2018 年又將各種創(chuàng)新的算法進(jìn)行結(jié)合提出了YOLOv3 算法。 在實際場景的很多項目中,YOLOv3 都有廣泛的應(yīng)用。 現(xiàn)在很多的目標(biāo)檢測算法,包括其后的YOLOv4、YOLOv5、YOLOX 都是在此基礎(chǔ)上發(fā)展而來的。 早期的交通標(biāo)志檢測主要通過形態(tài)學(xué)的方式提取相應(yīng)特征完成圖像的檢測。 梁敏健等[4]提出了基于HOG-Gabor 特征融合和Softmax 分類器的交通標(biāo)志識別方法,通過Gamma 矯正方式提取HOG 特征,通過對比度受限的自適應(yīng)直方圖均衡化方法提取Gabor 特征,將二者融合后放入Softmax 分類器,識別率高達(dá)97.68%,耗時小于2 s,但是魯棒性較低,容易受到光線,天氣等外部環(huán)境的干擾。 楊婷婷等[5]提出了基于多尺度注意模塊的微小交通標(biāo)志實時檢測網(wǎng)絡(luò),在TT100K 數(shù)據(jù)集上平均精度均值(mAP@0.5)達(dá)到了96.5%,在YOLOv3 的基礎(chǔ)上設(shè)計了一個視覺多尺度注意力模塊(MSAM),將多尺度特征圖與通道權(quán)重和空間掩碼融合在一起,增加網(wǎng)絡(luò)的表示能力,并在網(wǎng)絡(luò)的輸出層添加一個預(yù)測頭,有效地利用了來自較淺層的微小物體的細(xì)粒度特征。 最后,在網(wǎng)絡(luò)的頸部添加一個感受場塊以擴(kuò)大感受場。 王蘭梅等[6]提出了一種基于YOLOv4-Tiny 的改進(jìn)型輕量級交通標(biāo)志識別算法,改進(jìn)K-Means 聚類算法,生成大小、位置合適的標(biāo)注框,并對NMS 算法進(jìn)行改進(jìn),提高預(yù)測結(jié)果,與原有YOLOv4-Tiny 算法相比,在TT100K 數(shù)據(jù)集上mAP 和召回率分別提高了5.73%和7.29%。 陳國強(qiáng)等[7]提出了一種基于YOLOv5s的深度學(xué)習(xí)網(wǎng)絡(luò)YOLOv5s-Ghost-SE-DW,用Ghost模塊替換卷積層,以減小參數(shù)和模型大小,為了提高準(zhǔn)確性,嵌入了注意力機(jī)制SELayer 以融合更多的空間特征,使用DW 卷積用于提取特征并進(jìn)一步減少參數(shù)數(shù)量,在CPU 上實現(xiàn)了15.58 FPS 的實時性能。 對于傳統(tǒng)檢測算法,需要根據(jù)檢測目標(biāo)的的形態(tài)提取對應(yīng)特征,而特征的質(zhì)量直接影響分類的結(jié)果,很難有較為廣泛的應(yīng)用。 基于深度學(xué)習(xí)的目標(biāo)檢測算法,較好地體現(xiàn)了YOLO 系列算法的優(yōu)勢。而YOLOv5 是YOLO 系列的集大成之作,無論是精度和速度都是相對最優(yōu)的。 上述文獻(xiàn)忽略了在嵌入式智能邊緣設(shè)備端的推理測試、且由于浮點運算量比較大,在硬件受限條件下識別精度和速度上都有提升的空間。 鑒于此,選擇YOLOv5 作為改進(jìn)算法的基本框架是可行的。
本文以解決在智能車上交通標(biāo)志識別算法的檢測速度與精度的均衡問題為研究目的,第一章概述原YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu),針對網(wǎng)絡(luò)輸入、主干特征提取網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)、輸出層四個部分進(jìn)行分析,第二章將分點概述改進(jìn)網(wǎng)絡(luò),其中在第一小節(jié)運用GhostConv 替代普通卷積,在減少卷積結(jié)構(gòu)參數(shù)與卷積運算量的同時提高網(wǎng)絡(luò)的擬合能力;第二小節(jié)在主干特征提取網(wǎng)絡(luò)之后添加計算量更小的置換注意力機(jī)制,取得了優(yōu)于通道注意力模塊(Squeeze-and-Excitation Networks,SENet)、卷積塊注意力模塊、坐標(biāo)注意力模塊(Coordinate Attention,CA)等注意力檢測機(jī)制的效果;第三小節(jié)為了彌補(bǔ)下采樣過程中特征信息丟失的不足,采用加權(quán)雙向特征金字塔,加強(qiáng)與主干特征提取網(wǎng)絡(luò)的特征融合,僅以少量參數(shù)提升了精度。 第三章實驗與分析對改進(jìn)算法進(jìn)行對比消融實驗,驗證各改進(jìn)部分的有效性,并將其部署至智能車上的嵌入式邊緣設(shè)備。 第四章總結(jié)改進(jìn)算法,其可以在高效率與高精度之間達(dá)到平衡。
YOLOv5 算法是在YOLOv3 和v4 的基礎(chǔ)上,融合了近年來目標(biāo)檢測領(lǐng)域的新思路。 在網(wǎng)絡(luò)結(jié)構(gòu)上延續(xù)了YOLOv3 的典型結(jié)構(gòu),主要分成四個部分:①網(wǎng)絡(luò)輸入(Input),輸入為經(jīng)過數(shù)據(jù)增強(qiáng)后固定尺寸的RGB 彩色圖片;②主干特征提取網(wǎng)絡(luò)(BackBone),用于提取圖像的網(wǎng)絡(luò)結(jié)構(gòu)特征,經(jīng)過主干特征提取網(wǎng)絡(luò),提取特征圖像尺寸也在不斷減??;③頸部網(wǎng)絡(luò)(Neck),進(jìn)一步融合主干特征提取網(wǎng)絡(luò)提取的特征;④輸出層(Head),經(jīng)由損失函數(shù)不斷迭代直至輸出檢測結(jié)果。
針對數(shù)據(jù)集中的小目標(biāo)分布不均勻,YOLOv5的網(wǎng)絡(luò)輸入層主要采用4 張圖片隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的方式進(jìn)行拼接,實現(xiàn)了Mosaic 數(shù)據(jù)增強(qiáng),如圖1 所示。 其優(yōu)勢在于豐富了數(shù)據(jù)集,增大了模型的魯棒性,同時減少了GPU 的運算過程。
圖1 Mosaic 數(shù)據(jù)增強(qiáng)
YOLOv5 的主干特征提取網(wǎng)絡(luò)是在YOLOv3 主干特征提取網(wǎng)絡(luò)Darknet53 的基礎(chǔ)上,借鑒了CSPNet 模型[8],構(gòu)建CSP-Darknet53,將基礎(chǔ)層的特征映射分為兩部分,然后通過跨階段層次結(jié)構(gòu)組合,在保證準(zhǔn)確性的同時減少了計算量。
YOLOv5 的頸部網(wǎng)絡(luò)采用FPN 加PAN 結(jié)構(gòu)進(jìn)行多尺度融合,圖2 中FPN 是從上到下進(jìn)行上采樣,卷積層數(shù)較多,可以獲取更多的特征信息,得到的特征圖包含更強(qiáng)的目標(biāo)特征;PAN 從下到上進(jìn)行下采樣,卷積層數(shù)較少可以獲取更多的位置信息,得到的特征圖包含更強(qiáng)的位置信息。 兩種結(jié)構(gòu)獲得的特征經(jīng)CSP2 進(jìn)行增強(qiáng)融合,使不同尺寸的特征圖都包含較好的特征信息與位置信息,保證了對不同尺寸圖片的準(zhǔn)確預(yù)測。
圖2 FPN+PAN 結(jié)構(gòu)圖
YOLOv5 輸出層的損失函數(shù),主要包含:矩形框損失(Bloss)、置信度損失(Oloss)、分類損失(Closs),總損失Lloss為這三類損失的加權(quán)和,定義為式(1)。 其中,x、y、z分別對應(yīng)三類損失的權(quán)重因子。
矩形框損失函數(shù)設(shè)計方面沿用了YOLOv4 網(wǎng)絡(luò)的CIOU_Loss,其在IOU_Loss 的基礎(chǔ)上針對預(yù)測框與目標(biāo)框不相交的情況與當(dāng)預(yù)測框大小相同,IOU 相等但位于圖片的不同位置等缺點,加入重疊面積和中心點距離,并增加了一個影響因子,將預(yù)測框與目標(biāo)框的長寬比考慮進(jìn)去。 CIOU_Loss 定義為式(2):
式中:U為預(yù)測框和目標(biāo)框的交并比,D2為預(yù)測框和目標(biāo)框中心點距離,DC為最小外接矩形的對角線距離。 參數(shù)ν是衡量長寬比一致性的參數(shù),ν定義為式(3),其中wgt、hgt、wp、hp分別表示標(biāo)注框的寬高與預(yù)測框的寬高。
針對主干特征提取網(wǎng)絡(luò)和頸部提取網(wǎng)絡(luò),采用了GhostConv 替代普通卷積來減少參數(shù)量,并增加了置換注意力機(jī)制,增強(qiáng)網(wǎng)絡(luò)的特征提取能力的同時保持精度,且模型參數(shù)不會大幅度增加;使用加權(quán)雙向特征金字塔網(wǎng)絡(luò)(Bidirectional Feature Pyramid Network)對頸部網(wǎng)絡(luò)進(jìn)行改進(jìn),以增進(jìn)多層次特征的融合。 YOLOv5s_ghost_bi_sa 算法整體結(jié)構(gòu)如圖3所示,其中Conv 模塊由卷積(Conv)、批量歸一化(BN)、SiLU 激活函數(shù)組成。 Bottleneck_1 表示殘差組件,n為使用該模塊的個數(shù),n的取值決定了模塊的深度,從而影響著模塊的參數(shù)大小,也在不斷增加網(wǎng)絡(luò)特征提取和特征融合的能力。 選擇較為合適的n值可以用較小的參數(shù)量獲得較好的性能。 C3 模塊由Bottleneck 模塊、卷積等操作組成,為了均衡速度和精度,參考YOLOv5s 模型設(shè)計了在模型不同階段卷積核的數(shù)量以及C3 模塊的深度。
圖3 YOLOv5s_ghost_bi_sa 結(jié)構(gòu)
GhostNet 是華為諾亞方舟實驗室提出的,在同樣精度下速度和計算量均優(yōu)于當(dāng)前主流方法[9]。傳統(tǒng)深度學(xué)習(xí)網(wǎng)絡(luò)中的卷積提取特征會占用大量的內(nèi)存和FLOPs,此外,不是所有的特征提取都需要卷積操作,GhostNet 的核心在于GhostConv 構(gòu)建,使得卷積量減少,同樣可以獲得普通卷積的特征圖,如圖4(a)所示。 GhostConv 首先利用少量的卷積核進(jìn)行特征提取,然后通過輕量級的線性變換運算得到特征,最后通過拼接生成最終的特征圖,如圖4(b)所示。 該方法減少了非關(guān)鍵特征的學(xué)習(xí)成本,在不影響模型性能的前提下,降低了參數(shù)量。
圖4 GhostConv 與普通卷積對比
對于普通卷積運算Y=X*f+b,輸入圖片X∈RW×H×C,其中W、H是X的寬和高,C為通道數(shù);輸出Y∈RW'×H'×n,n為特征圖的數(shù)量;f∈Rk×k×C×n為卷積核大小為k×k的C×n個卷積運算;*為卷積操作;b為偏置項。
GhostConv 優(yōu)化了普通卷積中的f與b(為簡單起見,省略了該項),通過使用少量普通卷積獲取原始特征圖,操作如式(4) 所示,得到結(jié)果Y'∈RW'×H'×m,即為對輸入X經(jīng)過f'∈Rk×k×C×m后生成的m個原始特征圖。 在此基礎(chǔ)上,再通過分組卷積將m個特征圖逐個進(jìn)行線性操作,每張?zhí)卣鲌D生成s-1個對應(yīng)特征圖,保留原始特征圖,共有n=m×(s-1)+m個特征圖。 式(5)中Ki,j表示將上一步中普通卷積輸出的第i個通道的特征圖經(jīng)過線性變換Y'i得到第j個特征圖,m是初始特征圖通道數(shù),s是擴(kuò)充的倍數(shù)。
YOLOv5 網(wǎng)絡(luò)中為增大網(wǎng)絡(luò)的深度,實現(xiàn)進(jìn)一步的特征提取,使用了很多Conv 模塊,從而增大了網(wǎng)絡(luò)的參數(shù)量和計算量。 本文使用Ghostconv 模塊替換主干特征提取網(wǎng)絡(luò)和頸部網(wǎng)絡(luò)的Conv 模塊,既在精度不下降的情況下較大程度消除了傳統(tǒng)卷積中的冗余信息,又顯著地降低了算法整體的參數(shù)量。
注意力機(jī)制已成為深度學(xué)習(xí)領(lǐng)域提升性能不可或缺的重要模塊,提升語義信息的表達(dá),關(guān)注重要語義信息,抑制不重要的語義信息。 常見的注意力模塊包括:①通道注意力模塊:通過利用不同通道上的特征權(quán)重,捕捉通道間的依賴關(guān)系,提取有效的特征信息,但并未關(guān)注空間信息[10];②卷積塊注意力模塊:可以在空間和通道維度上自適應(yīng)的調(diào)節(jié)特征權(quán)重[11];③坐標(biāo)注意力模塊:分別從水平和垂直兩個方向聚集特征,在捕獲水平方向上長期依賴關(guān)系的同時,保留垂直方向上的位置信息,使網(wǎng)絡(luò)對目標(biāo)整體的結(jié)構(gòu)信息有一個更好的把握[12]。
通過引入注意力機(jī)制以權(quán)重衡量特征信息的重要程度,并不斷自適應(yīng)調(diào)整權(quán)重,讓模型關(guān)注重要特征。 從而,避免原Yolov5s 網(wǎng)絡(luò)對大分辨率圖像中的小目標(biāo)進(jìn)行采樣時易丟失特征信息的現(xiàn)象,減小了小目標(biāo)檢測難度。 但是,上述注意力機(jī)制雖然在特定場景下可以獲得較好的效果,但都增大了參數(shù)量,且訓(xùn)練過程中難以收斂。 為此,本文引入輕量的置換注意力機(jī)制[13],該注意力機(jī)制引入了通道隨機(jī)混合操作(Channel Shuffle),可以分塊并行使用空間和通道兩類注意力機(jī)制,二者高效結(jié)合使得分類模型聚焦于目標(biāo)信息更相關(guān)的區(qū)域,進(jìn)而有效地提升分類精度。 置換注意力機(jī)制在通道維度上使用分組卷積將輸入特征分成G組,每組通道維數(shù)為CG-1,如圖5 所示。 而后將每組特征平均分為Xk1和Xk2,k為分組卷積的組別數(shù),則通道數(shù)變?yōu)镃(2G)-1。 接下來,分別對Xk1和Xk2賦予通道注意力權(quán)重和空間注意力權(quán)重。
圖5 置換注意力結(jié)構(gòu)圖
對于通道注意力分支,采用全局平均池化產(chǎn)生通道相關(guān)的統(tǒng)計信息,再利用Fuse 線性函數(shù)增強(qiáng)特征表示,最后經(jīng)過Sigmod 激活函數(shù)后作為權(quán)重與原始特征相乘。 經(jīng)過上面的步驟,最后得到含有通道注意力權(quán)重的強(qiáng)化特征類別信息。
式中:Fc1為線性函數(shù),σ為Sigmod 激活函數(shù),F(xiàn)A為全局平均池化,Xk1為特征均分后的輸入特征,為通道注意力的輸出特征值。
對于空間注意力分支,采用組歸一化來產(chǎn)生空間相關(guān)的統(tǒng)計信息,利用Fuse 線性函數(shù)增強(qiáng)特征表示,再經(jīng)過Sigmod 激活函數(shù)后作為權(quán)重與原始特征相乘。 經(jīng)過上面的步驟,最后得到含有通道注意力權(quán)重的強(qiáng)化特征類別信息。
式中:Fc2為線性函數(shù),σ為Sigmod 激活函數(shù),F(xiàn)GN為組歸一化函數(shù),Xk2為特征均分后的輸入特征,為空間注意力的輸出特征值。
將通道、空間注意力機(jī)制輸出的特征合并后,得到輸出為CG-1×H×W,合并分組后的各區(qū)塊,得到最終輸出C×H×W。 最后,再使用通道隨機(jī)混合操作來進(jìn)行不同子特征間的通信。
置換注意力機(jī)制保證了高效的通道信息交互,使得模型更加關(guān)注特征所在的區(qū)域,保留更多目標(biāo)細(xì)節(jié)信息,有效提高網(wǎng)絡(luò)的特征表達(dá)能力。
隨著深度學(xué)習(xí)中特征提取網(wǎng)絡(luò)加深,語義信息也從低逐步提高。 然而,每一層網(wǎng)絡(luò)都會在反向傳播中丟失部分語義信息。 針對不同的網(wǎng)絡(luò)層級獲得的語義信息進(jìn)行跨尺度的語義信息融合,可以加強(qiáng)算法的幾何細(xì)節(jié)信息表征與定位目標(biāo)能力,使不同尺寸的特征圖都包含較好的特征信息與位置信息,保證了對不同尺寸圖片的準(zhǔn)確預(yù)測。
借鑒雙向特征金字塔網(wǎng)絡(luò)的雙向融合思想[14],構(gòu)建了一個自上而下、自下而上的雙向通道,對于主干特征提取網(wǎng)絡(luò)獲得的不同比例的信息,組合不同尺度的特征信息時,通過上、下采樣統(tǒng)一尺度,并在同一尺度的特征間添加橫向連接,避免網(wǎng)絡(luò)層數(shù)過多導(dǎo)致的特征信息丟失,如圖6 所示。
圖6 多尺度特征融合結(jié)構(gòu)圖
改進(jìn)算法將主干特征提取網(wǎng)絡(luò)第6 層的C3 層和第8 層的C3 層提取的2 種不同尺度的特征,經(jīng)通道數(shù)壓縮統(tǒng)一送入雙向特征金字塔網(wǎng)絡(luò)實現(xiàn)語義信息融合,得到不同層次、語義信息豐富的特征圖。 雙向特征金字塔網(wǎng)絡(luò)進(jìn)一步豐富了小目標(biāo)的語義特征,減少了通道數(shù),在網(wǎng)絡(luò)速度不受影響的情況下提升了網(wǎng)絡(luò)性能[14]。
在實驗室環(huán)境中,構(gòu)建了等比例縮小的智能車交通標(biāo)志數(shù)據(jù)集,以驗證小目標(biāo)情況下本文方法的有效性。 采用16 TOPS 算力的華為Hilens kit 嵌入式智能邊緣設(shè)備作為智能車的上位機(jī)主控模塊(如圖7 所示),采集標(biāo)志圖片,Hilens kit 智能邊緣設(shè)備通過LwIP 通信協(xié)議與STM32 單片機(jī)作為運動驅(qū)動模塊進(jìn)行通訊并協(xié)同拍攝,采集的圖像分辨率為1 280×720 pixls(像素點),以每秒抽取一幀的方式形成原始圖片集。 為模擬真實場景,分別采集不同自然光條件下(如白天、傍晚以及夜晚)的圖片[15],獲取原始圖片15 000 余張,經(jīng)過篩選除去拍攝模糊、丟失目標(biāo)、嚴(yán)重重復(fù)的,得到8 566 張有效圖片。
圖7 智能車與Hilens kit
將有效圖片集上傳至華為云的對象存儲服務(wù)OBS 中,根據(jù)收集圖片種類確定數(shù)據(jù)集標(biāo)簽。 而后通過華為的AI 開發(fā)平臺ModelArts 進(jìn)行圖片標(biāo)注并生成數(shù)據(jù)集,各標(biāo)簽如圖8 所示,從左到右、由上而下分別是right、left、limit_5、no_limit_5、green-light、yellow-light、red-light、people 和zebra-cross。 基于此數(shù)據(jù)集對本文提出的改進(jìn)算法進(jìn)行訓(xùn)練測試,其中,隨機(jī)抽取20%當(dāng)作驗證集,用以評測網(wǎng)絡(luò)性能,其余圖片用作模型訓(xùn)練集。
圖8 標(biāo)簽類別
基于Ubuntu 系統(tǒng)與華為云平臺,模型訓(xùn)練通過GPU 加速,采用RTX A5000 顯卡、24G 顯存,在CUDA11.3、PyTorch 1.10.0 環(huán)境下完成。 為后續(xù)測試考慮,還需對改進(jìn)YOLOv5 算法的部分算子進(jìn)行修改,解決了PyTorch 算子與華為昇騰CANN 算子之間的兼容問題,確保部署后高效運行在昇騰處理器。
在訓(xùn)練過程中,將經(jīng)過Mosaic 數(shù)據(jù)增強(qiáng)的訓(xùn)練圖片,導(dǎo)入模型進(jìn)行前向傳播,得到準(zhǔn)確值和真實值的損失,通過隨機(jī)梯度下降反向傳播更新?lián)p失函數(shù),優(yōu)化模型參數(shù)。 訓(xùn)練中的圖片尺寸為640×640,batch-size 大小設(shè)置為128,epoch 為設(shè)置150,選擇Adam 優(yōu)化器進(jìn)行參數(shù)優(yōu)化,模型的初始學(xué)習(xí)率為0.01,權(quán)重衰減系數(shù)為0.000 5,以盡可能合理利用本地顯存資源。
在訓(xùn)練完成后,將PyTorch 框架下的.pt 模型文件轉(zhuǎn)換成onnx 模型文件,然后使用昇騰提供ATC(Ascend Tensor Compiler)轉(zhuǎn)換工具將模型轉(zhuǎn)換成為昇騰AI 處理器支持的離線模型,以便于完成模型推理,如圖9 所示。 在模型轉(zhuǎn)換過程中,優(yōu)化模型算子和權(quán)重數(shù)據(jù)存儲方式,提升模型在昇騰AI 處理器上的性能。
圖9 ATC 工具功能架構(gòu)
算法的部署跟訓(xùn)練中使用同一網(wǎng)絡(luò)結(jié)構(gòu),在訓(xùn)練中,將圖片送入模型中,經(jīng)過網(wǎng)絡(luò)的正向傳播與反向傳播在通過損失函數(shù)優(yōu)化網(wǎng)絡(luò)權(quán)重,而部署時只需進(jìn)行正向傳播不更新網(wǎng)絡(luò)權(quán)重參數(shù)。 模型轉(zhuǎn)換如圖10 所示,需要指定計算圖的輸入節(jié)點和輸出節(jié)點,并從模型中去除無效節(jié)點。 其中,AIPP(Artificial Intelligence PreProcessing)智能圖像預(yù)處理包括將圖片尺寸改變至合適大小以滿足模型要求、圖像格式轉(zhuǎn)變等操作。
圖10 ATC 模型轉(zhuǎn)換運行流程
為了測試本文提出的YOLOv5s_ghost_bi_sa 對智能車交通標(biāo)志識別的可行性及性能,需進(jìn)行消融實驗,構(gòu)建的五種模型分別命名為YOLOv5l、YOLOv5s、YOLOv5s_sa、YOLOv5s_ghost、YOLOv 5s_ghost_sa。 其中YOLOv5s 是YOLOv5 系列中深度最小,特征圖的寬度最小的網(wǎng)絡(luò),YOLOv5s 主干特征提取網(wǎng)絡(luò)采用CSPDarknet53,頸部網(wǎng)絡(luò)采用FPN 加PAN 結(jié)構(gòu),輸出層的矩形框損失函數(shù)采用CIOU_Loss;YOLOv5l 則是在原YOLOv5s 網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上不斷增加卷積核的數(shù)量、C3 結(jié)構(gòu)的深度;YOLOv5s_sa 是在原YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上加上了置換注意力機(jī)制;YOLOv5s_ghost 是在原YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上使用GhostConv 替代部分普通卷積;YOLOv5s_ghost_sa是在原 YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上使用GhostConv 替代部分普通卷積并加上了置換注意力機(jī)制;YOLOv5s_ghost_bi_sa 是本文提出的模型,是在原YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上使用GhostConv替代部分普通卷積,加上了置換注意力機(jī)制并采用加權(quán)雙向特征金字塔網(wǎng)絡(luò)。
表1、表2 列出了各網(wǎng)絡(luò)模型在自建數(shù)據(jù)集上參數(shù)與復(fù)雜度對比結(jié)果。 從比較結(jié)果分析,YOLOv5l 與YOLOv5s 表示YOLOv5 系列網(wǎng)絡(luò)在不同深度和寬度的性能表現(xiàn),作為參考項。 YOLOv5s_sa模型的mAP 0.5:0.95 值相比于原YOLOv5s 模型上升2.4%,驗證了置換注意力機(jī)制的有效性。 置換注意力機(jī)制引入了通道隨機(jī)混合操作,可以分塊并行使用空間和通道兩類注意力機(jī)制,二者高效結(jié)合使得分類模型聚焦于目標(biāo)信息更相關(guān)的區(qū)域,進(jìn)而有效地提升精度。 推理速度下降了4.52 幀/s,模型體積與浮點運算量都有所增長。 YOLOv5s_ghost 模型的mAP 0.5 ∶0.95值相比于原YOLOv5s 模型下降2.3%,推理速度上升了58.2 幀/s,模型大小與浮點運算量都有所下降,提升了模型的檢測速度,降低了模型參數(shù)量,驗證了GhostConv 的有效性。 YOLOv5s_ghost_sa 模型的mAP 0.5 ∶0.95 值相比于原YOLOv5s 模型上升1.3%,推理速度上升41.81 幀/s。 模型體積僅僅是原YOLOv5s的五分之一。
表1 模型各參數(shù)對比
表2 模型識別情況對比
本文所提YOLOv5s_ghost_bi_sa 與YOLOv5l 相比mAP0.5 ∶0.95 下降0.6%,但FPS 卻顯著提高,由3.68 幀/s 提升為62.98 幀/s;與YOLOv5s 相比mAP 0.5 ∶0.95 和recall 分別提高了1.8%和3.8%,F(xiàn)PS 也由23.30 幀/s 提升為62.98 幀/s,與YOLOv5s_ghost_sa相比mAP 0.5 ∶0.95 上升了0.5%,F(xiàn)PS 僅下降了0.87 幀/s,表明加權(quán)雙向特征金字塔的跨尺度連接增強(qiáng)了模型性能,驗證了加權(quán)雙向特征金字塔的有效性。
圖11 所示為YOLOv5s_ghost_bi_sa 模型與YOL-Ov5l、YOLOv5s、YOLOv5s_sa、YOLOv5s_ghost、YOLOv5s_ghost_sa 在訓(xùn)練時mAP0.5 值變化的對比圖,橫坐標(biāo)為訓(xùn)練的輪次,縱坐標(biāo)為mAP0.5,由圖中可知,YOLOv5s_ghost_bi_sa 的時mAP0.5 值明顯高于YOLOv5s、YOLOv5s_sa、YOLOv5s_ghost、YOLOv5s_ghost_sa,基本與YOLOv5l 的精度保持平衡。
圖11 訓(xùn)練期間mAP0.5 變化對比圖
YOLOv5s_ghost_bi_sa 模型在訓(xùn)練時各類指標(biāo)變化趨勢如圖12 所示,損失函數(shù)可以較為直觀地反映整個模型的訓(xùn)練過程,損失函數(shù)越低表明結(jié)果越好,訓(xùn)練輪數(shù)(epoch)設(shè)定在150。 在訓(xùn)練初期,矩形框損失(Bloss)、置信度損失(Oloss)、分類損失(Closs)快速下降,在訓(xùn)練輪數(shù)為20 之后,Loss 曲線下降速度變緩,表明YOLOv5s_ghost_bi_sa 模型可以快速擬合。
圖12 YOLOv5s_ghost_bi_sa 的損失函數(shù)
圖13 所示為YOLOv5s_ghost_bi_sa 的九類標(biāo)簽以及總體的PR 曲線(Precision-Recall)對比圖。 橫坐標(biāo)為召回率,縱坐標(biāo)為精確率,而PR 曲線圍成的面積為平均精度。 如圖13 所示,總平均精度為0.988,各標(biāo)簽中no_limit 平均精度最高,red_light 最低。
圖13 PR 曲線
將其部署至Hilens 設(shè)備上,為進(jìn)一步驗證YOLOv5s_ghost_bi_sa 算法的實用性,從驗證集中隨機(jī)抽取交通標(biāo)志圖片進(jìn)行識別,得到結(jié)果如圖14 所示。 雖然在測試集中的識別精度有所降低,但是對于各類別的識別精度依然保持在92%以上,滿足自主識別交通標(biāo)志的需求。
圖14 交通標(biāo)志識別結(jié)果圖
針對智能邊緣設(shè)備在硬件平臺受限的情況下,算法的參數(shù)量過大導(dǎo)致速度慢、實時性差等不足,在不降低精度的情況下,提出YOLOv5s_ghost_bi_sa 算法。 通過將普通卷積改進(jìn)為輕量級的GhostConv,消除了傳統(tǒng)深度學(xué)習(xí)網(wǎng)絡(luò)中大量的影響模型精度卻又無法直接刪除的冗余信息。 在主干特征提取網(wǎng)絡(luò)的最后添加置換注意力機(jī)制,既減少了整體網(wǎng)絡(luò)的計算量,又避免了傳統(tǒng)注意力機(jī)制因過于專注輸入所有相關(guān)信息引起的受限平臺實時性的減低。 引入加權(quán)雙向特征金字塔網(wǎng)絡(luò)結(jié)構(gòu),加強(qiáng)了主干網(wǎng)絡(luò)與頸部網(wǎng)絡(luò)的特征融合。 使用ATC 進(jìn)行模型轉(zhuǎn)換,配置AIPP 相關(guān)參數(shù)實現(xiàn)圖像預(yù)處理,優(yōu)化模型中算子和權(quán)重數(shù)據(jù)的存儲,提高模型推理效率。 實驗結(jié)果表明:YOLOv5s_ghost_bi_sa 算法可以在硬件平臺受限的智能邊緣設(shè)備中有效識別交通標(biāo)志,在保證較高的精度的前提下,具有較高的識別速度。