徐曉東,王俊杰
中國海洋大學(xué) 工程學(xué)院,山東 青島 266100
建筑業(yè)作為我國國民經(jīng)濟的重要支柱產(chǎn)業(yè)之一,目前智能化和自動化水平較低,尤其在現(xiàn)場施工管理工作中,仍然以人工檢查為主。隨著人工智能技術(shù)的快速發(fā)展,深度學(xué)習(xí)方法已經(jīng)被廣泛應(yīng)用到交通、醫(yī)療和城市管理等領(lǐng)域。在建筑施工領(lǐng)域,深度學(xué)習(xí)方法的應(yīng)用,能夠支撐并推動建筑機器人、智慧建造和無人工地等最新的建筑技術(shù)和施工管理方式的發(fā)展。在現(xiàn)場施工管理工作中,基于工地監(jiān)控設(shè)備進行施工人員檢測,能夠為施工安全、資源調(diào)配和進度控制等方面提供支持,具體應(yīng)用有碰撞預(yù)警、異常侵入檢測和危險區(qū)域警告等,擁有很高的應(yīng)用價值[1-2]。
行人檢測是目標(biāo)檢測研究領(lǐng)域的一個重要研究方向。目標(biāo)檢測是一種基于深度學(xué)習(xí)的計算機視覺方法,能夠從輸入圖像中找到特定類別目標(biāo)并給出位置信息,大致可以分為兩類,即Two-stage和One-stage檢測算法。Two-stage檢測中,代表算法為基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)R-CNN[3],以及其優(yōu)化版本Fast R-CNN[4]和Faster R-CNN[5]。該類算法檢測過程可以分為兩個階段,一是進行候選區(qū)域選取,二是對選取區(qū)域進行分類和定位。這類檢測方法檢測精度較高,但模型結(jié)構(gòu)復(fù)雜,計算參數(shù)較多,實時檢測性能較差。One-stage算法,如SSD[6]、YOLO系列[7-9]等,可以通過一個網(wǎng)絡(luò)結(jié)構(gòu),完成候選框的選擇和分類定位,節(jié)省了計算成本,提高了檢測的速度,更適合于在邊緣計算設(shè)備上進行實時檢測。
傳統(tǒng)的行人檢測任務(wù)大多基于自然場景下,如商場、體育場和道路等。李昕昕[10]、魏潤辰[11]分別基于RFBNet[12]和YOLOv3算法進行改進,用于檢測道路行人。相較于常規(guī)行人檢測任務(wù),在其他特殊場景下,行人檢測算法也有具體的應(yīng)用。王琳[13]、李偉山[14]分別基于YOLOv2與Faster R-CNN算法提出了煤礦井下的工人檢測方案。
在施工場景下,圖像環(huán)境背景更加復(fù)雜,人員穿戴和行為姿勢也較為特殊,因此需要專門進行施工場景下的施工人員數(shù)據(jù)集開發(fā)。同時,在算法部署方面,由于施工現(xiàn)場基礎(chǔ)設(shè)施條件較差,難以保證全天候的良好網(wǎng)絡(luò)環(huán)境,因此面向邊緣計算,在嵌入端設(shè)備上進行施工人員檢測算法開發(fā),其實用價值更高。
本文將基于目標(biāo)檢測算法YOLOv3,針對施工場景中人員檢測任務(wù)存在背景復(fù)雜、姿態(tài)多樣和部分遮擋等特點,在原基礎(chǔ)上引入特征金字塔池化模塊(SPP)[15],增加深層和淺層特征融合并針對施工人員數(shù)據(jù)集改進網(wǎng)絡(luò)anchor大小,建立施工人員檢測網(wǎng)絡(luò)YOLO-W,提升檢測精度。同時,使用通道剪枝方法,對模型網(wǎng)絡(luò)進行輕量化處理得到實時施工人員檢測網(wǎng)絡(luò)YOLO-PW,并在邊緣設(shè)備Jetson Xvaier NX上完成部署實驗,建立一套完整的實時施工人員檢測方法。
YOLOv3網(wǎng)絡(luò)是YOLO系列算法的第三個版本,由于其良好的檢測精度和較快的檢測速度,已經(jīng)被廣泛應(yīng)用于各個行業(yè)。YOLOv3網(wǎng)絡(luò)模型主要由兩部分組成:特征提取網(wǎng)絡(luò)和YOLO檢測器。
YOLOv3模型使用Darknet-53網(wǎng)絡(luò)作為特征提取的主干網(wǎng)絡(luò)。該骨干網(wǎng)絡(luò)具有53個卷積層,網(wǎng)絡(luò)結(jié)構(gòu)更深,其中使用了一系列性能良好的卷積層,如3×3和1×1大小的卷積結(jié)構(gòu),并采用LeakyReLu作為激活函數(shù),可以在保持較高檢測速度的同時提高目標(biāo)識別的準(zhǔn)確性。同時,Darknet-53網(wǎng)絡(luò)使用類似于ResNet[16]的快速連接(Shortcut Connections)的跳層連接,原始數(shù)據(jù)可越過中間層直接與后面的層連接,降低了模型的復(fù)雜度并減少參數(shù)的數(shù)量,從而有效提升模型的檢測速度。
以圖像輸入尺寸416×416為例,Darknet-53網(wǎng)絡(luò)通過各網(wǎng)絡(luò)層的卷積和池化處理,對輸入圖像進行不同尺度的特征提取,再通過YOLO檢測器將對特征提取網(wǎng)絡(luò)輸出的不同尺度特征圖進行融合,最終在三個不同輸出維度上進行結(jié)果預(yù)測,最終得到目標(biāo)的位置和類別信息。其中,YOLO檢測層在13×13、26×26和52×52三個不同尺度生成預(yù)測結(jié)果,分別適用于大尺度目標(biāo)、中等尺度目標(biāo)和小尺度目標(biāo)的檢測。
由于施工現(xiàn)場背景復(fù)雜,人員目標(biāo)大小尺度具有多樣性,同時,為使得檢測模型具有更好的泛化性,在施工人員數(shù)據(jù)集中使用了不同拍攝距離的照片,使得人員目標(biāo)尺寸大小差別較大。因此,為加強對不同尺度目標(biāo)的檢測精度,提升模型泛化性能,在原有的特征提取網(wǎng)絡(luò)后加入特征金字塔池化模塊(SPP),以實現(xiàn)局部特征和全局特征的良好的融合。
如圖1所示,SPP模塊由三個大小不同的池化層組成。原始輸入圖片通過特征提取網(wǎng)絡(luò)后,輸出特征圖將分別在5×5、9×9和13×13的三個池化層(深色框部分)中進行池化操作。之后,將三個輸出結(jié)果和原始特征圖合并,再與原始特征圖進行通道融合,從而實現(xiàn)不同尺度的特征融合,消除目標(biāo)尺寸差異的影響,提高檢測精度。
圖1 空間金字塔池化模塊Fig.1 Spatial pyramid pooling module
施工現(xiàn)場圖像背景復(fù)雜,包含建筑結(jié)構(gòu)、施工機械和施工材料等,相較于這些大型建筑資源和建筑結(jié)構(gòu),施工人員目標(biāo)在施工場景中尺寸較小,因此需要在檢測網(wǎng)絡(luò)中加強對圖像低層特征的提取,來提升網(wǎng)絡(luò)模型對小目標(biāo)的檢測性能。
在YOLOv3原網(wǎng)絡(luò)中,特征提取網(wǎng)絡(luò)獲得的特征圖將經(jīng)過不同尺度的特征融合,最終在13×13、26×26、52×52三個不同尺度上輸出特征圖進行預(yù)測。其中,最小特征圖尺寸為13×13,這對于大場景、遠距離的施工圖像中的人員目標(biāo)檢測仍然存在一定局限。因此,在原網(wǎng)絡(luò)結(jié)構(gòu)上增加一個輸出檢測層,以提高淺層特征對輸出結(jié)果的影響程度,加強對小目標(biāo)的識別。
如圖2所示,淺層特征較深層特征對施工人員目標(biāo)的位置信息更為敏感,對于施工圖像中的人員定位更加精準(zhǔn),對全局信息的關(guān)注度更高。因此在原網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上增加一個104×104尺寸的檢測層,加強對淺層特征的敏感程度,提升對小目標(biāo)的檢測性能,最終在13×13、26×26、52×52、104×104四個不同尺度上進行結(jié)果預(yù)測,實現(xiàn)對施工場景中不同尺寸的施工人員目標(biāo)檢測。
圖2 淺層特征與深層特征Fig.2 Shallow features and deep features
圖3為本文建立的施工人員檢測網(wǎng)絡(luò),施工人員數(shù)據(jù)集圖像輸入到檢測模型后,首先將尺寸統(tǒng)一修正為416×416,輸入到特征提取網(wǎng)絡(luò)Darknet-53中進行特征提取并輸出不同尺度的特征圖,再通過YOLO檢測器進行多尺度預(yù)測,并將檢測結(jié)果合并得到最終的輸出結(jié)果,檢測出施工場景圖像中的施工人員目標(biāo)并進行可視化預(yù)測。
圖3 施工人員檢測網(wǎng)絡(luò)YOLO-W結(jié)構(gòu)Fig.3 Structure of construction worker detection network YOLO-W
YOLOv3原網(wǎng)絡(luò)所使用的先驗框是在COCO公共數(shù)據(jù)集[17]上使用聚類算法生成。COCO數(shù)據(jù)集多基于自然場景,目標(biāo)類別較多,而在施工人員檢測任務(wù)中,應(yīng)用場景為具體的施工現(xiàn)場,檢測目標(biāo)也只有施工人員一類,因此原候選框不適用于施工人員檢測場景,需要采用K-means聚類算法在施工人員數(shù)據(jù)集上進行重新聚類得到合適的候選框,如圖4所示。
由于本文所提出的檢測網(wǎng)絡(luò)在原YOLOv3基礎(chǔ)上增加了一個檢測層,在四個尺度上進行特征輸出,因此需要聚類得到12個候選框。其中,(11,26),(15,45)和(24,36)用于104×104特征圖輸出預(yù)測,適用于小尺寸人員目標(biāo)的檢測;(22,68),(36,57),(31,103)以及(57,79),(47,129),(48,199)分別用于52×52和26×26特征圖輸出預(yù)測,適用于中等尺寸人員目標(biāo)的檢測;(89,144),(76,258)和(140,286)用于13×13特征圖輸出預(yù)測,適用于大尺寸人員目標(biāo)的檢測。
圖4 目標(biāo)框聚類及錨框分布Fig.4 Target clustering and anchor distribution
YOLOv3算法能夠在保證較高檢測精度的同時,實現(xiàn)較快的檢測速度,但原檢測網(wǎng)絡(luò)較為復(fù)雜,模型計算參數(shù)過多,難以在嵌入端設(shè)備上進行現(xiàn)場部署,在施工場景下完成部署并進行實時檢測存在困難。為了讓檢測模型能夠在計算能力較低的嵌入端設(shè)備上實現(xiàn)實時的檢測,可以使用通道剪枝方法來簡化網(wǎng)絡(luò)結(jié)構(gòu)并降低參數(shù)量。
通道剪枝算法可以根據(jù)模型中各卷積層每個通道的重要程度大小,去除掉其中對下一層輸出結(jié)果貢獻程度不大的通道,來減少模型的計算參數(shù)[18]。本文采用的通道剪枝思路為,通過常規(guī)基礎(chǔ)訓(xùn)練獲得具有較高精度的權(quán)重,在BN層中引入縮放因子γ,對網(wǎng)絡(luò)進行稀疏訓(xùn)練,以稀疏處理后γ系數(shù)大小作為判斷各通道的重要程度,從而為剪枝處理提供依據(jù)。
YOLOv3網(wǎng)絡(luò)中,除YOLO檢測層外,卷積層后都連接一個BN層來加速模型收斂并提高泛化能力。為便于進行通道剪枝,在各通道中引入縮放因子γ,在每個訓(xùn)練批次中,卷積操作后的特征將在BN層中進行歸一化處理,如公式(1):
公式(1)中,x和y分別為BN層的輸入和輸出,x和σ分別是各訓(xùn)練批次輸入特征的均值和方差,γ和β分別為縮放因子和偏差。由公式可見,在BN層中引入的縮放系數(shù)γ可用于保留BN層輸入特征,可根據(jù)γ大小來判斷所在通道的重要程度[17]。
為便于進行通道剪枝處理,對λ系數(shù)進行L1正則化約束,引入新的損失函數(shù)如式(2),對網(wǎng)絡(luò)進行稀疏訓(xùn)練,實現(xiàn)對BN層權(quán)重的稀疏化處理。
式中,第一項為網(wǎng)絡(luò)正常訓(xùn)練損失,x和y分別為訓(xùn)練的輸入和輸出,W為網(wǎng)絡(luò)中的訓(xùn)練參數(shù);第二項為BN層γ系數(shù)的L1范數(shù)約束項,λ為懲罰項的尺度因子。引入該損失函數(shù)后,在稀疏訓(xùn)練過程中,使用梯度下降優(yōu)化方法不斷迭代,自動學(xué)習(xí)并調(diào)整BN層權(quán)重大小,不重要的通道λ系數(shù)值將趨近于0。
如圖5所示,使用BN層γ系數(shù)大小來確定其所在通道的重要程度,根據(jù)設(shè)定的通道剪枝率確定γ系數(shù)閾值,去除低于該值的通道。在圖5中,假定設(shè)置的γ系數(shù)閾值為0.005,則圖中紅色實線所指通道將得到保留,而紅色虛線所指通道將被去除,不參與前后兩層的輸出連接關(guān)系,從而實現(xiàn)通道剪枝。
圖5 通道剪枝算法示意圖Fig.5 Pruning schematic diagram of channel pruning algorithm
行人檢測任務(wù)大多基于自然場景下,使用的行人數(shù)據(jù)集也以商場、體育場和道路等自然場景為主,如COCO數(shù)據(jù)集[19]、Pascal VOC數(shù)據(jù)集[20]等。圖6為常規(guī)場景下行人目標(biāo)與施工場景下的人員目標(biāo)對比,施工場景下圖像的環(huán)境背景更加豐富,人員穿戴特征和行為姿勢也較為特殊。
因此,相較于常規(guī)行人檢測,施工人員檢測任務(wù)更為復(fù)雜,同時需要專門進行施工場景下的施工人員數(shù)據(jù)集開發(fā)。首先,對本研究領(lǐng)域論文公開的施工圖像數(shù)據(jù)集[21]進行圖片篩選,同時通過實地拍攝獲取施工現(xiàn)場圖像,從而得到施工人員數(shù)據(jù)集的原始圖像,再使用LabelImg標(biāo)注工具對施工圖像進行標(biāo)注,如圖7所示。
圖6 常規(guī)場景與施工場景對比Fig.6 Comparison of conventional scenes and construction scenes
圖7 labeLImg工具圖像標(biāo)注Fig.7 Image annotation with labeLImg tool
施工人員數(shù)據(jù)集共包含3 000張帶有施工人員標(biāo)注信息的圖片,共包含施工人員目標(biāo)11 817個。其中,2 400張圖像將作為訓(xùn)練集參與訓(xùn)練,600張圖像作為測試集對檢測結(jié)果進行評價。
目標(biāo)檢測模型在訓(xùn)練過程中對設(shè)備計算能力要求較高,因此在臺式計算機設(shè)備上完成基礎(chǔ)訓(xùn)練和剪枝試驗,訓(xùn)練所使用計算設(shè)備具體參數(shù)如表1所示。
表1 實驗平臺配置Table 1 Experimental platform configuration
經(jīng)過網(wǎng)絡(luò)訓(xùn)練和剪枝處理得輕量化檢測模型后,在嵌入式平臺Jetson Xavier NX上進行實驗部署,結(jié)合Tensorrt庫進行加速推理,來判斷該模型在邊緣計算設(shè)備上的實時監(jiān)測性能。
在實驗結(jié)果分析中,使用平均準(zhǔn)確率均值(mean Average Precision,mAP)作為模型檢測精度評價指標(biāo),計算公式如式(5)所示:
式中,TP指真正例,F(xiàn)P指假正例,F(xiàn)N指假負例,P代指Precision(精確率),R代指Recall(召回率),n為類別數(shù),由于所使用的施工人員數(shù)據(jù)集類別數(shù)為1,因此AP值與mAP值相同。另外,使用每秒檢測幀數(shù)(FPS)作為模型檢測速度評價指標(biāo)。
基于本文制作的施工人員數(shù)據(jù)集對建立的施工人員檢測網(wǎng)絡(luò)進行基礎(chǔ)訓(xùn)練,訓(xùn)練中批處理大小和分組數(shù)量均設(shè)置為16,動量和權(quán)重衰減分別設(shè)置為0.9與0.000 5,初始學(xué)習(xí)率設(shè)置為0.001,訓(xùn)練過程中損失函數(shù)變化情況如圖8所示。
圖8 訓(xùn)練過程損失變化曲線Fig.8 Loss curve variation of training process
訓(xùn)練中發(fā)現(xiàn),在8 000個訓(xùn)練批次完成后,損失值基本收斂,因此在進行到8 000和10 000訓(xùn)練批次時將學(xué)習(xí)率降低為當(dāng)前的1/10,分別再進行2 000個批次的訓(xùn)練,從而保證模型訓(xùn)練達到最優(yōu),得到mAP值為88.5%的高精度權(quán)重,將該檢測模型命名為YOLO-W。
如圖9所示,原模型經(jīng)過基礎(chǔ)訓(xùn)練后,每層的BN層γ系數(shù)分布大致呈現(xiàn)為正態(tài)分布,不利于進行各通道重要程度的排序從而設(shè)定閾值進行通道剪枝處理。
將基礎(chǔ)訓(xùn)練后得到的高精度權(quán)重作為輸入,在訓(xùn)練集上重新迭代訓(xùn)練300次,將BN層權(quán)重進行稀疏處理,訓(xùn)練過程中γ系數(shù)變化如圖10所示。
圖9 稀疏處理前γ值分布Fig.9 Distribution ofγ-values before sparse processing
圖10 稀疏訓(xùn)練γ值分布變化Fig.10 Variation ofγ-values distribution during sparse training
經(jīng)過稀疏訓(xùn)練處理后,如圖11所示,BN層γ系數(shù)得到壓縮,重要程度較低的通道γ值將被壓縮至0附近,以此作為依據(jù)來進行各層通道重要度區(qū)分,進行后續(xù)的剪枝處理。
圖11 稀疏處理后γ值分布Fig.11 Distribution ofγ-values after sparse processing
另外,在稀疏訓(xùn)練過程中,由于對BN層權(quán)重進行了壓縮處理,在迭代過程中精度會有一定程度的下降,mAP降低到76.4%,但在后續(xù)剪枝處理完成后,可以通過微調(diào)訓(xùn)練恢復(fù)部分精度,從而在進行模型壓縮后仍能保證較高的檢測精度。
在稀疏訓(xùn)練完成得到的模型權(quán)重基礎(chǔ)上,設(shè)置不同的剪枝率的閾值來進行剪枝實驗,不同剪枝比例的模型mAP變化情況如圖12所示。
圖12 mAP隨剪枝率變化Fig.12 Variation of mAP with pruning rate
從圖12中可以看出,隨著剪枝率的閾值不斷增大,模型mAP隨之下降,但精度損失較小,直到剪枝率的閾值超過90%時,精度迅速下降。因此,為平衡模型壓縮程度與檢測精度降低情況,選用剪枝率的閾值為90%的模型作為最終的輕量化網(wǎng)絡(luò),并在Darknet框架下進行微調(diào)訓(xùn)練,檢測精度恢復(fù)到88.34%,將該施工人員檢測模型命名為YOLO-PW。
表2為本文提出的施工人員輕量化檢測網(wǎng)絡(luò)YOLOPW與剪枝處理前模型YOLO-W、原始YOLOv3以及其簡化版本YOLOv3-Tiny,在施工人員數(shù)據(jù)集上的實驗結(jié)果對比??梢钥闯觯琘OLO-PW檢測精度較YOLOv3提升4.89個百分點,將模型大小壓縮至原來的1/13,速度提升約一倍,僅略低于YOLOv3-Tiny,檢測性能提升明顯。
表2 不同模型的檢測性能Table 2 Detection results of different models
圖13為YOLO-PW施工資源檢測模型在不同場景下的檢測結(jié)果,可以看出,該網(wǎng)絡(luò)對于多視角、多姿態(tài)的施工人員檢測效果較好,且在光照不良、存在遮擋等不利條件的影響下,仍能夠保證良好的檢測性能,準(zhǔn)確識別出人員目標(biāo),完成不同施工場景下的施工人員目標(biāo)檢測任務(wù)。
為檢驗本文所提出的輕量化施工人員檢測網(wǎng)絡(luò)在邊緣端的實時檢測性能,將在嵌入端平臺Jetson Xavier NX進行YOLO-PW模型的部署實驗,并使用Tensorrt庫進行加速推理。表3為不同檢測方案在該設(shè)備上部署的檢測速度對比,可以看出,經(jīng)過通道剪枝后得到的YOLO-PW網(wǎng)絡(luò)在邊緣設(shè)備Jetson Xavier NX上經(jīng)過Tensorrt加速后,能夠?qū)崿F(xiàn)69.08 FPS的檢測速度,可以滿足施工現(xiàn)場多視頻流的實時檢測需要。
表3 Jetson Xavier NX部署模型檢測性能Table 3 Detection performance of models deployed in Jetson Xavier NX
實驗結(jié)果表明,本文所提出的實時施工人員檢測網(wǎng)絡(luò)YOLO-PW能夠在保證精度的情況下,將模型大小壓縮為原來的1/13,在嵌入端設(shè)備Jetson Xavier NX上經(jīng)過Tensorrt加速后,檢測速度提升為原YOLOv3模型的兩倍,能夠在施工現(xiàn)場邊緣端部署,并進行實時施工人員檢測。
圖13 YOLO-PW在不同施工場景下的檢測結(jié)果可視化Fig.13 Visualization of YOLO-PW detection results under different construction site
本文以YOLOv3目標(biāo)檢測算法為基礎(chǔ),通過增加多尺度特征融合、加入空間金字塔池化模塊以及改進候選框,得到施工人員檢測模型YOLO-W,克服施工圖像中背景復(fù)雜、目標(biāo)尺度多樣和存在遮擋等困難,檢測精度可達到88.57%,相較于原YOLOv3算法提升5.23個百分點。另外,為實現(xiàn)模型在施工現(xiàn)場邊緣端的實時部署,對YOLO-W網(wǎng)絡(luò)采用通道剪枝方法得到輕量化模型YOLO-PW,參數(shù)量降低為原來的1/13,檢測速度提升為原來的2倍,同時精度損失有限,剪枝后模型仍能保持88.23%的檢測精度。該YOLO-PW模型在嵌入端設(shè)備Jetson Xavier NX上結(jié)合Tensorrt進行加速推理,可以實現(xiàn)69.08幀/s的檢測速度,能夠良好地滿足施工現(xiàn)場的邊緣端的部署要求,進行實時施工人員檢測,為施工管理人員提供有效的實時信息。本文所使用的施工人員數(shù)據(jù)集覆蓋的施工場景有限,在后續(xù)研究中將繼續(xù)擴充數(shù)據(jù)集圖像,提升模型泛化性能,同時將針對獲取的施工人員目標(biāo)信息進行算法的繼續(xù)開發(fā),將其應(yīng)用到異常侵入、工效計算和危險預(yù)測等管理任務(wù)中。