摘"要:為了檢測機場行李運輸系統(tǒng)中輪對存在的裂紋,提出了一種基于YOLOv5的機場行李運輸系統(tǒng)輪對裂紋檢測方法。該方法針對裂紋細小、密集等特點采取了以下措施:在YOLOv5網(wǎng)絡的"Head"部分使用SIoU替換了原有的CIoU;在Backbone部分加入了SE注意力機制;在Neck部分引入了SwinTransformer模塊;在整個YOLOv5"網(wǎng)絡中使用SPDConv替代了傳統(tǒng)的Conv卷積模塊;在圖像的預處理方面,使用了圖像分割與子圖反向拼接技術。通過這些改進,有效地改善了YOLOv5對于細小、密集裂紋的特征提取能力,相較于傳統(tǒng)的"YOLOv5"算法,裂紋檢測的能力得到了有效提升。
關鍵詞:裂紋檢測;YOLOv5;SPDConv(spacetodepthConv);SIoU;注意力機制;圖像預處理
中圖分類號:TP391.4""""""""文獻標識碼:A
Wheelset"Crack"Detection"Algorithm"of"Baggage
Transportation"System"Based"on"YOLOv5
FANG"Haonan,"LI"Dengpeng
(School"of"Electronic"Information"and"Automation,Civil"Aviation"University"of"China,Tianjin"300300,China)
Abstract:In"order"to"detect"the"cracks"existing"in"the"wheelset"of"airport"baggage"transportation"system,"a"new"wheelset"crack"detection"method"based"on"YOLOv5"was"proposed."In"view"of"the"characteristics"of"small"and"dense"cracks,"the"following"measures"were"taken."The"original"CIoU"is"replaced"by"SIoU"in"the"Head"part"of"YOLOv5"network."Then"the"SE"attention"mechanism"is"added"to"the"Backbone"part"and"the"SwinTransformer"module"is"introduced"in"the"Neck"part."In"addition,"The"traditional"Conv"convolution"module"is"replaced"by"spacetodepthConv"in"the"entire"YOLOv5"network."In"terms"of"image"preprocessing,"image"segmentation"and"subgraph"reverse"stitching"technology"are"used."Through"these"improvements,"the"feature"extraction"ability"of"YOLOv5"for"fine"and"dense"cracks"is"effectively"improved,"and"compared"with"the"traditional"YOLOv5"algorithm,"the"ability"of"crack"detection"has"been"effectively"improved.
Key"words:crack"detection;YOLOv5;SPDConv(spacetodepthConv);SIoU;attention"mechanism;image"preprocessing
調(diào)研顯示,我國機場早期建設的行李運輸線,如廣州白云機場"1"號航站樓內(nèi)的輸送線,其行李分揀輸送系統(tǒng)均為滑輪結(jié)構,當運送行李的傳送帶承載行李高速(≥1.7""m/s)運動時,關鍵輪位就會由于同鋼軌摩擦發(fā)生劣化,產(chǎn)生裂紋。關鍵輪位上的裂紋會導致整個傳送系統(tǒng)運動失衡,從而使整條輸送線停機,給機場造成重大損失。該風險通常被機場判定為行李延誤系統(tǒng)性風險,為重點關注防范的重大故障類別?;诖耍岢龅幕赮OLOv5的裂紋識別算法具有較重大的實際意義。
目標識別方向上的主流算法大致分為兩類,其一是以RCNN[1](region"with"CNN"features)、Fast"RCNN[2](fast"regionbased"convolutional"network)為代表的二階段(Twostage)目標識別,另一類是以YOLO[3]"(you"only"look"once)為代表的一階段(Onestage)目標檢測。一階段檢測不需要生成候選區(qū)域(region"proposals),而是直接生成檢測類別的概率與位置坐標,往往有更快的檢測速度,其中YOLOv5憑借其又快又準的檢測效果,應用于許多場所,考慮到實時檢測對于速度的要求,因此選擇了以YOLOv5為基礎的檢測方式來實現(xiàn)對機場輪對裂紋的檢測。
1"YOLOv5算法介紹
YOLOv5[4]是一種較好的一階段目標檢測算法,其具有一個典型的深度學習網(wǎng)絡結(jié)構,具體包括主干(Backbone)、頸部(Neck)和輸出(Head)三部分。此外,YOLOv5還使用了許多先進的訓練策略來提高其精度,如數(shù)據(jù)增強(data"augmentation)、多尺度訓練(multiscale"training)等。優(yōu)秀的網(wǎng)絡結(jié)構和訓練策略保證了YOLOv5的準確性和實時性,使得YOLOv5算法可以較好地完成常見的檢測任務。
2"裂紋檢測算法優(yōu)化
本文對傳統(tǒng)YOLOv5算法的優(yōu)化改良大體可分為:圖像分割預處理與子圖反向拼接,以及主干網(wǎng)絡的改良。其中主干網(wǎng)絡的改良包括:在網(wǎng)絡的Backbone部分加入了通道注意力機制,使用C3SE模塊代替了原來的C3模塊;在網(wǎng)絡的Neck部分以C3STR的形式增加了SwinTransformer模塊,使用SPDConv代替了原模型的傳統(tǒng)卷積模塊Conv;"在Head部分中將原來的CIoU_Loss改進為SIoU_Loss。改進后的網(wǎng)絡結(jié)構如圖1所示。
2.1"圖像分割預處理與子圖反向拼接
圖像預處理采用了一種圖像分割的處理方法,通過分割訓練集以及訓練集標簽的形式,將一張大像素圖片分割為多張等大子圖。雖然在一定程度上增加了訓練與檢測的計算量,但大大降低了對于硬件設備的要求,同時提高了網(wǎng)絡對于一些細小裂紋的識別能力。
在圖像分割的設計中,采用了滑動窗口切圖[5]的方式。利用大小確定的滑窗對高分辨率的圖片進行滑動切分,為了避免切口處存在裂紋,在設置滑窗大小的同時還規(guī)定了相鄰子圖之間的重疊率。分割預處理后的結(jié)果對比圖如圖2所示。
(a)"切割前原圖(像素為1400×1200)
(b)"切割后子圖(每張像素為640×640)
圖2"分割預處理前后對比圖
檢測過程中采用相同的處理思路,先對原圖進行預處理分割,然后對分割后的子圖進行裂紋識別,檢測完成后再利用得到的裂紋坐標與子圖重新反向拼接,完成一次裂紋的檢測。
2.2"SPDConv卷積模塊
卷積神經(jīng)網(wǎng)絡(CNN)[6]在計算機視覺領域取得了巨大成就。但由于CNN體系結(jié)構中跨卷積和池化層的使用,使傳統(tǒng)的神經(jīng)網(wǎng)絡對于細粒度信息的獲取能力較差,無法很好地作用于小目標檢測任務,因此采用了一種SPDConv[7]的卷積方式代替?zhèn)鹘y(tǒng)的卷積模塊。SPDConv具體由一個空間到深度(SPD)層和一個無卷積步長(Conv)層組成,它在設計上完全消除了步長和池化操作,使得應用了該模塊后的網(wǎng)絡對于細小的數(shù)據(jù)集往往有更好的檢測效果。
2.3"改進的通道域注意力機制(SEnet)模塊
SE[8]注意力機制是一種通道注意力增強機制,其主要由壓縮(squeeze),激活(excitation)以及重加權(reweight)三部分組成。通過對原特征圖進行全局平均池化、ReLU函數(shù)激活、逐通道重加權的方式提升模型對不同通道特征的敏感性,進而改善其捕捉密集目標的能力。網(wǎng)絡中C3SE的結(jié)構即在原網(wǎng)絡的C3模塊中加入SE注意力機制。
2.4"SwinTransformer注意力機制的增加
SwinTransformer[9]是一種注意力機制,可以幫助模型在進行預測時將注意力集中在圖像的最重要特征上。該機制采用逐層次化設計,共包含四個stage,每個stage都會縮小輸入特征圖的分辨率,并逐層擴大感受野。對比于傳統(tǒng)的Transformer,SwinTransformer將注意力的計算限制在每個窗口內(nèi),進而減少了計算量。通過在原網(wǎng)絡Neck部分的C3模塊中增加SwinTransformer機制(即C3STR),提高Neck部分對于裂紋特征的提取能力,從而直接影響Head部分的檢測效果。
2.5"SIoU損失函數(shù)
SIoU[10](scaleaware"intersection"over"union)是一種用于提高目標檢測精度的新度量,具體由角度損失函數(shù)、距離損失函數(shù)、形狀損失函數(shù)和IoU損失函數(shù)組成。由于該損失函數(shù)重新定義了懲罰度量,考慮了期望與回歸之間的向量夾角,使之可以有效提高模型對小目標的檢測性能,有助于穩(wěn)定訓練過程,對于裂紋等小目標具有較好的檢測效果。
3"實驗結(jié)果及分析
3.1"實驗配置
所有模型的訓練和測試均在Linux系統(tǒng)下完成,選用PyTorch1.7.1框架。具體的實驗環(huán)境配置如表1所示。
3.2"模型評價指標
為了對改進后的模型進行性能評估對比,我們以準確率(Precision,P)、召回率(Recall,R)和平均精度均值(mAP)作為模型檢測效果的評估指標。通常來說,P和R是相互制約的關系,而mAP值往往能體現(xiàn)模型的綜合檢測能力,因此在模型的檢測效果評價中以mAP為主要參考依據(jù)。模型的復雜程度則與計算量(GFLOPs)和參數(shù)量(parameter,p)相關,通常GFLOPs與parameters越大,模型越復雜。
3.3"訓練結(jié)果和分析
實驗訓練操作中首先對訓練的圖片進行分割處理以及Mosaic數(shù)據(jù)增強操作,然后再按照訓練集∶測試集∶驗證集="6∶2∶2的比例對分割后的數(shù)據(jù)集進行劃分,最后以輸入圖像分辨率640×640,訓練總輪數(shù)為"400"輪的參數(shù)進行訓練。
3.3.1"使用SIoU后的實驗分析
為了驗證SIoU對于模型綜合性能的影響,實驗一對比了YOLOv5s模型在不同目標框損失函數(shù)下的表現(xiàn),對比結(jié)果如表2所示。通過表2可知,在使用SIoU_Loss替換CIoU_Loss后,模型的召回率、準確率與綜合檢測能力均得到了提高。
3.3.2"修改網(wǎng)絡結(jié)構后的實驗分析
在YOLOv5s算法的基礎上對網(wǎng)絡結(jié)構進行修改,修改后的網(wǎng)絡結(jié)構如圖1(記作模型A)。為了探究模型A的檢測能力,在實驗一的基礎上進行實驗二,具體操作為在SIoU_Loss的基礎上運行修改后的模型A,并在完成訓練后對模型的訓練結(jié)果進行可視化處理,其中mAPIoU=0.50以及mAPIoU=0.5∶0.95的具體結(jié)果如圖3所示。
從圖3可知,隨著訓練輪數(shù)的增加,mAP@0.5與mAP@0.5∶0.95大體上均呈上升趨勢,在到達300輪后模型基本收斂,此時的mAP@0.5穩(wěn)定在92.5%左右,訓練過程中模型的最高mAP@0.5值為93.51%;mAP@0.5∶0.95最終保持在65%附近。相比于傳統(tǒng)的YOLOv5s網(wǎng)絡,mAP值的增大說明了修改后的模型A對密集、細小的裂紋數(shù)據(jù)集有著更好的識別能力。
模型A與YOLOv5s、YOLOv5m的結(jié)果對比如表3所示。通過表3可以發(fā)現(xiàn)模型A的參數(shù)量與計算量相較于YOLOv5s有所上升,但復雜度卻遠小于YOLOv5m,且模型A的檢測效果無論是對比輕量的YOLOv5s還是復雜的YOLOv5m,都有著一定的提升。
3.4"分割拼接處理的實驗結(jié)果與分析
為了驗證分割拼接處理對于檢測效果的影響,設計了一組對照試驗,在相同的檢測權重和圖片集條件下,一組按照先分割,再檢測,最后反向拼接還原的方式進行檢測操作;另一組則是直接進行檢測操作。兩組實驗的檢測結(jié)果對比如圖4。
通過圖4發(fā)現(xiàn),經(jīng)過分割拼接方法處理后的實驗組可以檢測出一些難以發(fā)現(xiàn)的細小的、不明顯的裂紋,但由于存在拼接過程,不可避免地造成了檢測框重疊的現(xiàn)象。
4"結(jié)"論
為了實現(xiàn)機場行李運輸系統(tǒng)輪對裂紋的實時檢測,探索了一種基于YOLOv5的裂紋檢測算法,改進的主要方向為:修改了原網(wǎng)絡的損失函數(shù),在網(wǎng)絡中增加了SE注意力機制和SwinTransformer模塊;使用SPDConv替代了傳統(tǒng)的Conv模塊;增加了圖片分割與子圖反向拼接的預處理。通過實驗可知,修改后的模型與YOLOv5s相比,mAP@0.5提升了2.44%,召回率P提升了5.08%。在檢測實驗中,利用圖像分割與拼接處理,即使在相同的數(shù)據(jù)集與檢測權重下,也能更好地識別出細小裂紋。
綜上所述,修改后的模型基本能滿足機場對于行李運輸系統(tǒng)輪對裂紋的實時檢測要求。
參考文獻
[1]"GIRSHICK"R,"DONAHUE"J,"DARRELL"T,"et"al."Rich"feature"hierarchies"for"accurate"object"detection"and"semantic"segmentation[C]//Proceedings"of"the"IEEE"Conference"on"Computer"Vision"and"Pattern"Recognition,2014:"580-587.
[2]"GIRSHICK"R."Fast"rcnn[C]//Proceedings"of"the"IEEE"International"Conference"on"Computer"Vision,"2015:"1440-1448.
[3]"REDMON"J,"DIVVALA"S,"GIRSHICK"R,"et"al."You"only"look"once:"unified,"realtime"object"detection[C]//Proceedings"of"the"IEEE"Conference"on"Computer"Vision"and"Pattern"Recognition,"2016:"779-788.
[4]"邵延華,張鐸,楚紅雨,"等.基于深度學習的YOLO目標檢測綜述[J].電子與信息學報,2022,44(10):3697-3708.
[5]"CHEN"Xinlei,"GIRSHICK"R,"HE"K,"et"al."Tensormask:"a"foundation"for"dense"object"segmentation[C]//Proceedings"of"the"IEEE/CVF"International"Conference"on"Computer"Vision,"2019:"2061-2069.
[6]"KRIZHEVSKY"A,"SUTSKEVER"I,"HINTON"G."Imagenet"classification"with"deep"convolutional"neural"networks[J]."Communications"of"the"ACM,nbsp;2017,"60(6):"84-90.
[7]"SUNKARA"R,"LUO"T."No"more"strided"convolutions"or"pooling:"a"new"CNN"building"block"for"lowresolution"images"and"small"objects[C]//Joint"European"Conference"on"Machine"Learning"and"Knowledge"Discovery"in"Databases."Cham:"Springer"Nature"Switzerland,"2022:"443-459.
[8]"HU"Jie,"LI"Shen,"SUN"Guang."Squeezeandexcitation"networks[C]//Proceedings"of"the"IEEE"Conference"on"Computer"Vision"and"Pattern"Recognition,2018:"7132-7141.
[9]"LIU"Ze,"LIN"Yutong,"CAO"Yue,"et"al."Swin"transformer:"hierarchical"vision"transformer"using"shifted"windows[C]//Proceedings"of"the"IEEE/CVF"International"Conference"on"Computer"Vision,2021:"10012-10022.
[10]GEVORGYAN"Z."SIoU"loss:"more"powerful"learning"for"bounding"box"regression[J]."arXiv"preprint"arXiv:2205.12740,"2022.