徐奕森 張建強 王 蕊 關(guān)加浚 徐成燁
(華南理工大學(xué)廣州學(xué)院,廣州 510800)
根據(jù)國家安監(jiān)法規(guī)的安全人數(shù)限制要求,目前的施工電梯沒有很好的解決方法。施工電梯承載能力強,進(jìn)入電梯人數(shù)超載的情況下,一般不易觸發(fā)質(zhì)量超限報警,導(dǎo)致施工電梯依舊啟動,降低了其安全性。目前,國內(nèi)外的電梯人數(shù)統(tǒng)計方法取得了一些進(jìn)展,但其采用傳統(tǒng)視覺識別方法,且并未實現(xiàn)與電梯主控系統(tǒng)的連接。通過圖像分割對其進(jìn)行Hough變換的方法,實現(xiàn)了對安全帽的識別[1]。通過圖像分割對其進(jìn)行二值變換,實現(xiàn)了對安全帽的識別[2]。研究多采用基于圖像分割對人頭進(jìn)行數(shù)量識別,但并未對未佩戴安全帽的情況進(jìn)行統(tǒng)計。應(yīng)用軟硬件相結(jié)合的方式,采用遠(yuǎn)紅外識別的方法,對電梯內(nèi)人數(shù)進(jìn)行識別。但是,該方法平均計算效率較低。上述研究大都是針對簡單環(huán)境的識別定位,且研究方法的識別效率較低,無法時時與電梯內(nèi)主控系統(tǒng)連接,實現(xiàn)在人數(shù)超載情況時的禁止啟動,對在實際復(fù)雜環(huán)境中的識別效率鮮有研究[3-5]。
目前,深度卷積神經(jīng)網(wǎng)絡(luò)主要有兩大類:一種是RCNN[6]基于候選區(qū)域的方法;另一種是SSD[7]、RetinaNet[8]、YOLO等無候選區(qū)域的方法?;趩尾綑z測的YOLO算法,不同于RCNN為代表的雙步檢測算法,網(wǎng)絡(luò)結(jié)構(gòu)更加簡單。相同條件下,基于單步檢測的YOLO算法的檢測速率相比于Faster-RCNN快約10倍[9-10]。由深度卷積神經(jīng)網(wǎng)絡(luò)的YOLO檢測,在復(fù)雜條件下具有檢測速度感高、穩(wěn)定性好的優(yōu)點。針對現(xiàn)在人數(shù)檢測存在的問題,由卷積神經(jīng)網(wǎng)絡(luò)簡化的YOLO V3算法檢測人員靜態(tài)圖片和動態(tài)視頻,摸索在實際復(fù)雜條件下機器視覺的工作效率,可為施工電梯人數(shù)檢測方案提供視覺檢測系統(tǒng)理論基礎(chǔ)。
機器視覺具備識別精度高、檢測流暢等優(yōu)點。將機械視覺融入工程機械,有助于提高工作安全性。穩(wěn)定快速的目標(biāo)檢測系統(tǒng)通過串行通信總線實現(xiàn)與施工電梯的實時信息交互,當(dāng)超過設(shè)定人數(shù)后,禁止電梯啟動,確保安全。
YOLO V3目標(biāo)檢測算法將檢測問題轉(zhuǎn)化為回歸問題,通過使用卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)回歸,使得整個網(wǎng)絡(luò)結(jié)構(gòu)簡明。它具有特有的網(wǎng)絡(luò)結(jié)構(gòu),且端對端的網(wǎng)絡(luò)結(jié)構(gòu)使其速度遠(yuǎn)高于其他網(wǎng)絡(luò)模型。
YOLO V3算法對目標(biāo)檢測的原理,如圖1所示。先將輸入的圖片按照一定尺度劃分為m×m個網(wǎng)格,當(dāng)目標(biāo)位于某個網(wǎng)格中時,便由該網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測。其中,每個網(wǎng)絡(luò)又可以劃分成s個預(yù)測邊界區(qū)域。預(yù)測邊框時,Cx、Cy為相對于左上角的位置。通過歸一化,將每個格子縮放到單位長度為1。此時,Cx=1,Cy=1。Tx和Ty分別經(jīng)過Sigmoid輸出0-1之間的偏移量,與Cx、Cy相加后得到Bounding boxes中心點的位置。Pw、Ph是設(shè)置的Anchor寬和高,Tw、Th分別與Pw、Ph作用后獲得的邊界框的寬和高,如圖1所示。
圖1 YOLO V3邊界框原理圖
置信度一般分為兩個部分:一是預(yù)測邊界框內(nèi)物體類別的概率;二是預(yù)測邊界與真實邊界的重合度。它的置信度計算公式為:
式中,Pr(classi|object)表示邊界內(nèi)物體的類別的概率,Pr(object)表示網(wǎng)絡(luò)中是否有待檢測目標(biāo)的中心點。若有,則為1;反之,則為0。IOU表示其交并比。
使用NMS算法對生成的預(yù)測框進(jìn)行篩選,通過設(shè)置置信度的值消去冗余的預(yù)測邊界框,通過剩下的邊界框檢測其目標(biāo)。
YOLO V3網(wǎng)絡(luò)整體共用106層網(wǎng)絡(luò)層??紤]到本文識別對象為人,過多的卷積層會增加大量計算,使參數(shù)量過多導(dǎo)致檢測時間過久無法及時報警,因此簡化設(shè)計YOLO V3神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。參考VGG-19搭建如圖2所示的16層網(wǎng)絡(luò)結(jié)構(gòu),其中兩類輸出張量分別為52×52×21與26×26×21,并嘗試減少不同數(shù)量的殘差層(res),從而減小網(wǎng)絡(luò)模型。簡化后,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。它的殘差層可簡化為不同的層數(shù),通過設(shè)定不同的層數(shù)來控制其檢測精度與計算速度,故其與條件相同時改變殘差層數(shù)量,以便確定最優(yōu)殘差層。
3.1.1 數(shù)據(jù)收集
數(shù)據(jù)采集均在某工程裝備公司內(nèi)。它采集的數(shù)據(jù)多處于施工電梯工作狀態(tài)下,有佩戴紅色安全帽、白色安全帽、藍(lán)色安全帽、黃色安全帽、不佩戴安全帽與其他等情況。圖像的分辨率為1 280像素×720像素。多種樣本總數(shù)為4 000張,包含佩戴不同顏色安全帽的4種情況共2 000張,不佩戴安全帽的1 000張,佩戴其他帽的1 000張。數(shù)據(jù)集中,訓(xùn)練集、驗證集和測試樣本的比例約為8:1:1。
3.1.2 數(shù)據(jù)標(biāo)注
為了滿足樣本的多樣性及其質(zhì)量,消除外界環(huán)境對其檢測的影響,采集白天1 000張、高矮1 000張、覆蓋1 000張、密集環(huán)境1 000張下的人頭圖片,并將其分類篩選后加入樣本集。圖片采用Labellmg進(jìn)行人工手動標(biāo)注,并保存為xml文件,具體格式包括x、y(目標(biāo)中心點x、y坐標(biāo))與w、h(標(biāo)注框高度與框長度)。
圖2 YOLO V3網(wǎng)絡(luò)訓(xùn)練結(jié)構(gòu)
本次訓(xùn)練與測試均在PC端完成,配置為Intel i5 7300與GeForce GTX 1060顯卡。程序運行在Windows10系統(tǒng)下,調(diào)用英偉達(dá)并行開源計算庫CUDA、CUDNN與開源視覺庫OPENCV運行,每個模型均訓(xùn)練20 000次。
在交并比IOU為0.5時,YOLO V3算法有3種像素可供訓(xùn)練選擇,人數(shù)識別方案采用416像素模式。為了對不同模型的性能進(jìn)行評價,本文采用準(zhǔn)精度均值(mean Average Precision,mAP)和其每秒平均幀率共同作為模型評價標(biāo)準(zhǔn),計算公式為:
式中,K為閾值數(shù),N為引用閾值的數(shù)量,P(k)為準(zhǔn)確度,R(k)為召回率,mAP為人頭頂部和安全帽的平均精度。
從表1可看出,隨殘差層數(shù)量減少,其速率上升檢測精度下降。殘差層為3層時,網(wǎng)絡(luò)模型的檢測平均速率為4.24 f·s-1,速率較慢;減少1層網(wǎng)絡(luò)后,監(jiān)測速率上升至平均55.59 f·s-1,比擬完整殘差模型提升1.79倍,監(jiān)測流暢程度明顯上升。當(dāng)殘差模型減少2層后,檢測速率上升至平均65.87 f·s-1,相比3層殘差模型上升約1.83倍,相比減少1層殘差網(wǎng)絡(luò)模型上升約1.18倍。
表1 殘差層性能影響
從表1可看出,當(dāng)減少網(wǎng)絡(luò)模型層數(shù)到2層時,人頭頂部和安全帽的平均精度為84.37%;而減少至只有1層殘差層時,由于反饋過于薄弱,幾乎無法檢測到,故其無法選用。3層完整的殘差層,效果與2層殘差層時基本相同,且相對于2層殘差層更加消耗資源,不利于日后移植到開發(fā)板中。綜合來看,2層殘差層在測試精度速率均衡下效果最好,故采用2層殘差層作為測試模型。
本次試驗以數(shù)量作為變量,測試集包括400張照片,其中含1~3圖片共100張,包含4~6圖片共200張,包含7個及以上圖片共100張。每一種抽取20張作為檢測樣本,檢測出樣本總量、正確識別的數(shù)量、未檢測人員的數(shù)、誤檢測的人員數(shù),采用精度均值與每秒幀率作為綜合評價值。圖片邊緣殘缺人頭部分忽略不計。從圖3可以看出,在數(shù)量較少的情況下,兩種方法都能正確識別到未帶安全帽的人和佩戴安全帽的人,但SSD算法存在對已檢測到手持安全帽誤檢測的現(xiàn)象。這是因為網(wǎng)絡(luò)深度不夠無法有效區(qū)分佩戴情況所導(dǎo)致。但是,人數(shù)增加到7個及以上時,改進(jìn)后YOLO算法識別依舊準(zhǔn)確,而SSD算法出現(xiàn)了識別對已檢測到手持安全帽誤檢測與識別精度降低的情況。這是由于人頭部的尺寸減小、人頭重疊與粘連等情況增加了模型識別的難度。表2為兩種算法對不同人數(shù)下的檢測結(jié)果。
圖3 兩種算法下不同人數(shù)下的檢測效果
從表2可看出,隨著數(shù)量的增多,佩戴安全帽的和未佩戴安全帽的精度均值均減小,但SSD算法無法區(qū)分佩戴與手持安全帽。當(dāng)人數(shù)大于7時,精度均值下降3%~5%。由于人數(shù)量的增多,SSD算法易產(chǎn)生一人多框及錯漏識別的現(xiàn)象。改進(jìn)后YOLO采用改進(jìn)后的多層次神經(jīng)元網(wǎng)絡(luò),能夠檢測細(xì)小的柵格,在小目標(biāo)的檢測識別上取得了較好的效果。試驗中,改進(jìn)的YOLO算法精度均值最高,使用的閾值為0.5。SSD的檢測速度比改進(jìn)后YOLO慢約2.14倍。
表2 兩種算法在各人數(shù)檢測試驗
實際工地中可能存在多種復(fù)雜情況。圖4為兩種算法在內(nèi)部佩戴安全帽的不同狀態(tài)的檢測效果。當(dāng)未佩戴安全帽時,頭部目標(biāo)較小,存在相互重疊、粘連的情況。而進(jìn)入電梯后,部分脫去安全帽后存在雙檢測目標(biāo)。當(dāng)檢測精度不足時易誤檢,且檢測重疊、粘連現(xiàn)象出現(xiàn)頻率高。當(dāng)進(jìn)入佩戴遮陽帽時,識別難度大幅增加,易出現(xiàn)漏識別、一人多框以及對手持安全帽誤識別等現(xiàn)象。相對SSD識別算法,改進(jìn)后的YOLO算法在視頻識別的精度上具有明顯優(yōu)勢??梢姡倪M(jìn)后YOLO算法不僅在識別精度上保持著較好的準(zhǔn)確性,而且在復(fù)雜環(huán)境下具有良好的魯棒性。
對于不同的佩戴狀況,佩戴遮陽帽時的平均精度均值最高,如表3所示,識別速率最佳。對于進(jìn)入后脫帽與佩戴遮陽帽的情況,增加了模型識別的時長和運算量。改進(jìn)后YOLO算法平均檢測速率約比SSD算法快2.45倍。在識別效果上,改進(jìn)后YOLO算法平均精度均值最高,SSD算法相對較差,且其檢測精度在外界環(huán)境變換時會發(fā)生較大變化。例如,在佩戴遮陽帽的識別的情況下,識別準(zhǔn)確度較差,且存在識別粘連等情況。綜上,改進(jìn)后YOLO模型可以勝任人數(shù)識別方案的要求,平均識別速度達(dá)到了54.4 f·s-1。
圖4 兩種算法在不同佩戴狀態(tài)下的效果檢測
表3 兩種算法在不同佩戴狀態(tài)下的效果檢測
為解決施工電梯人數(shù)超載的問題,本文提出了基于YOLO V3算法的人數(shù)檢測方法。通過對YOLO V3模型進(jìn)行設(shè)計改進(jìn),在保證檢測精度的同時降低了硬件資源需求。研究表明,改進(jìn)后的YOLO算法檢測速率達(dá)到了54.4 f·s-1,平均精度約為89.88%,視頻檢測速率符合實時檢測的要求。在視頻中,包括遮擋、密集等復(fù)雜情況下,它有良好的魯棒性。簡化后的模型可滿足施工電梯人數(shù)檢測方案的基本要求,檢測速度比SSD算法快2.4倍,基本滿足施工電梯對人數(shù)檢測需求,并為進(jìn)行嵌入式移植奠定了基礎(chǔ)。