張艷花 白尚旺
(太原科技大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 太原 030024)
隨著礦井開采深度的延伸、煤炭開采工作量增大,井下承人裝置(猴車)斜巷運(yùn)送人員在各大煤礦得到了廣泛的應(yīng)用,對井下輔助運(yùn)輸起到重要作用。由于上下班時間人員密集,礦工不按規(guī)定間距違規(guī)乘坐猴車,而猴車間距較小易導(dǎo)致人員掉繩,威脅礦工的生命安全。目前煤礦普遍采用監(jiān)工人員現(xiàn)場監(jiān)督或全程觀看視頻的方式來監(jiān)視猴車運(yùn)行,效率低下,檢測極易延誤。同時煤礦井下環(huán)境復(fù)雜、視覺條件差、使用人工照明燈[1],導(dǎo)致獲取的視頻圖像呈現(xiàn)大量暗區(qū)域和部分高亮區(qū)域,圖像亮度不均勻,不利于下一步違規(guī)檢測特征提取。針對該問題,本文將深度學(xué)習(xí)技術(shù)應(yīng)用于煤礦視頻監(jiān)控領(lǐng)域,在井下用目標(biāo)檢測算法對違規(guī)乘坐礦工檢測,進(jìn)而減少監(jiān)工人員的工作量[2],達(dá)到規(guī)范乘坐、實(shí)時檢測的目的,進(jìn)一步保障礦工的安全。
為了解決煤礦井下圖像降質(zhì)問題,研究者們利用圖像處理方法取得了大量成果:劉曉陽等[3]采用雙邊濾波算法對圖像小波分解得到的低頻子圖進(jìn)行了系數(shù)調(diào)整,克服了井下光照不均勻產(chǎn)生的顏色失真現(xiàn)象,但由于未對整體特征的低頻信息進(jìn)行增強(qiáng),導(dǎo)致圖像亮度改善不明顯;謝海波等[4]將提升小波變換和雙直方圖均衡化方法相結(jié)合,采用先去噪后增強(qiáng)的處理思路,對失真的礦井圖像有一定的效果,但易造成色彩失真、圖像模糊、灰階突變處噪聲放大等問題;楊先鳳等[5]構(gòu)造了一種改進(jìn)的伽馬函數(shù),利用圖像局部信息自適應(yīng)確定伽馬變換的參數(shù),提高了圖像的亮度和對比度;孫曉艷等[6]提出自適應(yīng)參數(shù)伽馬變換的顏色增強(qiáng)方法,通過圖像的亮度傾向指數(shù)調(diào)整灰度值,可有效提升圖像整體亮度并且抑制局部高亮區(qū)域。在目標(biāo)檢測方面,基于深度學(xué)習(xí)的目標(biāo)檢測算法主要分為兩種,一種是基于分類的兩階段檢測算法,首先利用候選區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN)生成目標(biāo)候選區(qū)域,然后對候選區(qū)域進(jìn)一步分類及位置校準(zhǔn)得到最終的檢測結(jié)果,雖然精度上得到了提升,但實(shí)時性較差,難以滿足工業(yè)要求。兩階段目標(biāo)檢測算法的主流算法是R-CNN 系列[7~9]。另一種是基于回歸的單階段檢測算法,此類算法直接在卷積神經(jīng)網(wǎng)絡(luò)中提取特征來預(yù)測位置和類別信息,是一種端到端的目標(biāo)檢測算法。單階段目標(biāo)檢測算法的主流算法包含SSD 系列[10~11]、YOLO 系列算法[12~14]。其中YOLOv3 是工業(yè)領(lǐng)域經(jīng)典的檢測算法,它結(jié)合了殘差網(wǎng)絡(luò)、特征金字塔網(wǎng)絡(luò)、多尺度融合預(yù)測等多種方法,可以同時保證準(zhǔn)確性和實(shí)時性。
因此,針對煤礦井下視頻圖像亮度不均勻、猴車違規(guī)檢測效率低的問題,本文采用自適應(yīng)伽馬變換圖像增強(qiáng)算法與YOLOv3 目標(biāo)檢測相結(jié)合的方法。首先通過自適應(yīng)伽馬變換方法對不同光照條件下猴車圖像進(jìn)行亮度校正;其次在YOLOv3 網(wǎng)絡(luò)的殘差塊中嵌入SENet 網(wǎng)絡(luò)模塊作為注意力機(jī)制,使網(wǎng)絡(luò)學(xué)習(xí)利用全局信息實(shí)現(xiàn)特征重標(biāo)定,從而增強(qiáng)了整個網(wǎng)絡(luò)的表達(dá)能力。同時修改YOLOv3 的分類器,有效提高了檢測精度。最后構(gòu)建了煤礦井下違規(guī)乘坐猴車數(shù)據(jù)集,并對數(shù)據(jù)做了大量手工標(biāo)注用于模型網(wǎng)絡(luò)的訓(xùn)練和測試。
井下承人裝置違規(guī)檢測方法包絡(luò)三個步驟,首先在井下安裝攝像頭設(shè)置10m 的矩形框作為安全距離,實(shí)時采集視頻;然后用自適應(yīng)伽馬變換算法處理降質(zhì)圖像;最后用改進(jìn)的YOLOv3 網(wǎng)絡(luò)檢測乘坐猴車的礦工,通過輸出人數(shù)判斷是否違規(guī),若安全距離輸出人數(shù)大于1,說明規(guī)定間距內(nèi)猴車數(shù)量大于1,違規(guī)發(fā)出警報。井下承人裝置違規(guī)檢測的流程圖如圖1所示。
圖1 井下承人裝置違規(guī)檢測流程圖
伽馬變換是對輸入圖像特定區(qū)域灰度值進(jìn)行拉伸,通過非線性變換使輸出圖像灰度值與輸入圖像灰度值呈指數(shù)關(guān)系,其表達(dá)式如下:
其中:Vin表示輸入圖像的灰度值,Vout表示輸出圖像的灰度值,A和γ為常數(shù)[15]。由于伽馬變換指數(shù)γ與圖像的亮度傾向指數(shù)呈正相關(guān)[16],所以本文利用計算圖像亮度傾向指數(shù)的自適應(yīng)伽馬參數(shù)方法,對RGB 三個通道分別進(jìn)行伽馬變換調(diào)整圖像的灰度值。首先計算圖像RGB 三個通道的亮度傾向指數(shù),計算公式[17]如下:
其中w代表圖像的亮度傾向指數(shù),F(xiàn)max和Fmin分別表示圖像的最大和最小亮度值,lnFavg表示圖像平均亮度的對數(shù)值,計算公式如下[17]:
其中M表示像素的總數(shù)目,F(xiàn)(x,y) 表示像素點(diǎn)(x,y)的亮度值,δ為使對數(shù)ln[F(x,y)+δ] 不為0的一個數(shù),這樣根據(jù)式(3)進(jìn)而得到圖像三個通道的亮度傾向指數(shù)wR、wG、wB。由于伽馬變換指數(shù)γ與圖像的亮度傾向指數(shù)w且呈線性關(guān)系[16]:
其中當(dāng)a=10.52,b=-6.08 時,得到的伽馬變換參數(shù)是最優(yōu)的。因此將a,b的值帶入式(4)計算圖像RGB三個通道的值,表達(dá)式如下:
再將γR、γG、γB分別帶入圖像分量中得出變換后的圖像,公式如下:
其中R1(x,y)、G1(x,y)、B1(x,y)表示原圖像RGB三通道在像素點(diǎn)(x,y)處的灰度值,R2(x,y)、G2(x,y)、B2(x,y)表示經(jīng)過自適應(yīng)伽馬變換后的三通道在對應(yīng)位置處的灰度值。由于RGB 顏色模型容易受到光照變化的影響,通過對RGB 進(jìn)行歸一化處理可有效去除光照信息,將經(jīng)過自適應(yīng)伽馬變換后的像素點(diǎn)進(jìn)行下式變換:
通過自適應(yīng)伽馬變換方法對不同光照條件下猴車機(jī)頭圖像進(jìn)行亮度校正,其校正結(jié)果如圖2所示。
圖2 猴車機(jī)頭校正結(jié)果
從圖2 可以看出,自適應(yīng)伽馬變換算法對不同光照條件的圖像均有一定的改善,凸顯了井下礦工的特征,有利于目標(biāo)檢測準(zhǔn)確率的提高。
2.2.1 YOLOv3算法原理
YOLOv3 算法使用Darknet-53 作為骨干網(wǎng)絡(luò),相比YOLOv2 使用的Darknet-19,其包含53 個卷積層,沒有池化層和全連接層。該網(wǎng)絡(luò)包含一系列3*3、1*1 的卷積層和殘差結(jié)構(gòu)。每一層卷積層之后連接批標(biāo)準(zhǔn)化層(BN)和Leaky relu 激活層,構(gòu)成YOLOv3 的基本卷積單元DBL。YOLOv3 網(wǎng)絡(luò)的第一個優(yōu)勢是借鑒了ResNet[18]的殘差思想,形成殘差結(jié)構(gòu),大量使用殘差跳層連接,在幾乎不增加參數(shù)量的前提下提升了網(wǎng)絡(luò)了學(xué)習(xí)能力,避免了網(wǎng)絡(luò)較深時所產(chǎn)生的梯度彌散問題。同時,YOLOv3 運(yùn)用特征金字塔網(wǎng)絡(luò)[19](FPN)多尺度的思想,通過步長為2 的上采樣提取深層特征,保證維度與將要融合的特征層維度相同的情況下進(jìn)行拼接操作,融合后得到26*26、52*52 大小的特征圖,實(shí)現(xiàn)了不同尺寸目標(biāo)檢測。在YOLOv3 網(wǎng)絡(luò)中,整張圖像通過采樣劃分為S*S 個單元格,每個網(wǎng)格單元會預(yù)測3 個邊界框(bounding box),每個邊界框回歸(x,y,w,h,confidence)5 個值,即邊界框的偏移量和1 個目標(biāo)預(yù)測。對于COCO數(shù)據(jù)集的80個類別,輸出張量為N*N*[3*(5+80)],由于本文檢測礦工、安全帽兩類,修改YOLOv3的分類器,輸出維度3*(5+2)=21,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
2.2.2 SENet結(jié)構(gòu)
SENet[20](Squeeze-and-Networks)是Momenta公司在2017 年公布的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),主要通過對特征通道間的相關(guān)性進(jìn)行顯式建模,選擇性地強(qiáng)化重要特征來提升準(zhǔn)確率。SENet 模塊由全局信息嵌入(Squeeze)和自適應(yīng)重新校準(zhǔn)(Excitation)兩部分組成,Squeeze 操作通過全局平均池化對每個特征圖進(jìn)行壓縮,得到一維的實(shí)數(shù)序列,相當(dāng)于獲得每個特征圖的全局信息,讓低層網(wǎng)絡(luò)也能利用全局信息。Excitation 操作引入兩個全連接層和非線性層捕捉通道的依賴關(guān)系,學(xué)習(xí)得到每個通道的權(quán)重。其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 SENet 網(wǎng)絡(luò)結(jié)構(gòu)
2.2.3 SE-YOLOv3算法
由于礦井上下班時間工人密集,一張圖像包含多個目標(biāo),使用YOLOv3 雖然實(shí)時性好但易造成一定的漏檢或者誤檢現(xiàn)象,準(zhǔn)確率較低。在YOLOv3中1*1 和3*3 卷積組合后會有一個殘差塊(Residual block),通過跳層連接可以融合多層特征,因此,選擇將SE 模塊嵌入到Y(jié)OLOv3 的殘差塊中作為注意力機(jī)制,在有效利用全局信息的同時提高檢測精度。由于YOLOv3包含23個殘差塊,如果在每個殘差塊中添加SE 塊會由于全連接層產(chǎn)生大量參數(shù)從而增加網(wǎng)絡(luò)計算量,而且根據(jù)原作者的經(jīng)驗(yàn)在網(wǎng)絡(luò)末端中加入SE 模塊對準(zhǔn)確率影響較?。?0],因此本文只在前11 個殘差塊中嵌入SE 模塊,在不增加大量參數(shù)的情況下彌補(bǔ)了淺層網(wǎng)絡(luò)提取特征能力弱的問題,增強(qiáng)了網(wǎng)絡(luò)的魯棒性。改進(jìn)前后的網(wǎng)絡(luò)結(jié)構(gòu)如圖5、6所示。
圖5 原YOLOv3結(jié)構(gòu)圖
圖6 進(jìn)的SE-YOLOv3結(jié)構(gòu)
通過在殘差塊中加入SENet模塊,輸入W*H*C尺寸的特征圖,其中W 是寬度,H 是高度,C 是通道數(shù),經(jīng)過全局平均池化后,會得到1*1*C 的特征圖。此后,通過第一個全連接層r倍降維,尺寸縮減為1*1*C/r,本文取r=16。通過ReLU 激活和第二個全連接層將尺寸恢復(fù)到1*1*C,在sigmoid激活函數(shù)后將尺寸縮減成為1*1*C 的權(quán)重值(0~1 之間),即每個通道的權(quán)重值。最后將權(quán)重與原始輸入特征圖相乘作為輸入到下一層,實(shí)現(xiàn)通道的重標(biāo)定。
YOLOv3 主要通過網(wǎng)絡(luò)提取圖像特征,需要從大量標(biāo)記樣本中學(xué)習(xí)人的特征,因此,有必要采用具有明顯特征的數(shù)據(jù)集,以便更好的學(xué)習(xí)特征表示。本次實(shí)驗(yàn)數(shù)據(jù)來源于煤礦井下不同攝像機(jī)拍攝角度、不同時間段工人乘坐猴車裝置監(jiān)控視頻,具有代表性。實(shí)驗(yàn)使用KBA127 礦用防爆型攝像機(jī)在三甲煤礦工人乘坐猴車處實(shí)時拍攝視頻,采集了上下班時間工人集中不同亮度的場景,將視頻數(shù)據(jù)按照每相鄰2幀截成8800張圖像數(shù)據(jù)集。
采集的數(shù)據(jù)集用圖像裁剪工具裁剪為320*320 尺寸,使用YOLO_Mark 標(biāo)注工具按照COCO 數(shù)據(jù)集標(biāo)注標(biāo)準(zhǔn)進(jìn)行手工標(biāo)注,標(biāo)注工人是否戴安全帽和安全距離內(nèi)的工人兩類,然后通過自適應(yīng)伽馬變換算法對不同光照條件下的圖像數(shù)據(jù)集進(jìn)行圖像增強(qiáng),增強(qiáng)后的圖像作為最終訓(xùn)練集。
本次實(shí)驗(yàn)環(huán)境配置:Ubuntu 14.04,處理器:Intel(R)Xeon(R)CPU E5-2698 v4 @ 2.20 GHz,GPU :NVIDIA Tesla K80,16GB 內(nèi)存。實(shí)驗(yàn)選取6600 張增強(qiáng)后的圖像作為訓(xùn)練集,其余2200 張作為測試集,對原YOLOv3 和SE-YOLOv3 都進(jìn)行訓(xùn)練,為了加快網(wǎng)絡(luò)的收斂速度、避免過擬合,初始學(xué)習(xí)率設(shè)置為0.0005,權(quán)重衰減系數(shù)設(shè)置為0.0005,當(dāng)訓(xùn)練迭代次數(shù)為2500 次時,將學(xué)習(xí)率設(shè)為0.0001,使損失函數(shù)進(jìn)一步收斂。
圖7 展示了檢測結(jié)果,其中圖7(a)組實(shí)驗(yàn)中原始YOLOv3 漏檢了兩名工人佩戴的安全帽,而圖7(b)組實(shí)驗(yàn)中改進(jìn)的YOLOv3 準(zhǔn)確地檢測出了漏檢的安全帽目標(biāo),圖7(c)組實(shí)驗(yàn)中原始YOLOv3 錯誤地將安全帽檢測為工人,安全距離內(nèi)的工人數(shù)量計為2,導(dǎo)致了錯檢,而圖7(d)組實(shí)驗(yàn)改進(jìn)的YOLOv3能正確地檢測出安全帽和乘坐猴車的工人,工人的數(shù)量計為1??梢?,原始YOLOv3 算法在礦井視覺條件差的背景下針對安全帽小目標(biāo)存在漏檢現(xiàn)象,甚至?xí)l(fā)生誤檢,檢測精度低,而改進(jìn)的YOLOv3算法可以有效地檢測出安全帽小目標(biāo),且能提高網(wǎng)絡(luò)的檢測精度。
圖7 實(shí)驗(yàn)結(jié)果
為進(jìn)一步驗(yàn)證改進(jìn)YOLOv3 算法在不以損失檢測速度為代價的前提下能夠有效提升檢測精度,選取準(zhǔn)確率(Precision)、召回率(Recall)和檢測速率(fps)為評估指標(biāo)對改進(jìn)的YOLOv3 算法進(jìn)行評價,其中準(zhǔn)確率表示在被所有預(yù)測為真目標(biāo)中實(shí)際為真目標(biāo)的概率,表征網(wǎng)絡(luò)整體的查準(zhǔn)率,召回率表示實(shí)際真目標(biāo)中被預(yù)測為真目標(biāo)的概率,表征網(wǎng)絡(luò)的查全率,檢測速率表示每秒內(nèi)網(wǎng)絡(luò)識別的幀數(shù),表征模型的實(shí)時性。表1 展示了YOLOv3 改進(jìn)前后在自制煤礦井下數(shù)據(jù)集上目標(biāo)檢測結(jié)果評價指標(biāo)的對比結(jié)果。
表1 改進(jìn)前后對比結(jié)果
從表1 可以看到通過將SE 模塊嵌入YOLOv3網(wǎng)絡(luò)中,與原始YOLOv3 相比,精確率和查全率分別提高了4.5%和3.6%,這是因?yàn)镾ENet 結(jié)構(gòu)通過通道權(quán)重重標(biāo)定抑制了無用特征,使淺層網(wǎng)絡(luò)也能擁有全局感受野,能夠獲取更豐富的特征信息表征圖像,從而使網(wǎng)絡(luò)學(xué)習(xí)到的信息更加全面。算法實(shí)時性方面,改進(jìn)的YOLOv3 算法檢測速度較原始的YOLOV3 算法有所降低,但嵌入的SE 模塊增加的額外計算時間較少,每秒仍達(dá)到42.54幀。
本研究針對目前工人現(xiàn)場或觀看視頻監(jiān)督煤礦井下承人裝置違規(guī)效率低,井下采集的視頻圖像亮度不均勻問題,詳細(xì)介紹了自適應(yīng)伽馬變換與改進(jìn)YOLOv3 算法相結(jié)合的違規(guī)檢測方法。首先通過自適應(yīng)伽馬變換調(diào)整圖像亮度一致;然后在YOLOv3 網(wǎng)絡(luò)中嵌入了SENet 網(wǎng)絡(luò)模塊作為注意力機(jī)制,來選擇性地強(qiáng)調(diào)重要特征,提高了整個網(wǎng)絡(luò)的表示能力;最后在標(biāo)注的數(shù)據(jù)集上進(jìn)行訓(xùn)練和測試。實(shí)驗(yàn)結(jié)果表明,本文所提算法準(zhǔn)確率達(dá)到了94.6%,幀率達(dá)到42.54fps,在實(shí)時檢測違規(guī)現(xiàn)象的基礎(chǔ)上,有效提升了煤礦井下承人裝置違規(guī)檢測任務(wù)的精度,增強(qiáng)了煤礦智能化水平,從而達(dá)到減員增效、降低生產(chǎn)成本的目的。