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