李敏芳
(昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院)
檢測(cè)建筑工地上作業(yè)人員是否按要求佩戴安全帽、穿反光衣,是保障作業(yè)人員安全的重要事項(xiàng)之一。 2000年,國(guó)家發(fā)布了《勞動(dòng)防護(hù)用品配備標(biāo)準(zhǔn)》,2017年發(fā)布了《安全生產(chǎn)標(biāo)準(zhǔn)“十三五”發(fā)展規(guī)劃》,針對(duì)不同行業(yè)制定了防護(hù)安全標(biāo)準(zhǔn)。但這些強(qiáng)制標(biāo)準(zhǔn)不能保證作業(yè)人員落實(shí)安全著裝,因此很多作業(yè)現(xiàn)場(chǎng)就不得不以人工監(jiān)督這種原始的方式加以督促。
隨著計(jì)算機(jī)視覺(jué)技術(shù)的發(fā)展,設(shè)計(jì)以目標(biāo)檢測(cè)算法[1]為核心的智能監(jiān)管系統(tǒng),可以克服人工監(jiān)督效率低下和成本過(guò)高的問(wèn)題。 目標(biāo)檢測(cè)技術(shù)是指在獲得圖片時(shí)自動(dòng)檢測(cè)圖片上物體的位置和類別,可分為3個(gè)步驟:首先,對(duì)需要檢測(cè)的區(qū)域進(jìn)行定位;然后提取目標(biāo)特征;最后將特征傳給算法分類器,例如Adaboost[2]、支持向量機(jī)[3]及隨機(jī)森林[4]等,對(duì)目標(biāo)類別進(jìn)行判斷。 2012年之前,主要是利用傳統(tǒng)目標(biāo)檢測(cè)方法進(jìn)行這類實(shí)驗(yàn)和應(yīng)用;之后,目標(biāo)檢測(cè)引入了深度學(xué)習(xí)的思想來(lái)優(yōu)化傳統(tǒng)算法,但是當(dāng)前針對(duì)工程安全著裝的算法基本都是在網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜的二階算法模型上實(shí)現(xiàn)的, 即以犧牲一定的檢測(cè)速度來(lái)提高精確度, 而且并未就圖像中的小目標(biāo)物體進(jìn)行處理,導(dǎo)致一定的漏檢和誤檢。 傳統(tǒng)目標(biāo)檢測(cè)方法存在計(jì)算效率低下和準(zhǔn)確率低的問(wèn)題。
隨著卷積神經(jīng)網(wǎng)絡(luò)的不斷發(fā)展,目標(biāo)檢測(cè)技術(shù)在圖片提取特征方面有了明顯提高。 很多學(xué)者在神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上提出諸如R-CNN、Fast RCNN、Faster R-CNN[5]等優(yōu)秀的目標(biāo)檢測(cè)方法。 在工程安全方面,2017年中南大學(xué)的畢林采用深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)在Caffe框架下對(duì)礦山環(huán)境中工人安全帽的佩戴情況進(jìn)行檢測(cè), 在500輪訓(xùn)練后取得了約79%的檢測(cè)精度;文獻(xiàn)[6]用目標(biāo)檢測(cè)算法Faster R-CNN對(duì)安全帽佩戴情況進(jìn)行檢測(cè),取得了約84%的平均精度,但網(wǎng)絡(luò)深度大的二階算法會(huì)導(dǎo)致訓(xùn)練速度較慢,在工程安全對(duì)于時(shí)效性非??粗氐那闆r下,就把目光轉(zhuǎn)向了基于回歸的一階算法 (如SDD、YOLO系列等) 模型。YOLOv1[7]是YOLO系列的第1個(gè)版本,把目標(biāo)檢測(cè)問(wèn)題轉(zhuǎn)換成了回歸問(wèn)題,也就是讓它直接回歸到物 體 的 類 別 概 率 和 位 置 坐 標(biāo) 值。 YOLOv2[8]在YOLOv1 的基礎(chǔ)上引入了Anchor 機(jī)制和Batch Normalization,并且使用Darknet-19替代原來(lái)的網(wǎng)絡(luò) 結(jié) 構(gòu)。 2018 年,Redmon 提 出 了YOLOv3,用Darknet-53替代了Darknet-19, 由此YOLOv3可以實(shí)現(xiàn)多尺度檢測(cè),并且利用邏輯回歸方法替代了YOLOv2的Softmax來(lái)實(shí)現(xiàn)分類。 2019年,施輝采用圖像金字塔(Image Pyramid),通過(guò)提取多種尺度的特征圖,結(jié)合YOLOv3進(jìn)行安全帽佩戴的檢測(cè)。YOLOv4[9]保留了YOLOv3的頭部部分,將主干網(wǎng)絡(luò)換成了CSPDarknet-53 (Darknet-53和CSPNet的結(jié)合體),并且使用空間金字塔池化(SPP)[10]增加感受野,在YOLOv3的FPN[11]的基礎(chǔ)上對(duì)PAN[12]使用張量連接, 以此為頸部作為參數(shù)聚合的方法。2020 年6 月10 日YOLOv5 發(fā) 布,YOLOv5 模 型 比YOLOv4小近90%,但在整體計(jì)算速度上提高了很多, 同時(shí)檢測(cè)精確度卻沒(méi)有YOLOv4 的高,YOLOv5由輸入端、主干網(wǎng)絡(luò)、頸部和檢測(cè)端4部分組成。 YOLOv5的主干網(wǎng)絡(luò)主要由Focus結(jié)構(gòu)和CSP結(jié)構(gòu)組成,F(xiàn)ocus結(jié)構(gòu)是在YOLOv5中新增加的一個(gè)操作,重點(diǎn)是切片。 頸部位于主干網(wǎng)絡(luò)和預(yù)測(cè)之間, 使用FPN-PAN結(jié)構(gòu)、CSP2結(jié)構(gòu)和PAN來(lái)聚合特征,增加特征的融合能力。
工程安全著裝檢測(cè)面臨的挑戰(zhàn)[13]主要是:安全帽這類小目標(biāo)在圖片中占比過(guò)小, 特征不明顯; 卷積神經(jīng)網(wǎng)絡(luò)的多次下采樣導(dǎo)致安全帽等小目標(biāo)特征丟失問(wèn)題。 在針對(duì)目標(biāo)檢測(cè)的小目標(biāo)識(shí)別上,可以簡(jiǎn)略地考慮分為Anchor-based的改進(jìn)以及Anchor-free的改進(jìn)。 YOLOv5是一個(gè)Anchor-based模型,并且YOLOv5含有多層卷積神經(jīng)網(wǎng)絡(luò), 因此就YOLOv5 的模型特征考慮:在Anchor機(jī)制上進(jìn)行優(yōu)化; 在整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)上優(yōu)化。 筆者先利用遺傳算法對(duì)Anchor機(jī)制優(yōu)化錨框,克服自適應(yīng)Anchor機(jī)制過(guò)于依賴初始聚類中心的問(wèn)題; 然后在網(wǎng)絡(luò)結(jié)構(gòu)里嵌入輕量級(jí)的注意力機(jī)制模塊ECAnet[14],以提高整體模型提取重要信息特征的能力以及對(duì)安全帽等小目標(biāo)的檢測(cè)能力。
Anchor機(jī)制能夠產(chǎn)生大量密集錨框, 可以通過(guò)設(shè)計(jì)更符合安全帽等小目標(biāo)、尺度和長(zhǎng)寬比不同的錨框來(lái)覆蓋盡可能多的有效感受野,在此基礎(chǔ)上, 網(wǎng)絡(luò)可以進(jìn)行目標(biāo)分類和預(yù)測(cè)框坐標(biāo)回歸, 并且密集錨框?qū)W(wǎng)絡(luò)的召回能力有一定提高,這對(duì)目標(biāo)識(shí)別有很大的優(yōu)勢(shì)。
YOLOv5原來(lái)使用自適應(yīng)錨框計(jì)算, 模型受初始設(shè)定的影響, 不一定適用于現(xiàn)在的數(shù)據(jù)集,因此引入遺傳算法優(yōu)化錨框。 YOLOv5是一個(gè)提取多尺度特征圖的模型,會(huì)提取出不同深度的特征圖。 對(duì)于不同深度的特征圖,深層特征具有更多的語(yǔ)義信息和抽象信息,淺層特征保留了更多的空間信息。 因此,深層特征圖缺乏目標(biāo)的細(xì)粒度信息, 而淺層特征圖會(huì)有語(yǔ)義信息不足的問(wèn)題。 筆者引入ECAnet模塊來(lái)高效融合不同層次的特征信息, 不僅增加淺層特征圖的語(yǔ)義信息,也增加了深層特征圖的細(xì)顆粒信息,也即總體增強(qiáng)了安全帽等小目標(biāo)細(xì)節(jié)特征的同時(shí)保留了它們的邊緣信息, 提高了整體網(wǎng)絡(luò)的特征提取能力。改進(jìn)后的YOLOv5結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)后的YOLOv5模型結(jié)構(gòu)
Anchor機(jī)制最初是在Faster R-CNN 中提出的,目標(biāo)是處理圖像尺寸和長(zhǎng)寬比的大規(guī)模變化問(wèn)題,規(guī)劃規(guī)范的預(yù)測(cè)框型號(hào)以減少冗雜的計(jì)算量。
YOLOv5模型中是自適應(yīng)錨框算法, 加入遺傳算法進(jìn)行優(yōu)化,利用預(yù)設(shè)錨框?qū)︻A(yù)測(cè)框計(jì)算寬長(zhǎng)比, 取寬長(zhǎng)比最小值和9個(gè)錨框中最大的比例值, 原本的k-means算法是利用歐式距離作為度量, 本研究采用交并比(Intersection over Union,IoU)替代歐式距離計(jì)算聚類。 遺傳算法的流程如圖2所示,將最大可能召回率(best possible recall)作為指標(biāo), 首先利用默認(rèn)的錨框計(jì)算出寬高,并對(duì)比真實(shí)框的寬高差距計(jì)算交并比,利用k-means算法不斷更新錨框大小, 最終得到最佳的9個(gè)錨框值;然后計(jì)算最大可能召回率,如果最大可能召回率大于0.98就直接輸出, 如果小于0.98則進(jìn)入遺傳算法。
圖2 遺傳算法流程
遺傳算法主要是對(duì)參數(shù)的編碼進(jìn)行操作,不影響參數(shù)本身,從族群出發(fā),不是只關(guān)注在特定點(diǎn)上,因此可以防止過(guò)程收斂在局部最優(yōu),它的規(guī)則是由概率決定,而非一個(gè)確定的答案。 本研究選擇遺傳算法的過(guò)程只經(jīng)過(guò)了選擇和變異的過(guò)程。 具體操作過(guò)程:首先對(duì)根據(jù)聚類選出來(lái)的n個(gè)點(diǎn)進(jìn)行隨機(jī)突變,利用適應(yīng)度函數(shù)(mAP@.5和mAP@.5:.95的比例為1∶9) 選出突變后最佳的錨框值,計(jì)算最大可能召回率,如果大于0.98則直接輸出,如果小于0.98就進(jìn)入下一次迭代。
1.2 基于注意力機(jī)制優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)
為了讓模型獲得關(guān)于需要注意的目標(biāo)的更詳細(xì)的信息,并抑制來(lái)自不同通道的其他無(wú)用信息,考慮利用注意力機(jī)制。 在之前的注意力機(jī)制的研究中,大多現(xiàn)有方法都致力于開(kāi)發(fā)更復(fù)雜的注意力模塊,以獲得更好的性能,這不可避免地增加了模型的復(fù)雜性。 為了能夠保留YOLOv5輕量級(jí)的優(yōu)勢(shì),本研究引入一個(gè)高效信道注意ECA模塊(ECAnet),該模塊只涉及少量參數(shù),同時(shí)帶來(lái)明顯的性能增益。
ECAnet是 在SEnet[15]的 基礎(chǔ) 上 進(jìn)行 優(yōu) 化 后 的版本。 SEnet是注意力機(jī)制的經(jīng)典算法,在給定輸入特征之后,SEnet為每個(gè)通道采用全局平均池化(GAP),之后利用非線性的全連接層(FC)和Sigmoid函數(shù)來(lái)獲取通道的權(quán)重。 其中,全連接層是為了獲得非線性的跨通道交互,與降維和控制復(fù)雜度有關(guān)。 研究發(fā)現(xiàn),降維會(huì)對(duì)預(yù)測(cè)帶來(lái)負(fù)面影響, 并且對(duì)通道間的關(guān)系也沒(méi)有較明顯的作用,因此不同于SEnet,ECAnet去掉了SEnet中使用的兩個(gè)為了獲取跨通道權(quán)值、降維的FC層。如圖3所示,ECAnet在不降低維度的情況下進(jìn)行了全局平均池化, 利用當(dāng)前通道和它的k個(gè)相鄰?fù)ǖ纴?lái)進(jìn)行本地跨通道交互。 具體操作:特征圖輸入在進(jìn)入全局平均池化的聚合特性后,ECAnet用一維卷積替代SEnet中的FC層快速生成通道權(quán)值,其中k為卷積核大小,作為參數(shù)進(jìn)行通道間的交互。
圖3 ECAnet模塊結(jié)構(gòu)
ECAnet使用一個(gè)矩陣Wk來(lái)學(xué)習(xí)通道注意力,Wk的計(jì)算式為:
可以看出Wk涉及k×c個(gè)參數(shù)。
權(quán)值ωi的計(jì)算式為:
其中,yi的權(quán)值只考慮yi和它的k個(gè)鄰居通道直接的交互;σ為Sigmoid函數(shù);Ω為y的集合。
假設(shè)所有通道共享相同的學(xué)習(xí)參數(shù),那么就簡(jiǎn)化了式(2),得到:
上述過(guò)程可以簡(jiǎn)略地利用一個(gè)大小為k的卷積核一維卷積實(shí)現(xiàn):
其中,C1D是一維卷積。
式(4)由ECAnet調(diào)用,它只涉及k個(gè)參數(shù)。k值可通過(guò)通道維度量C的函數(shù)自適應(yīng)地確定, 計(jì)算式為:
其中,|·|odd指選擇最近的奇數(shù);γ的值取2,b取1。
卷積神經(jīng)網(wǎng)絡(luò)對(duì)小目標(biāo)特征提取過(guò)程中的特征不斷降維縮小會(huì)導(dǎo)致小目標(biāo)的信息損失,選擇在卷積網(wǎng)絡(luò)這邊嵌入ECAnet以增強(qiáng)小目標(biāo)信息,通過(guò)網(wǎng)絡(luò)結(jié)構(gòu)“Conv+BN+ECAnet+LeakyRe-LU”在網(wǎng)絡(luò)學(xué)習(xí)中捕獲不同通道的權(quán)重參數(shù),更多地保留小目標(biāo)的細(xì)節(jié)信息,強(qiáng)化重要信息并抑制非重要信息。 具體結(jié)構(gòu)如圖4所示。
圖4 ECAnet嵌入位置
2.1.1 數(shù)據(jù)集
本研究涉及的數(shù)據(jù)集包括:coco2017公開(kāi)數(shù)據(jù)集和私有數(shù)據(jù)集。 其中包括了不同人體朝向(正面、背面、側(cè)面、上半身)在不同場(chǎng)景(室內(nèi)、室外)及不同密度(單人、多人)等情況,并劃分出3 004張訓(xùn)練集和400張驗(yàn)證集。
2.1.2 環(huán)境配置
Windows 10操作系統(tǒng),Pytorch框架Python語(yǔ)言完成模型的訓(xùn)練。 測(cè)試設(shè)備CPU型號(hào)11th Gen Intel(R)Core(TM)i5-11400@2.60 GHz,GPU 型 號(hào)NVIDIA GeForce RTX 3060,內(nèi)存16 G,軟件環(huán)境CUDA 11.4,CUDNN 7.6,Python3.8。
2.1.3 性能指標(biāo)
精確率P是計(jì)算預(yù)測(cè)正確的比率,召回率R是正確找到目標(biāo)的比率。
本研究引入精確率和召回率作為衡量是否準(zhǔn)確找到目標(biāo)物體的基礎(chǔ),計(jì)算式為:
其中,TP指將正樣本預(yù)測(cè)為正,F(xiàn)P指將負(fù)樣本預(yù)測(cè)為正,F(xiàn)N指將負(fù)樣本預(yù)測(cè)為負(fù)。
平均精確度AP(AveragePrecision)的計(jì)算式為:
AP是由R作為橫坐標(biāo)和P作為縱坐標(biāo)的積分,即PR曲線下方的面積,它的取值范圍在0~1。
mAP(mean Average Precision)表示每個(gè)類AP的平均值,用作多類標(biāo)簽預(yù)測(cè)的指標(biāo),計(jì)算式為:
其中,QR指的是分類的數(shù)量。
IoU的計(jì)算如圖5所示,可以看出IoU是預(yù)測(cè)框與真實(shí)框之間的交集與并集的一個(gè)比值,這個(gè)值的大小可以反映檢測(cè)效果。
圖5 IoU計(jì)算示意圖
mAP@.5的含義是當(dāng)IoU為0.5時(shí)的mAP值;mAP@.5:.95指的是在不同IoU (從0.50到0.95,步長(zhǎng)0.05)上mAP的平均值。
本研究首先將數(shù)據(jù)集轉(zhuǎn)換成YOLOv5可以處理的格式。
為了設(shè)計(jì)出更優(yōu)化的YOLOv5模型, 筆者對(duì)YOLOv5 構(gòu)建的不同深度和寬度的模型(YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x)進(jìn)行了實(shí)驗(yàn)和對(duì)比。 通過(guò)實(shí)驗(yàn)選擇出最適合的基準(zhǔn)模型,然后針對(duì)基準(zhǔn)模型進(jìn)行優(yōu)化和改進(jìn)。
本研究在YOLOv5常用的4種模型上的超參初始設(shè)置:迭代次數(shù)1 000代;初始學(xué)習(xí)率0.01;余弦退火值0.2;動(dòng)量(momentum)0.937;batchsize為4。
為了讓模型提前熟悉一下數(shù)據(jù)集,如果使用較大的學(xué)習(xí)率會(huì)導(dǎo)致整個(gè)模型振蕩, 選擇warmup預(yù)熱會(huì)比較快地使模型穩(wěn)定,因此這里設(shè)置的是3代小學(xué)習(xí)率warm-up訓(xùn)練。
2.2.1 4種模型對(duì)比實(shí)驗(yàn)
圖6是目標(biāo)物體的位置和大小分布。 從圖6a中可以看出目標(biāo)物體的分布比較均勻, 說(shuō)明所選數(shù)據(jù)集在目標(biāo)物體的位置信息上具有泛化性。 圖6b是目標(biāo)物在整個(gè)圖像中所占寬高比, 可以看出數(shù)據(jù)集中的目標(biāo)物體在圖像上的占比大部分偏小。
圖6 目標(biāo)物體的位置和大小分布
小目標(biāo)的定義即指圖片上占比過(guò)小或像素點(diǎn)稀疏的目標(biāo)物,因此此數(shù)據(jù)集屬于小目標(biāo)檢測(cè)范疇。
當(dāng)一個(gè)模型擁有越復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),可能會(huì)獲得更高的檢測(cè)精確度, 但其相對(duì)參數(shù)也越多,訓(xùn)練所需時(shí)間也越長(zhǎng)。 模型如果過(guò)于復(fù)雜,未必能在小目標(biāo)樣本上得到最優(yōu)結(jié)果,而且復(fù)雜模型的權(quán)重相對(duì)較高,計(jì)算量也更大。
筆者先針對(duì)YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x對(duì)本數(shù)據(jù)集進(jìn)行訓(xùn)練。 不同模型的各項(xiàng)指標(biāo)見(jiàn)表1, 其中深度指網(wǎng)絡(luò)的深度也就是通道的系數(shù), 在后面計(jì)算時(shí)需將通道數(shù)乘以該系數(shù);寬度是指網(wǎng)絡(luò)的寬度, 也就是BottleneckCSP模塊的層縮放系數(shù),需將每一層的卷積核數(shù)量乘以該系數(shù)。 隨著模型復(fù)雜度加深,模型參數(shù)也越來(lái)越多,GFLOPS(每秒千兆浮點(diǎn)運(yùn)算次數(shù))也越高,對(duì)于GPU的內(nèi)存需求也就越大。
表1 4種模型指標(biāo)參數(shù)
4種模型訓(xùn)練過(guò)程的對(duì)比如圖7所示,可以看出,模型的性能表現(xiàn)跟其結(jié)構(gòu)的復(fù)雜程度是成正比的,損失值越小,說(shuō)明錯(cuò)漏檢測(cè)的情況越少,在理想狀態(tài)下,希望這個(gè)值越接近0越好。由圖7a可以看出, 模型損失隨著訓(xùn)練的進(jìn)行逐漸下降,在訓(xùn)練了500代后基本穩(wěn)定接近10%, 最終達(dá)到10%以下。 由圖7b可以看出,mAP@.5的值在訓(xùn)練了200代之后逐漸穩(wěn)定,最終接近90%。還可以看出,4個(gè)模型的最終精確度非常接近。在實(shí)際應(yīng)用過(guò)程中,除了要考慮模型效果,還應(yīng)該考慮硬件是否比較容易達(dá)到, 這樣才能推廣并降低成本。YOLOv5x模型對(duì)于CPU內(nèi)存的需求將近YOLOv5s的3倍多,可見(jiàn),模型越復(fù)雜,對(duì)計(jì)算機(jī)的性能要求也越高。
圖7 4種模型訓(xùn)練過(guò)程對(duì)比
將4個(gè)模型在測(cè)試集上得到的數(shù)據(jù)和訓(xùn)練集上訓(xùn)練的數(shù)據(jù)結(jié)合,得到表2(表中“檢測(cè)速度”指檢測(cè)一次所花費(fèi)的時(shí)間),可以看出,模型越復(fù)雜,能夠獲得的精確度也越高, 但是付出的時(shí)間代價(jià)也越大。 在精確度相差不大的情況下,YOLOv5x所需的檢測(cè)時(shí)間是YOLOv5s的3倍多,YOLOv5x所花費(fèi)的檢測(cè)時(shí)間以及訓(xùn)練時(shí)長(zhǎng)都遠(yuǎn)多于YOLOv5s。在實(shí)際生產(chǎn)過(guò)程中, 目標(biāo)檢測(cè)對(duì)于實(shí)時(shí)性要求很高,越快速地檢測(cè)出目標(biāo)物體越好。 因此,在精確度相差不大的情況下, 選擇YOLOv5s作為工程應(yīng)用的最佳檢測(cè)模型比較符合實(shí)際。
表2 4種模型在測(cè)試集上的性能對(duì)比
2.2.2 改進(jìn)后的模型和YOLOv5s模型的對(duì)比實(shí)驗(yàn)
圖8是優(yōu)化前、 后模型的訓(xùn)練過(guò)程對(duì)比,“YOLOv5s+ECA” 為YOLOv5s 經(jīng) 由 遺 傳 算 法 和ECAnet優(yōu)化后的模型。 由圖8a可以看出,總的損失在前100代左右是急速下降的, 之后擬合狀態(tài)良好,逐漸趨于緩和,優(yōu)化后的模型在總的損失值上的表現(xiàn)比基準(zhǔn)模型更加優(yōu)秀,更接近于0。 由圖8b可以看出,平均精確度隨著訓(xùn)練迭代次數(shù)的加大而增加, 在100代左右就達(dá)到了比較好的擬合狀態(tài),后面逐漸趨于穩(wěn)定,平均精確度在訓(xùn)練到200代時(shí)已經(jīng)能夠達(dá)到比較高的精確率, 接近90.00%。
圖8 改進(jìn)后的模型和YOLOv5s模型的對(duì)比
在對(duì)比了訓(xùn)練模型之后,為了驗(yàn)證優(yōu)化模型的效果是否到達(dá)預(yù)期,將優(yōu)化后的模型和基準(zhǔn)模型在測(cè)試集上進(jìn)行實(shí)驗(yàn),結(jié)果見(jiàn)表3,可以看出,改進(jìn)后的模型在原來(lái)的基礎(chǔ)上召回率提高了3.82%,mAP@.5提高了0.73%,mAP@.5:.95提高了1.00%。 也就是說(shuō)在檢測(cè)速度差不多的情況下,引入ECAnet和遺傳算法提高了整體檢測(cè)精度。
表3 改進(jìn)后模型與YOLOv5s模型在測(cè)試集上的性能對(duì)比
圖9為改進(jìn)后的模型和基準(zhǔn)模型的檢測(cè)效果對(duì)比, 可以明顯看出優(yōu)化后的模型相較于原模型在精確度上有一定的提高。 YOLOv5s模型能夠準(zhǔn)確地檢測(cè)出大尺度目標(biāo), 但是在檢測(cè)被遮擋的小尺度目標(biāo)時(shí)出現(xiàn)了錯(cuò)漏; 改進(jìn)后的模型對(duì)小尺度目標(biāo)的檢測(cè)效果更好,錯(cuò)漏情況更少。證明改進(jìn)模型在復(fù)雜場(chǎng)景下,相較于YOLOv5s模型,對(duì)于小尺度目標(biāo)具有更高的檢測(cè)精度、定位精度和魯棒性。
圖9 改進(jìn)前、后模型的檢測(cè)效果對(duì)比
為了適應(yīng)小尺度目標(biāo)的特征, 對(duì)YOLOv5s的Anchor機(jī)制利用IoU替代歐式距離作為k-means算法的度量,然后進(jìn)行遺傳算法的流程優(yōu)化,增強(qiáng)模型的收斂效果。 為了削減卷積神經(jīng)網(wǎng)路在特征提取過(guò)程中對(duì)安全帽等小目標(biāo)特征的丟失現(xiàn)象,筆者在骨干網(wǎng)絡(luò)中嵌入ECAnet,利用ECAnet對(duì)不同通道進(jìn)行加權(quán)以更好地專注在重要通道上的特點(diǎn),可以提高整個(gè)模型的特征提取能力,減少整個(gè)模型的計(jì)算量。與原YOLOv5s模型相比,優(yōu)化后的模型召回率增加了3.82%,mAP@.5增加了0.73%,mAP@.5:.95增加了1.00%。 相關(guān)實(shí)驗(yàn)也證明改進(jìn)模型在各種常見(jiàn)建筑作業(yè)下,對(duì)于不同姿勢(shì)和服裝顏色都能夠做出準(zhǔn)確的識(shí)別,證實(shí)了模型的普適性和魯棒性。
在接下來(lái)的研究工作中,會(huì)繼續(xù)針對(duì)小目標(biāo)特征進(jìn)行模型改進(jìn), 并在不同數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),以期得到性能更好、應(yīng)用更廣泛的模型。