邵宇鷹,劉睿丹,魯 飛,李東賓,彭 鵬,柯 楠
(1.國(guó)網(wǎng)上海市電力公司,上海 200122;2.許繼電氣股份有限公司,河南 許昌 461000;3.華東送變電工程有限公司,上海 201803)
工程施工或作業(yè)現(xiàn)場(chǎng)通常都隱藏很多安全隱患,現(xiàn)場(chǎng)作業(yè)人員有時(shí)安全意識(shí)不夠、偶爾懶散且抱有僥幸心理,監(jiān)管人員數(shù)量有限,再加之疏忽管理,雖然出臺(tái)了一系列安全保障措施,但是每年由于不正確佩戴安全帽導(dǎo)致的安全事故依然層出不窮。隨著科技創(chuàng)新進(jìn)步,采用大數(shù)據(jù)、機(jī)器學(xué)習(xí)算法、智能AI、數(shù)字圖像處理技術(shù)等先進(jìn)手段,通過機(jī)器代替人為監(jiān)督管理,及時(shí)發(fā)現(xiàn)現(xiàn)場(chǎng)工作人員未佩戴安全帽違規(guī)行為,可以有效解決由于監(jiān)督體系力量缺乏、全過程監(jiān)督薄弱、監(jiān)控水平低的難題。
早期安全帽識(shí)別的研究主要基于傳統(tǒng)圖像處理算法,文獻(xiàn)[1]通過Hog特征提取算法檢測(cè)行人,在行人圖像上采用顏色特征提取和霍夫圓形幾何識(shí)別確定安全帽佩戴情況。文獻(xiàn)[2]利用傳統(tǒng)機(jī)器學(xué)習(xí)算法檢測(cè)安全帽,利用從確定人臉的區(qū)域中獲取Hu矩特征作為安全帽特征信息。文獻(xiàn)[3]通過可變形部件模型(Deformable Part Mode)方式構(gòu)建部件模板匹配到行人特定區(qū)域。傳統(tǒng)方式的準(zhǔn)確度達(dá)到瓶頸后很難突破,目前研究方向更熱衷于準(zhǔn)確率更高的深度學(xué)習(xí)算法,如:VGG模型[4],ReNet網(wǎng)絡(luò)框架[5]和Yolo模型框架[6,7]。文獻(xiàn)[8]中的安全帽識(shí)別算法采用多尺度特征融合的Faster Rcnn模型框架,可通過融合特征層實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)模型的優(yōu)化。文獻(xiàn)[9]提出一種適合部署在移動(dòng)端的輕量化的Yolov5模型,提取HourGlass特征,通過對(duì)模型進(jìn)行剪枝量化實(shí)現(xiàn)運(yùn)行速度的提升。文獻(xiàn)[10]利用高精度、快速性的Fast RCNN模型檢測(cè)可實(shí)時(shí)監(jiān)測(cè)工人佩戴安全帽的情況。
上述文獻(xiàn)的算法雖然對(duì)安全帽識(shí)別準(zhǔn)確率提升有一定意義。但是現(xiàn)實(shí)場(chǎng)景下,佩戴安全帽的背景通常復(fù)雜多變,部分場(chǎng)景的目標(biāo)仍會(huì)被誤識(shí)別為安全帽,或被擱置安全帽或被人手拿安全帽均被誤識(shí)別為人員佩戴的安全帽本。本文提出一種級(jí)聯(lián)網(wǎng)絡(luò),Yolov3模型作為一級(jí)網(wǎng)絡(luò),在圖像區(qū)域內(nèi)獲取作業(yè)人員和安全帽的特征及位置信息,然后連接Inception-v2二級(jí)網(wǎng)絡(luò)模型,對(duì)作業(yè)人員ROI區(qū)域內(nèi),更精確地判斷人員安全帽的佩戴情況,進(jìn)一步提升安全帽識(shí)別準(zhǔn)確率,減少由于其他背景干擾因素造成安全帽的誤識(shí)別。
Yolov3是一種通過端對(duì)端方式實(shí)現(xiàn)目標(biāo)檢測(cè)和識(shí)別的深度學(xué)習(xí)算法。Yolov3算法基于傳統(tǒng)的CNN卷積網(wǎng)絡(luò)模型框架,融合先驗(yàn)錨框(anchor box)、多尺度特征檢測(cè)、邊界框(bounding box)預(yù)測(cè)等改進(jìn)方式,實(shí)現(xiàn)不同尺寸目標(biāo)檢測(cè)。Yolov3模型框架如圖1所示。
圖1 Yolov3模型框架
(1)Yolov3模型框架
Yolov3的主體特征提取框架采用Darknet-53主體模型,Darknet-53網(wǎng)絡(luò)模型中通過連接多個(gè)殘差網(wǎng)絡(luò)模塊,解決模型由于深層次訓(xùn)練易造成梯度消失的問題。其中,每個(gè)殘差網(wǎng)絡(luò)模塊有兩個(gè)卷積層和一個(gè)shortcut connection組成,整個(gè)Darknet-53網(wǎng)絡(luò)采用步長(zhǎng)strides為2的卷積層進(jìn)行降采樣[6]。
Yolov3 算法借助圖像特征金字的思想,采用多尺度檢測(cè)方式實(shí)現(xiàn)對(duì)大、中、小3種不同尺度目標(biāo)預(yù)測(cè)。主干網(wǎng)絡(luò)在下采樣過程中,分別獲取輸出為輸入圖像大小的1/32,1/16,1/8倍的特征圖,再和模型后面上采樣特征圖拼接形成三種不同尺度的預(yù)測(cè)結(jié)果,這3個(gè)不同尺度的特征圖分別代表了不同感受野,下采樣倍數(shù)越大、特征圖越小、感受野越大,更適宜預(yù)測(cè)大尺寸目標(biāo)。
(2)損失函數(shù)
Yolov3的損失函數(shù)由3部分損失累加組成,其中包括利用均方差損失函數(shù)對(duì)邊框進(jìn)行回歸預(yù)測(cè),利用交叉熵?fù)p失函數(shù)分別進(jìn)行多類別預(yù)測(cè)和置信度的二分類預(yù)測(cè)。損失函數(shù)表示如下:
式中,λcoord表示位置預(yù)測(cè)的損失權(quán)重,λnoobj表示不包含目標(biāo)的損失函數(shù)的置信度權(quán)重;xi,yi,wi,hi表示預(yù)測(cè)框的位置信息,表示真實(shí)框的位置信息;cij表示預(yù)測(cè)置信度,表示真實(shí)置信度;Pji表示目標(biāo)類別的預(yù)測(cè)概率,表示輸出的實(shí)際類別概率;Iijobi表示第i個(gè)網(wǎng)格,第j個(gè)anchor boxs為正樣本輸出為1,否則為0,Iijnoobj表示第i個(gè)網(wǎng)格,第j個(gè)anchor boxs為負(fù)樣本輸出為1,否則輸出為0。
(3)預(yù)測(cè)機(jī)制
參考Faster Rcnn方法,Yolov3會(huì)預(yù)先利用k-means算法根據(jù)圖像目標(biāo)大小設(shè)定9種不同尺寸的先驗(yàn)錨框(anchor box)。Yolov3網(wǎng)絡(luò)預(yù)測(cè)輸出摒棄全連接層(softmax),用邏輯層(logisitic)取而代之,輸出的多尺度特征圖的每個(gè)單元格均可預(yù)測(cè)3種不同尺寸的邊界框(bounding box)目標(biāo),每個(gè)bounding box包含3類信息:(1)目標(biāo)框位置tx,ty,tw,th;(2)每個(gè)類別分?jǐn)?shù);(3)類別置信度。最后,通過以下公式計(jì)算得到預(yù)測(cè)邊框的中心位置(bx,by)和寬高(bw,bh):
式中,(tx, ty)為預(yù)測(cè)目標(biāo)框中心位置相對(duì)于所在特征圖單元格的左上角位置;(tw, th)為預(yù)測(cè)目標(biāo)框相對(duì)于先驗(yàn)錨框的寬高比;t0為預(yù)測(cè)目標(biāo)框的置信度;cx, cy為預(yù)測(cè)框所在單元格相對(duì)于整圖左上角的距離。
Inception網(wǎng)絡(luò)模型是采用并行網(wǎng)絡(luò)架構(gòu),每個(gè)并行模塊的卷積層或池化層利用不同卷積核進(jìn)行計(jì)算,從而獲取圖像不同尺度下的信息,連結(jié)每個(gè)模塊線路上的輸出,并傳遞至下一層網(wǎng)絡(luò)。這種網(wǎng)絡(luò)結(jié)果可以較好增加網(wǎng)絡(luò)對(duì)特征多尺度的適應(yīng)性。
本文采用Inception-v2網(wǎng)絡(luò)模型,對(duì)Inception-v2網(wǎng)絡(luò)是在Inception-v1基礎(chǔ)上進(jìn)行優(yōu)化改進(jìn)。Inception-v1中分別并行3×3、5×5和1×1窗口大小的卷積核運(yùn)算。其中,加入1×1卷積層的目的是為了減少通道數(shù),可以有效減低模型的復(fù)雜度。Inceptionv1還額外并行一條通道,窗口大小為3×3的池化層,后接1×1卷積層更改輸出通道數(shù)。每個(gè)并行通道通過設(shè)置不同填充(padding)保證輸出特征圖一致。
Inception-v2 是在Inception-v1的基礎(chǔ)上進(jìn)一步優(yōu)化改進(jìn)。Inception-v2網(wǎng)絡(luò)框架優(yōu)化了由于學(xué)習(xí)率設(shè)置導(dǎo)致梯度消失或爆炸的問題,在模型結(jié)構(gòu)上通過卷積分解提高計(jì)算效率。通過拆分各卷積層的卷積核,縮減卷積參數(shù)數(shù)量,如:卷積核為5×5的卷積層拆分為兩個(gè)3×3卷積核的卷積層,將卷積核3×3的卷積層拆分為1×3和3×1兩個(gè)卷積層串聯(lián)。Inception-v2模型中針對(duì)池化層添加一個(gè)并行之路,即池化層由兩條通道組成,一條通道為1×1的卷積層,另一條通道為池化層,最后拼接兩通道的特征維度(如圖2所示)。為了減少各層參數(shù)在訓(xùn)練過程中變化較大的影響,Inception-v2中加入正則化操作(Batch Normalization)。
圖2 Inception-v2網(wǎng)絡(luò)
本文將Yolov3網(wǎng)絡(luò)模型和Inception-v2網(wǎng)絡(luò)模型串聯(lián)組成,Yolov3作為一級(jí)網(wǎng)絡(luò)主要通過獲取行人特征信息,對(duì)行人目標(biāo)進(jìn)行精確定位和識(shí)別,除此之外,Yolov3模型還可從圖像中初步預(yù)估到安全帽特征和位置,但是由于安全帽本身特征結(jié)構(gòu)單一、受到背景復(fù)雜干擾等影響,初步檢測(cè)的安全帽未必為所屬行人特征佩戴的安全帽,部分目標(biāo)被誤識(shí)別為安全帽,或被擱置安全帽或被人手拿安全帽均被誤識(shí)別為人員佩戴的安全帽,直接僅依據(jù)Yolov3模型輸出結(jié)果判斷易增加誤識(shí)別風(fēng)險(xiǎn)。
Inception-v2網(wǎng)絡(luò)作為二級(jí)網(wǎng)絡(luò)主要從一級(jí)網(wǎng)絡(luò)中獲取的行人特征中更具針對(duì)性識(shí)別和訓(xùn)練人員佩戴安全帽特征。二級(jí)網(wǎng)絡(luò)的安全帽特征信息作為一級(jí)網(wǎng)絡(luò)的參考標(biāo)準(zhǔn),結(jié)合一級(jí)網(wǎng)絡(luò)的輸出結(jié)果,從而最終確定人員是否佩戴有安全帽,級(jí)聯(lián)網(wǎng)絡(luò)的結(jié)構(gòu)如圖3所示。
圖3 級(jí)聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)
本文實(shí)驗(yàn)在服務(wù)器下進(jìn)行訓(xùn)練和測(cè)試,服務(wù)器的硬件配置為NVDIA 2080Ti 的GPU顯卡,12G顯存,開發(fā)系統(tǒng)為L(zhǎng)inux,需要搭配開發(fā)環(huán)境包括CUDA11.1 ,python3.7,Opencv圖像處理包,使用Pytorch 1.6.0搭建網(wǎng)絡(luò)模型框架。
(1)數(shù)據(jù)集分析
本實(shí)驗(yàn)采用包含行人和安全帽的開源數(shù)據(jù)4 000張,以及在作業(yè)現(xiàn)場(chǎng)采集的1 000張數(shù)據(jù)共5 000張圖像數(shù)據(jù),這些數(shù)據(jù)里包括不同顏色安全帽、不同環(huán)境、不同角度下采集的圖像。其中,4 500張作為訓(xùn)練樣本,500張作為測(cè)試樣本。利用標(biāo)注工具標(biāo)注圖像中的行人框及佩戴安全帽框,生成包含標(biāo)注信息的xml文件。
(2)訓(xùn)練過程
本實(shí)驗(yàn)中采用Yolov3訓(xùn)練用于檢測(cè)圖像區(qū)域內(nèi)作業(yè)人員和安全帽目標(biāo)的模型,采用Inception-v2訓(xùn)練用于檢測(cè)行人安全帽是否佩戴情況的模型。Yolov3的初始化參數(shù)如表1所示, 初始化設(shè)定學(xué)習(xí)率0.001,每批次輸入圖像32張。輸入Yolov3模型圖像大小尺寸調(diào)整為416×416,將預(yù)訓(xùn)練模型傳出Yolov3框架中作為初始權(quán)重值,共迭代8 000次。
表1 Yolov3模型參數(shù)
然后,從數(shù)據(jù)中獲取人員的ROI區(qū)域,用于訓(xùn)練二級(jí)網(wǎng)絡(luò)Inception-v2模型,該模型共刺迭代5 000次,標(biāo)簽設(shè)置包含兩類:佩戴安全帽和未佩戴安全帽。
圖4為通過一級(jí)網(wǎng)絡(luò)Yolov3訓(xùn)練行人和安全帽目標(biāo)檢測(cè)的過程中損失值的變化情況,隨著訓(xùn)練次數(shù)的增加,Yolov3訓(xùn)練模型的損失值逐漸下降,迭代4 000次后損失值基本趨于穩(wěn)定,最終模型的損失值穩(wěn)定在0.35左右。
圖4 Yolov3模型訓(xùn)練損失函數(shù)
本實(shí)驗(yàn)通過計(jì)算準(zhǔn)確率對(duì)模型性能進(jìn)行評(píng)價(jià),通過引入混淆矩陣中TP、TN、FP、FN(如表3)表示識(shí)別的準(zhǔn)確程度,準(zhǔn)確率表示模型中正確的數(shù)據(jù)占總數(shù)據(jù)的比例。數(shù)學(xué)表達(dá)式如下:
表2 混淆矩陣
矩陣中的利用通過Yolov3模型識(shí)別人員目標(biāo)準(zhǔn)確率為89.1%,安全帽檢測(cè)目標(biāo)的準(zhǔn)確率為85.2%。通過對(duì)測(cè)試圖像分析,之所以出現(xiàn)安全帽錯(cuò)檢主要是由于被放置的安全帽和手拿安全帽的情況。因此,通過二級(jí)網(wǎng)絡(luò)Inception-v2進(jìn)一步對(duì)人員是否佩戴安全帽的情況進(jìn)行判斷,準(zhǔn)確率提升至91.3%。
圖5為僅采用Yolov3模型的測(cè)試人員安全帽的效果圖,圖6為采用本算法級(jí)聯(lián)網(wǎng)絡(luò)的檢測(cè)人員安全帽佩情況的效果圖。通過對(duì)比,在無(wú)特殊情況,人員正常佩戴安全帽的情況下,兩種算法均可準(zhǔn)確檢測(cè)人員佩戴安全帽情況,如圖5(a)和圖6(a),但是若出現(xiàn)如圖5(b)情況,僅利用Yolov3模型可能將手持安全帽情況也誤檢為佩戴安全帽情況,此時(shí),通過本算法,對(duì)人員ROI區(qū)域二次檢測(cè),可有效排除這種誤識(shí)別情況(如圖6(b))。兩種算法的效果圖發(fā)現(xiàn),采用級(jí)聯(lián)網(wǎng)絡(luò)模型可排除部分誤識(shí)別(如:手持安全帽情況),表明通過二級(jí)網(wǎng)絡(luò)可有效去排除由于誤檢造成安全帽識(shí)別率低的問題。
圖5 基于yolov3模型的安全帽預(yù)測(cè)效果圖
圖6 基于級(jí)聯(lián)網(wǎng)絡(luò)模型的安全帽預(yù)測(cè)效果圖
為了提升現(xiàn)在作業(yè)人員佩戴安全帽的識(shí)別率,減少由于現(xiàn)場(chǎng)復(fù)雜施工環(huán)境的背景干擾,本文提出一種基于Yolov3和Inception-v2的級(jí)聯(lián)網(wǎng)絡(luò)。通過Yolov3網(wǎng)絡(luò)模型提出出行人和安全帽目標(biāo),然后,用二級(jí)級(jí)聯(lián)網(wǎng)絡(luò)Inception-v2模型在進(jìn)一步精確驗(yàn)證安全帽佩戴情況。實(shí)驗(yàn)結(jié)果表明,安全帽佩戴檢測(cè)的準(zhǔn)確性有明顯提高。因此表明,本文在該領(lǐng)域的識(shí)別中具有一定的參考和應(yīng)用價(jià)值。