潘志敏,王梓糠,蔣 毅,尹駿剛
(1. 國網(wǎng)湖南省電力有限公司檢修公司,湖南 長沙 410004;2. 長沙理工大學電氣與信息工程學院,湖南 長沙 410114;3. 湖南大學電氣與信息工程學院,湖南 長沙 410082)
安全一直是電力作業(yè)當中首要關注的問題,在高空作業(yè)中頻發(fā)的高處墜落是電力行業(yè)最常見的安全事故之一,也是造成人員傷亡較高的事故類型,2019年電力行業(yè)發(fā)生的43起人身傷亡事故中,15起為高處墜落,占比35%。數(shù)據(jù)表明,作業(yè)人員不遵守安全操作規(guī)程,未使用或不正確使用安全帶,是造成高處墜落事故主要原因。為了防止此類安全事故的出現(xiàn),企業(yè)出臺了相關安規(guī)政策,研究人員也對此提出了不同的解決方案[1,2]。文獻[3]中提出了一種具備無線聲光傳感器的安全帶,防止作業(yè)過程中安全帶鎖扣未鎖緊導致的高處墜落,文獻[4]對安全帶懸掛器進行改進,防止掛鉤變形而造成的高處墜落但這些措施都是應用在作業(yè)人員佩戴安全帶之后,而無法實時確定作業(yè)中人員是否佩戴安全帶。
目前國內(nèi)對高空作業(yè)安全帶佩戴識別的研究較少,文獻[5]提出利用深度卷積神經(jīng)網(wǎng)絡(Deep CNN)來實現(xiàn)建筑工人的安全帶佩戴檢測,但該方法的準確率不足而且依賴大量的數(shù)據(jù)與計算資源。在智能交通領域,基于圖像識別實現(xiàn)汽車安全帶的檢測也是目前流行的方法,文獻[6]研究了利用深度學習來實現(xiàn)汽車安全帶檢測方法,較好地提升了安全帶檢測的準確率,同時也最大限度地減少了人為干預和手工設計特征的復雜性。
深度學習在多數(shù)情況下性能都比傳統(tǒng)機器學習方法優(yōu)異。但在實際應用過程中,深度學習存在嚴重的數(shù)據(jù)依賴問題以及超參數(shù)優(yōu)化問題,使得深度學習難以運用到不同情境中。遷移學習是機器學習中解決訓練數(shù)據(jù)不足這一瓶頸問題的重要手段[7]。目前對深度學習與遷移學習的結合也有大量的研究,文獻[8]提出加入自適應層來計算源域與目標域的距離,并將其加入網(wǎng)絡的損失訓練中。文獻[9]將生成對抗網(wǎng)絡引入深度遷移學習中,降低了源域與目標域之間的分布差異,取得了良好的效果。Fine-tuning是一種簡潔的深度網(wǎng)絡遷移方法,通過微調(diào)預訓練模型相關層來適應特定任務,訓練時間短且準確率較高。
深度學習的性能表現(xiàn)對其超參數(shù)配置十分敏感,而超參數(shù)配置通常需要多次嘗試才能取得較為滿意的效果。目前,網(wǎng)格搜索、隨機搜索、貝葉斯優(yōu)化算法是常見的超參數(shù)調(diào)優(yōu)方法。網(wǎng)格搜索通過在自定義多維網(wǎng)格上手動選擇參數(shù)組,在超參數(shù)較多的情況下幾乎難以使用;隨機搜索在超參數(shù)取值空間隨機自動生成超參數(shù)配置進行測試,不能保證找到最優(yōu)超參數(shù);貝葉斯優(yōu)化算法屬于序列優(yōu)化方法,需要順序執(zhí)行多次,耗時較長。
本文首次將深度遷移學習應用到安全帶佩戴檢測中,提出三種Fine-tuning深度學習遷移方法將基于ImageNet數(shù)據(jù)集預訓練的殘差網(wǎng)絡(Residual Net, ResNet)應用到自構建的作業(yè)安全帶佩戴圖像數(shù)據(jù)集上,提出差分動態(tài)哈里斯鷹群優(yōu)化算法(Dynamic Harris Hawks Optimization with Differential Evolution, DHHO/DE)用于深度遷移學習模型的超參數(shù)優(yōu)化,得到最優(yōu)超參數(shù)配置與最優(yōu)模型。本方法有效提升了模型預測的準確率,為相關圖形檢測開辟新路徑。
本文提出一種基于深度遷移學習的作業(yè)安全帶佩戴檢測模型,具有三層結構,包括優(yōu)化層、訓練層以及應用層,實現(xiàn)深度遷移學習模型超參數(shù)優(yōu)化以及安全帶佩戴檢測。其結構和功能如圖1所示。

圖1 安全帶佩戴檢測模型
1)優(yōu)化層
提出DHHO/DE實現(xiàn)深度遷移學習模型的超參數(shù)尋優(yōu)。將一組超參數(shù)視為一個哈里斯鷹個體,隨機生成N個哈里斯鷹個體組成種群,對應N組超參數(shù)。每組超參數(shù)配置的深度遷移學習模型都將經(jīng)過訓練層,并且根據(jù)目標優(yōu)化函數(shù)得到相應的適應度值。在種群中挑選適應度值最優(yōu)的個體作為下一次迭代的目標個體,再根據(jù)公式更新個體的位置。當?shù)竭_最大次數(shù)或者滿足評測指標時即可輸出最優(yōu)個體位置,對應最優(yōu)超參數(shù)。
2)訓練層
作業(yè)安全帶佩戴訓練圖像集經(jīng)過預處理后傳入某一組超參數(shù)配置的深度遷移學習模型進行訓練,隨后在訓練好的模型上進行測試。訓練層通常會經(jīng)過多次迭代,從而使模型參數(shù)趨于穩(wěn)定。圖像預處理包括定位、剪裁、色彩變化、角度變化等深度學習常用的圖像增強方法,其目的在于增強神層神經(jīng)網(wǎng)絡學習的魯棒性,同時在一定程度上擴充數(shù)據(jù)集。
3)應用層
在應用層中,為了實現(xiàn)更高準確率的佩戴檢測,現(xiàn)場圖像首先經(jīng)過YOLOv3網(wǎng)絡檢測得到作業(yè)工人位置,然后將檢測到的工人圖像經(jīng)過預處理后傳入最優(yōu)超參數(shù)配置的深度遷移學習模型,進行安全帶佩戴檢測即可得到結果。
遷移學習方法通過共享深度學習模型參數(shù)來解決數(shù)據(jù)量與計算資源的問題[7],能達到較好的擬合效果。因此,本文在基于源數(shù)據(jù)集ImageNet訓練的ResNet50上使用Fine-tuning微調(diào)模型結構以訓練自構建的安全帶佩戴數(shù)據(jù)集。
本文提出的安全帶佩戴檢測模型基于ResNet50[10]構建。ResNet50中包含了49個卷積層和一個全連接層,其結構如圖2所示。

圖2 ResNet50結構圖
ResNet很好地解決了深度學習在層數(shù)加深時帶來的梯度消失與梯度爆炸的問題,是目前學習性能最好的卷積神經(jīng)網(wǎng)絡之一,ResNet50包括5個階段,其中STAGE1是對輸入數(shù)據(jù)的卷積與池化預處理,STAGE2由3個Bottleneck塊組成,Bottleneck塊包含3個卷積核分別為1×1,3×3,1×1的卷積層,兩個1×1的卷積核分別對輸入輸出數(shù)據(jù)進行降維與升維操作,較大程度的減少了計算資源的消耗。圖2所示為STAGE2的第一個Bottleneck,每個STAGE的第一個Bottleneck不會對輸入數(shù)據(jù)進行降維。Bottleneck塊中的跨層連接(Shortcut)是ResNet擁有優(yōu)異性能的根本原因,跨層連接有兩種類型分別對應輸入輸出通道相同與不同的情況。在深度學習模型中加入跨層連接能夠讓深層的梯度更好的傳播到淺層網(wǎng)絡,使得淺層的網(wǎng)絡參數(shù)也能得到較好的訓練[10]。其余階段包含13個Bottleneck塊,最后輸出2048維7×7的特征量經(jīng)過全局平均池化后由全連接層Softmax輸出。
Fine-tuning微調(diào)是最為常見的遷移學習方法,通過調(diào)整預訓練網(wǎng)絡的結構可以快速的適應目標任務,并且具有較好的魯棒性與泛化能力。針對圖像的訓練任務,一般會更改模型后幾層以保留淺層學習好的邊緣等特征。為了達到更好的遷移效果,本文提出三種Fine-tuning方法,如圖3所示。

圖3 Fine-tuning方法
方法1初始化全連接層參數(shù),根據(jù)目標任務重構Softmax的輸出分類,其余層參數(shù)初始化為預訓練模型的參數(shù),在訓練目標數(shù)據(jù)集時,預訓練模型參數(shù)也會隨之微調(diào);方法2與方法1的區(qū)別在于第一階段到第五階段的預訓練模型參數(shù)將會被凍結,訓練目標數(shù)據(jù)集時僅改變?nèi)B接層參數(shù);方法3在方法1的基礎上對STAGE5的卷積層進行初始化,引入超參數(shù)m對初始化卷積層個數(shù)進行控制,當m=0時方法3退化到方法1。超參數(shù)m取不同值時會得到不同的訓練效果,因此將m加入到模型超參數(shù)優(yōu)化流程中以得到最優(yōu)值。
本文為解決深度遷移學習存在的超參數(shù)設置困難的問題,提出一種改進的哈里斯鷹優(yōu)化算法對超參數(shù)進行尋優(yōu)。哈里斯鷹優(yōu)化算法由Heidaria等人從哈里斯鷹的捕食行為中得到啟發(fā)并于2019年提出[11],該算法具有較強的全局搜索能力,并且需要調(diào)節(jié)的參數(shù)較少,但在實際運用中,標準哈里斯鷹算法存在搜索收斂較慢,收斂精度不高以及后期會陷入局部最優(yōu)等問題。本文引入動態(tài)調(diào)整參數(shù)以及差分進化提出差分動態(tài)哈里斯鷹算法(DHHO/DE)有效提升了算法的收斂速度、精度與后期跳出局部最優(yōu)的能力。
哈里斯鷹算法模仿哈里斯鷹的群體捕食行為,根據(jù)所追逐獵物的狀態(tài)不同,變換捕食策略,主要由3部分組成:探索階段、轉(zhuǎn)變階段、開發(fā)階段。
1) 探索階段
哈里斯鷹隨機棲息在不同的位置,基于兩種策略等待獵物出現(xiàn),如式(1)所示
X(t+1)

(1)
式中,X(t+1)是哈里斯鷹下次迭代t會到達的位置,Xprey(t),X(t)分別是當前獵物與哈里斯鷹的位置,r1,r2,r3,r4與q是(0,1)之間的隨機數(shù),LB與UB是搜索空間上下界,Xrand(t)是從當前種群中隨機挑選的哈里斯鷹個體的位置,Xm是當前種群的平均位置。
2) 轉(zhuǎn)變階段
哈里斯鷹根據(jù)獵物的逃逸能量E在探索與不同的開發(fā)行為之間轉(zhuǎn)換,E的更新公式如式(2)所示

(2)
式中,E0是獵物的初始能量,當|E|<1時進入開發(fā)階段,當|E|>1時進入探索階段。在整個迭代過程中,|E|由2逐漸遞減至0,導致在算法迭代后期始終小于1。當|E|<1時,算法不具備全局搜索能力,此時算法就有一定概率陷入局部最優(yōu)解。本文在式(2)中加入動態(tài)因子η以提升算法后期全局搜索能量。

(3)
式中randn為正態(tài)分布,加入動態(tài)參數(shù)后,式(2)變?yōu)?/p>

(4)
由圖4可以看出,加入動態(tài)參數(shù)η的逃逸能量E在迭代后期偶爾突變使|E|>1,算法將重新進入探索階段,從而提升算法的全局搜索能力。

圖4 加入動態(tài)參數(shù)后的逃逸能量
3) 開發(fā)階段
定義r為獵物逃脫概率,r<0.5時獵物成功逃脫,r≥0.5表示獵物在哈里斯鷹抓捕前未能逃脫。根據(jù)獵物剩余能量不同,哈里斯鷹將執(zhí)行不同的捕食策略。當r≥0.5且|E|≥0.5時,執(zhí)行軟圍攻策略,哈里斯鷹位置更新可用式(5)表示
X(t+1)=ΔX(t)-E|JXprey(t)-X(t)|
(5)
式中,ΔX(t)是t次迭代中,獵物與鷹的位置之差,J=2(1-r5)代表獵物的隨機逃亡過程。當r≥0.5且 |E|<0.5時,執(zhí)行硬圍攻策略,位置更新由式(6)表示
X(t+1)=Xprey(t)-E|ΔX(t)|
(6)
當|E|≥0.5且r<0.5時,獵物尚且有足夠的逃逸能量,此時的哈里斯鷹位置更新可用式(7)表示

(7)
Y=Xprey(t)-E|JXprey(t)-X(t)|
(8)
Z=Y+S×LF(D)
(9)
式中,哈里斯鷹快速俯沖的數(shù)學模型表示為萊維飛行LF(χ)函數(shù),D是需要解決問題的維度,S是1×D的隨機向量,萊維飛行LF(χ)函數(shù)可由式(10)計算

(10)
式中,μ,υ是(0,1)之間的隨機數(shù),β是默認常量,設置為1.5。
當|E|<0.5且r<0.5時,哈里斯鷹執(zhí)行快速俯沖式硬圍攻,將式(8)更改為
Y=Xprey(t)-E|JXprey(t)-Xm(t)|
(11)
式中,Xm(t)是哈里斯鷹種群的平均位置,此時個體的位置可由式(7)、式(9)、式(11)更新。
此外,本文還對每一代的種群使用差分進化策略,以提升算法的收斂速度與精度。差分進化算法包含變異、交叉、選擇3個過程。對一次迭代完成后的種群進行變異操作
Zi=Xbest(t)+F×(Xr1(t)-Xr2(t))+
F×(Xr3(t)-Xr4(t))
(12)
式中,Xr1、Xr2、Xr3、Xr4是從種群X中隨機挑選的個體,F(xiàn)是變異尺度,Xbest(t)是第t代最優(yōu)個體位置。
交叉操作從當前父代中產(chǎn)生一個后代,如式(13)所示

(13)
式中CR為交叉概率,βi代表[1,D]中的隨機值。最后是選擇操作,如果后代Wi的適應度值Fit(Wi)優(yōu)于父代Xi(t)的適應度值Fit(Xi),那么后代將替換父代,反之保留父代,由式(14)表示。

(14)
圖5給出了HHO[11]、IHHO[12]、WOA[13]以及DHHO/DE在求解部分基準函數(shù)200維時的收斂曲線圖,可以看出本文所提算法在收斂速度與精度上均有較大提升。

圖5 基準函數(shù)收斂曲線

h*=arg maxeval(θ|h)
(15)
式中,θ為模型參數(shù),eval為評價函數(shù),本文自構建的數(shù)據(jù)集正負樣本均衡,因此選用準確率作為評價指標,如下式所示

(16)
式中,TP為真正類樣本,即正確檢測到安全帶的樣本,TF為真負類樣本,NP為假正類樣本,F(xiàn)N為假負類樣本。
使用DHHO/DE進行模型超參數(shù)尋優(yōu)的具體過程如圖6所示,首先隨機生成N組超參數(shù)作為哈里斯鷹初始群體,每組超參數(shù)配置相應的深度學習模型并進行訓練與測試,隨后使用式(16)計算個體的適應度值,將適應度值最優(yōu)個體作為目標個體,再使用DHHO/DE更新種群位置即超參數(shù),最后使用更新后的超參數(shù)配置深度學習模型,開始下一輪迭代。滿足最大迭代次數(shù)時,輸出的最優(yōu)個體位置就是最優(yōu)超參數(shù)。

圖6 超參數(shù)優(yōu)化過程
本文實驗數(shù)據(jù)集采用在現(xiàn)場拍攝的1000張電力工人佩戴安全帶作業(yè)的照片作為正類樣本,1000張未佩戴安全帶的照片作為負類樣本,各分割200作為實驗的測試集,部分數(shù)據(jù)集如圖7所示。

圖7 部分數(shù)據(jù)集
訓練實驗使用的CPU為Inter(R) Core(TM) i7-7700,GPU為NVIDIA GTX 1080Ti,內(nèi)存為16G,操作系統(tǒng)為Windows10,開發(fā)環(huán)境為Anaconda3(Python3.6,Pytorch1.2.0)。
本文對深度學習中學習率(Learning rate)、優(yōu)化器(Optimizer)、批量樣本大小(Batch size)以及3.2節(jié)中提出的Fine-tuning超參數(shù)m進行尋優(yōu)操作。學習率是模型訓練中最為重要的超參數(shù),對模型訓練的精度與速度都有直接影響;合適的優(yōu)化器同樣也能加速模型訓練,優(yōu)化器參數(shù)一般都會選取固定的值,本文不作過多探討;樣本數(shù)量大小會影響到優(yōu)化器的尋優(yōu)效果,一般來說較大的樣本數(shù)量會加速梯度下降,但容易造成內(nèi)存溢出的問題。各超參數(shù)取值范圍如表1所示。

表1 超參數(shù)
5.1.1 不同的Fine-tuning方法對比
初始化哈里斯鷹種群數(shù)量為N=10,優(yōu)化器參數(shù)使用不同的數(shù)字對應不同的優(yōu)化器。對于需要整數(shù)類型參數(shù)的超參數(shù),在迭代最后使用Round取整將浮點數(shù)變?yōu)檎麛?shù),選取Acc值作為適應度值函數(shù)。優(yōu)化算法迭代50次,每一代中N個深度遷移學習模型各訓練10次,算法收斂結果如圖8所示。

圖8 三種方法尋優(yōu)收斂對比
可以看出在優(yōu)化算法僅迭代到20代時,三種方法訓練得到的準確率已經(jīng)趨于穩(wěn)定,模型結構的調(diào)整有利于提升準確率但實際上會增加訓練的時間。DHHO/DE尋優(yōu)得到的各個方法最優(yōu)超參數(shù)如表2所示。

表2 最優(yōu)超參數(shù)
5.1.2 不同優(yōu)化算法方法對比
為了驗證本文所提優(yōu)化算法的優(yōu)越性,將DHHO/DE與WOA以及貝葉斯優(yōu)化算法在基于方法3微調(diào)的模型上進行超參數(shù)尋優(yōu),并且進行比較,其結果如圖9所示。可以看出與其它兩種算法相比,本文所提算法在收斂速度與準確率上都有一定提升。

圖9 不同的優(yōu)化方法對比
使用最優(yōu)超參數(shù)配置預訓練ResnNet50后,3種Fine-tuning方法的測試集準確率Acc與訓練損失Loss如圖10、圖11所示。

圖10 三種方法準確率對比

圖11 三種方法訓練損失對比
得益于遷移學習的特性與Fine-tuning方法的簡潔,ResNet50經(jīng)過僅20次訓練就能得到較高的準確率。方法1、方法3的準確率能夠達到0.99以上。方法2由于凍結了模型參數(shù)在前幾次訓練的表現(xiàn)不佳,但在20次訓練后也能達到0.98以上的準確率,并且方法2在訓練時間上比其它兩種方法減少了20%。綜合比較,本文選取最優(yōu)超參數(shù)配置的基于方法3微調(diào)的預訓練ResNet50作為電力作業(yè)安全帶佩戴的檢測模型。將圖像輸入到已訓練的微調(diào)模型中,經(jīng)過一個Bottleneck塊處理后,輸出特征如圖12所示,可以看出微調(diào)模型能夠較好地識別安全帶特征。

圖12 輸出特征可視化
在將訓練好的電力作業(yè)安全帶佩戴檢測模型應用到作業(yè)現(xiàn)場時,需要考慮到工人的識別問題。目前行人識別已經(jīng)是發(fā)展非常成熟的一個技術領域,本文采用預訓練的YOLOv3[18]進行工人檢測,將檢測的工人圖像傳入到安全帶佩戴檢測模型,輸出佩戴概率,如圖13所示。

圖13 模型檢測結果
由圖13 (a)可知,當工人未佩戴安全帶時,檢測模型輸出的置信度較低,受工人穿戴衣物的影響在一定數(shù)值內(nèi)波動但不會超過檢測閾值;圖13(b)檢測模型輸出的置信度較高,可以判斷工人已佩戴安全帶。
為了解決電力作業(yè)安全帶佩戴檢測問題,本文提出了一種基于深度遷移學習的作業(yè)安全帶佩戴檢測方法。首先通過重構預訓練ResNet50的卷積層與全連接層提出了三種不同的Fine-tuning遷移學習方法,利用遷移學習減小模型對數(shù)據(jù)集的依賴,然后針對模型超參數(shù)尋優(yōu)問題,提出了DHHO/DE算法對三種方法構建的模型進行超參數(shù)優(yōu)化,最后將最優(yōu)超參數(shù)配置的三種模型在自構建的2000幅數(shù)據(jù)集上進行訓練。結果表明本文提出的檢測方法在訓練集較少的情況下也能夠?qū)崿F(xiàn)準確率達99%的安全帶佩戴檢測。本文提出的方法為解決電力及其它行業(yè)高空作業(yè)安全檢測難題提供了可行的思路。