萬 勇 (湖北興發(fā)化工集團(tuán)股份有限公司,湖北 宜昌 443711)
建筑生產(chǎn)行業(yè)中,高處作業(yè)、洞口作業(yè)等作業(yè)形式十分常見,這導(dǎo)致了施工場地的風(fēng)險性系數(shù)極高,安全生產(chǎn)形勢十分嚴(yán)峻[1]。2019 年,住建部通報顯示,全國房屋市政工程生產(chǎn)安全事故按照類型劃分,發(fā)生415 起高處墜落事故,占總數(shù)的53.69%。統(tǒng)計數(shù)據(jù)表明,高處墜落在安全事故總量中占據(jù)的比重最大[2]。因此,如何通過科學(xué)的手段預(yù)防高墜事故的發(fā)生,是建筑安全管理行業(yè)有待解決的重要研究問題。
針對高空作業(yè)事故的原因分析,部分學(xué)者用相關(guān)理論進(jìn)行了研究。李鈺等[3]通過高處墜落事故致因網(wǎng)絡(luò)分析,得出高墜事故發(fā)生的主要原因是臨邊洞口安全防護(hù)措施不到位;覃海松等[4]通過事故作業(yè)場景及存在安全問題分析,提出簡易安全防護(hù)措施設(shè)計,加強(qiáng)臨邊洞口防護(hù)與監(jiān)控成為降低高墜事故的根本之策。對高空作業(yè)的安全性影響最大的因素是洞口防護(hù)不到位,而在目前技術(shù)與管理方面的預(yù)防措施中,對存在的安全隱患仍是采用安全檢查的方式進(jìn)行排查,并未使用人工智能識別臨邊洞口存在的安全隱患,從此切口入手,展開對臨邊洞口安全隱患的相關(guān)研究,以達(dá)到預(yù)防高空作業(yè)墜落事故的目的。
隨著人工智能的發(fā)展,人工智能在目標(biāo)檢測與識別這一方面的研究越來越深入[5-6],但人工智能目前尚未使用于識別臨邊洞口方面。目前,目標(biāo)檢測方法主要分為以下三種:第一種方法是傳統(tǒng)的計算機(jī)視覺目標(biāo)檢測方法[8],主要利用數(shù)字圖像處理方向的知識進(jìn)行識別[9];第二種方法是深度學(xué)習(xí)目標(biāo)檢測方法,主要利用神經(jīng)網(wǎng)絡(luò)對圖像進(jìn)行訓(xùn)練[10],以達(dá)到要求的精度;第三種方法結(jié)合了深度學(xué)習(xí)和傳統(tǒng)方法來完成識別[11]。
目前主流的基于深度學(xué)習(xí)的檢測方法主要有以下兩類。①基于區(qū)域檢測目標(biāo)并進(jìn)行判斷,如Fast R -CNN、Faster R-CNN 和R-FCN 等。徐守坤等[12]在傳統(tǒng)的Faster R-CNN 基礎(chǔ)上,采取多尺度訓(xùn)練和增加標(biāo)注框錨點等方式,提高了檢測的準(zhǔn)確率,但由于沒有分析兩個目標(biāo)之間的空間拓?fù)潢P(guān)系,該方法容易產(chǎn)生誤檢。②將檢測問題轉(zhuǎn)化為回歸問題進(jìn)行求解,在圖片的不同位置均勻地進(jìn)行密集采樣,采用不同的長寬比進(jìn)行采樣,然后利用CNN 提取特征后,根據(jù)特征進(jìn)行分類與回歸,劉博等[13]提出基于Darknet 網(wǎng)絡(luò)模型結(jié)合YOLOv3 算法實時對多目標(biāo)跟蹤檢測?;赮OLO 改進(jìn)方法的優(yōu)勢,具有速度快的優(yōu)點,但是得到的目標(biāo)框準(zhǔn)確度不高。
通過對高墜事故原因的分析,預(yù)留洞口仍是事故高發(fā)場地。從減少危險源、消除安全隱患的角度出發(fā)[2],本文針對預(yù)留洞口與防護(hù)欄檢測展開研究。分析眾多目標(biāo)識別算法特點并進(jìn)行比較后,本文將對YOLOv3 模型[11]進(jìn)行優(yōu)化,得到更高精度、更高速度的目標(biāo)檢測模型。通過對臨邊洞口數(shù)據(jù)庫的深度學(xué)習(xí),實現(xiàn)對臨邊洞口及其防護(hù)欄的識別,同時集成臨邊洞口安全隱患識別系統(tǒng),實時監(jiān)控臨邊洞口不安全的現(xiàn)場環(huán)境,并對工人發(fā)出預(yù)警,可以有效地減少臨邊洞口的安全隱患,提高企業(yè)安全管理能力。
本論文設(shè)計的YOLOv3目標(biāo)檢測算法主要是以Darknet-53 網(wǎng)絡(luò)為網(wǎng)絡(luò)基礎(chǔ),通過對不安全預(yù)留洞口進(jìn)行檢測,識別安全隱患,通過連接警報器發(fā)出警報[14],以此減少高墜事故。預(yù)警算法的流程圖如圖1所示。
圖1 預(yù)警算法流程圖
本文的YOLOv3 借鑒了Resnet,引入了多個Resnet 模塊,并設(shè)計了一個具有更多層和更高分類精度的新網(wǎng)絡(luò)。YOLOv3 采用Darknet-53[15]網(wǎng)絡(luò)結(jié)構(gòu),借鑒殘差神經(jīng)網(wǎng)絡(luò)設(shè)置殘差單元[16],將網(wǎng)絡(luò)深化為53 個卷積層,基于YOLOv2的passthrough 結(jié)構(gòu),檢測出細(xì)粒度特征。根據(jù)檢測目標(biāo)情況,采用三種不同尺度的特征圖進(jìn)行目標(biāo)檢測,并對目標(biāo)檢測精度做出計算。構(gòu)建系統(tǒng)后,對目標(biāo)檢測模型性能進(jìn)行評價,建立評價函數(shù),并以此和之前模型性能進(jìn)行對比。
1.2.1 邊界框設(shè)計
本文模型構(gòu)建在邊界框設(shè)計中,采用k 均值聚類得到Anchor,并將Anchor的個數(shù)增加到9,為每個尺度特征圖分配3 個不同的Anchor,大大提高網(wǎng)絡(luò)對小尺寸目標(biāo)的檢測能力,同時將預(yù)測層的Softmax函數(shù)改為Logistic函數(shù)[17],支持多標(biāo)簽對象的輸出。
YOLOv3 的整體網(wǎng)絡(luò),將三種不同尺度的YOLOv3 網(wǎng)絡(luò)特性輸出為圖,并將每一個特征圖對應(yīng)的輸入圖像輸入到Si×Si個單元中,如果檢測目標(biāo)以一個單位為中心,該單位負(fù)責(zé)目標(biāo)檢測并預(yù)測各個邊框和置信度得分,該得分能反映該邊框內(nèi)包含目標(biāo)的可信程度,公式如下:
式中:Confidence表示邊框置信度分?jǐn)?shù);Pr(object) 表示邊框內(nèi)是否包含目標(biāo),若不包含則為0,若包含則為1;IoU表示預(yù)測邊框和真實邊框的交并比;Detection表示系統(tǒng)預(yù)測值;GroundTruth表示真實值。
在目標(biāo)位置預(yù)測方面[18],YOLOv3引入了在faster R-CNN 中使用錨點框(anchor box)[5],并在每個特征圖上預(yù)測了三個錨點框。對于輸入圖像,YOLOv3 算法將其劃分為13×13 個塊,并預(yù)測每塊3 個目標(biāo)的邊界幀。YOLOv3引入多尺度融合方法對目標(biāo)的三尺度邊界框架進(jìn)行預(yù)測,大大提高了小目標(biāo)檢測的精度,avg IoU達(dá)到78.42%。
1.2.2 評價函數(shù)
在目標(biāo)檢測領(lǐng)域,準(zhǔn)確性和召回率通常用于衡量目標(biāo)檢測系統(tǒng)的性能。準(zhǔn)確率是指真正正確的目標(biāo)在所有被判斷為正確的目標(biāo)中所占的比例。召回率是指系統(tǒng)正確檢測到的所有真實目標(biāo)的總和,即準(zhǔn)確率衡量查準(zhǔn)率,召回率衡量查全率,公式表示為:
式中:Precision代表準(zhǔn)確性;Recall代表召回率;TP代表系統(tǒng)正確檢測到的目標(biāo)數(shù)量;FP代表系統(tǒng)錯誤檢測到的目標(biāo)數(shù)量;FN代表系統(tǒng)錯過的正確目標(biāo)數(shù)量。
實際上,這兩個參數(shù)往往彼此相反,很難共同擁有。因此,通常會考慮AP值以確定模型的性能,AP值的公式為:
式中:N為測試集中所有圖片的個數(shù);Precision(k)表示在能識別出k個圖片時Precision值;ΔRecall(k)表示識別圖片個數(shù)從k-1 變化到k時Recall值的變化情況。
針對多個分類C,一般用平均AP 值mAP作為模型整體評價結(jié)果。
相比于之前的模型,基于YOLOv3的改進(jìn)模型復(fù)雜了很多,但是速度與精度是能夠通過改變模型結(jié)構(gòu)的大小來彌補(bǔ)的。
YOLOv3 的先驗檢測系統(tǒng)重新應(yīng)用分類器或定位器來執(zhí)行檢測任務(wù)。在檢測圖片上多個位置和尺度運(yùn)用模型,選取分?jǐn)?shù)最高的區(qū)域作為輸出結(jié)果。此外,與其他目標(biāo)檢測方法相比,其采用了一種完全不同的方法,在整個圖像中應(yīng)用單個神經(jīng)網(wǎng)絡(luò),圖像被分割成多個不同的區(qū)域,預(yù)測每個區(qū)域的邊界框和概率,這些邊界框根據(jù)預(yù)測概率加權(quán)。YOLOv3[19]模型與基于分類器的系統(tǒng)相比有更多優(yōu)勢。R-CNN 識別出一個目標(biāo),需要一個目標(biāo)的數(shù)千張圖像,它是通過一個單一的網(wǎng)絡(luò)評估來預(yù)測的。而本方法在測試時查看整個圖像,其預(yù)測是基于整個圖片而言,更加完整。這使得YOLOv3 非???,通常比R-CNN 快1000倍,比Fast R-CNN快100倍[8]。
YOLOv3 使用一個53 層的卷積網(wǎng)絡(luò)結(jié)構(gòu),稱為DarkNet-53。本網(wǎng)絡(luò)設(shè)計借用了ResNet[20]的殘網(wǎng)思想,僅使用3×3和1×1的卷積層。在ImageNet上,basenet的256×256分類精度Top-5分類準(zhǔn)確率為93.5%,與ResNet-152 相同;Top-1 準(zhǔn)確率為77.2%,只比ResNet-152 低0.4%。與此同時,darknet-53 的計算復(fù)雜度僅為ResNet-152 的75%,實際檢測速度(FPS)是ResNet-152的2倍,在保證準(zhǔn)確度的前提下,能夠達(dá)到實時監(jiān)測的效果。
2.1.1 算法設(shè)計流程(見圖2)
圖2 算法設(shè)計邏輯圖
2.1.2 非極大值抑制模塊設(shè)計
為實現(xiàn)設(shè)計的先檢驗系統(tǒng)功能,對本模塊進(jìn)行設(shè)計。非極大值抑制(Non-Maximum Suppression,NMS),在檢測圖片上多個位置和尺度運(yùn)用模型,選取分?jǐn)?shù)最高的區(qū)域作為輸出結(jié)果,抑制非最大值的元素可以理解為局部最大搜索。這個局部表示一個具有兩個可變參數(shù)的鄰域,其中一個可變參數(shù)是鄰域的維度,另一個是鄰域的面積大小。例如,在臨邊洞口的檢測中,每一個滑動窗口會根據(jù)檢測圖片的物體給出一個評價分?jǐn)?shù),滑動窗口會導(dǎo)致很多窗口與其他窗口存在包含或者大部分交叉的情況。在這種情況下,NMS 能夠選擇得分最高(洞口概率最高)的鄰域,并抑制得分最低的窗口,輸出分?jǐn)?shù)最高的區(qū)域作為結(jié)果。
訓(xùn)練的前提是大量的數(shù)據(jù)樣本,并且需要預(yù)先確定訓(xùn)練樣本分類,而檢測臨邊洞口與護(hù)欄兩類數(shù)據(jù)則需要兩個訓(xùn)練樣本分類即可。數(shù)據(jù)樣本的正確與否決定了訓(xùn)練的效果,本文通過手動選擇的方式來選擇訓(xùn)練數(shù)據(jù)集,通過人為的判斷來選擇目標(biāo)。收集到足夠的數(shù)據(jù)集后即可開始整理與清洗,從原始圖像中清洗出特征數(shù)據(jù)和標(biāo)注數(shù)據(jù),最終生成的數(shù)據(jù)主要是供模型訓(xùn)練使用。
目前在臨邊洞口識別領(lǐng)域沒有公開的大型數(shù)據(jù)集,本實驗所用數(shù)據(jù)集為自制數(shù)據(jù)集。主要包括預(yù)留洞口、預(yù)留洞口防護(hù)欄、基坑、基坑防護(hù)四類,總共包含200 張圖像,其中150 張作為訓(xùn)練圖像,50 張作為測試圖像,在訓(xùn)練集中隨機(jī)選取5 張圖像作為驗證集。圖像使用Darknet Mark Tool 進(jìn)行圖像標(biāo)記,數(shù)據(jù)集圖像由實拍圖像和網(wǎng)絡(luò)圖像組成。
2.3.1 終端輸出
通過可視化中間參數(shù),得到模型訓(xùn)練最佳效果的loss需要用到訓(xùn)練時保存的log文件。
利用extract_log.py 腳本,格式化log,用生成的新log 文件使得可視化工具能夠繪圖,隨后使用腳本繪制變化曲線。運(yùn)行之后,解析log文件的loss行得到一個關(guān)于loss 的txt文件,并會在腳本所在路徑生成avg_loss.png,如圖3 所示。由圖可知,曲線趨近于平穩(wěn),代表訓(xùn)練誤差小,效果好。
圖3 Loss下降圖
圖4 預(yù)留洞口防護(hù)識別效果(一)
圖5 預(yù)留洞口防護(hù)識別效果(二)
圖6 預(yù)留洞口識別效果圖
圖7 視頻監(jiān)控實時識別效果
通過分析訓(xùn)練過程中終端輸出的數(shù)據(jù)可知,本次訓(xùn)練最終迭代次數(shù)為3292次,停止訓(xùn)練時avg—average loss(error)—趨于0.397466,逐步穩(wěn)定并開始收斂。
輸入測試集,全部進(jìn)行檢測后共輸入50 張圖片,共檢測出47 張圖片中的預(yù)留洞口與圍欄,其中1 張圖片預(yù)留洞口識別錯誤,1 張圖片中的預(yù)留洞口未識別出來,召回率為97.87%,準(zhǔn)確率為97.91%。
以某建筑施工現(xiàn)場為例,對存在的預(yù)留洞口與防護(hù)進(jìn)行識別,在案例中,共檢測18 個預(yù)留洞口與防護(hù),3 段視頻實時監(jiān)控,平均檢測識別時間為0.3s,能夠達(dá)到實時監(jiān)控的目的,召回率與準(zhǔn)確率均達(dá)到100%。
通過采用Darknet-53 網(wǎng)絡(luò)結(jié)構(gòu)對YOLOv3 模型進(jìn)行優(yōu)化,在保持原有高準(zhǔn)確率的同時,將計算復(fù)雜度降低為原來的75%,計算速度提升為原來的兩倍,保證了檢測的高實時性。
通過施工現(xiàn)場調(diào)研分析近十年高處墜落事故發(fā)生的原因,高處作業(yè)場所臨邊洞口缺少安全防護(hù)是高處墜落事故發(fā)生的主要影響因素。
建立臨邊洞口安全隱患識別系統(tǒng),通過系統(tǒng)對臨邊洞口無防護(hù)圍欄的安全隱患進(jìn)行識別,對有臨邊洞口而無防護(hù)措施的圖像進(jìn)行篩選,以此排查臨邊洞口隱患之處,實現(xiàn)視頻監(jiān)控實時識別,召回率為97.87%,準(zhǔn)確率為97.91%。后期將深入探究如何實現(xiàn)實時報警,并嘗試設(shè)計臨邊洞口安全隱患識別系統(tǒng)與報警裝置交互系統(tǒng)。