曹玉超,范偉強(qiáng)
(中國(guó)礦業(yè)大學(xué)(北京)機(jī)電與信息工程學(xué)院,北京 100083)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,圖像識(shí)別技術(shù)越來越受到關(guān)注,圖像識(shí)別水災(zāi)具有諸多優(yōu)點(diǎn):① 非接觸,減少因?yàn)樗鬟\(yùn)動(dòng)、水質(zhì)、泥沙對(duì)傳感器設(shè)備的破壞;② 可視化,可以在井上實(shí)時(shí)查看水位情況,及時(shí)排除誤報(bào)影響;③ 復(fù)用性高,不用單獨(dú)布置設(shè)備,可以采用井下已有攝像頭進(jìn)行監(jiān)測(cè);④ 可靠性高,攝像設(shè)備安裝在防爆殼體內(nèi),不易受到礦井潮濕環(huán)境影響。為此,筆者提出一種基于殘差神經(jīng)網(wǎng)絡(luò)的礦井水位標(biāo)尺刻度識(shí)別方法。
殘差連接的思想起源于中心化,將輸入數(shù)據(jù)減去均值進(jìn)行中心化轉(zhuǎn)化,能加速系統(tǒng)的學(xué)習(xí)速度。文獻(xiàn)[12]通過跳層連接(shortcut connection)分別將輸入層,隱藏層單元激活值,梯度誤差和權(quán)重更新中心化,大大提升了梯度下降算法的訓(xùn)練速度。文獻(xiàn)[13]研究了在各種不同配置下,shortcut connections能提高隨機(jī)梯度下降算法的學(xué)習(xí)能力和模型的泛化能力,并在圖像分類和重構(gòu)任務(wù)上進(jìn)行了實(shí)驗(yàn)。文獻(xiàn)[14]首次明確的提出了殘差網(wǎng)絡(luò)結(jié)構(gòu)(Residual Neural Network),解決了深度神經(jīng)網(wǎng)絡(luò)中產(chǎn)生的退化問題。文獻(xiàn)[15-16]實(shí)驗(yàn)驗(yàn)證了深層網(wǎng)絡(luò)訓(xùn)練完成后隨機(jī)去除某些層,網(wǎng)絡(luò)性能不會(huì)有太多的退化。文獻(xiàn)[17]深入的闡明了shortcut connections對(duì)訓(xùn)練深度網(wǎng)絡(luò)的影響,模型的不可識(shí)別所造成的奇異性是訓(xùn)練深度網(wǎng)絡(luò)的最大瓶頸,進(jìn)而降低學(xué)習(xí)效率,shortcut connections能有效的消除這些奇異性,從而加快學(xué)習(xí)效率。但是這些算法對(duì)于神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)深度對(duì)整體識(shí)別效果影響卻沒有研究,識(shí)別率不能隨著網(wǎng)絡(luò)的加深而無(wú)限制提高,在特定數(shù)量的數(shù)據(jù)集上,具有最優(yōu)的網(wǎng)絡(luò)層數(shù),過多的網(wǎng)絡(luò)層數(shù)會(huì)導(dǎo)致參數(shù)訓(xùn)練不充分,進(jìn)而導(dǎo)致網(wǎng)絡(luò)性能退化,網(wǎng)絡(luò)層數(shù)過少會(huì)出現(xiàn)過擬合現(xiàn)象,識(shí)別率降低。為此,筆者研究了不同深度算法對(duì)井下水位標(biāo)尺刻度目標(biāo)的識(shí)別率的影響。
圖像的目標(biāo)檢測(cè)效果與深度學(xué)習(xí)網(wǎng)絡(luò)的深度密切相關(guān),但并不是網(wǎng)絡(luò)層次越深,識(shí)別率越高。對(duì)淺層網(wǎng)絡(luò)的優(yōu)化無(wú)法明顯提升識(shí)別效果情況下,越來越多的學(xué)者開始研究深層次網(wǎng)絡(luò),但是單純堆疊加深網(wǎng)絡(luò)時(shí),梯度消失(在神經(jīng)網(wǎng)絡(luò)中,當(dāng)前面隱藏層的學(xué)習(xí)速率低于后面隱藏層的學(xué)習(xí)速率,即隨著隱藏層數(shù)目的增加,分類準(zhǔn)確率反而下降的現(xiàn)象叫做梯度消失)現(xiàn)象越來越明顯,很容易影響識(shí)別效果,殘差神經(jīng)網(wǎng)絡(luò)能很好的解決梯度消失的問題。
如圖1所示兩層網(wǎng)絡(luò)結(jié)構(gòu),對(duì)于第1層網(wǎng)絡(luò),假設(shè)a[l]為第1層神經(jīng)網(wǎng)絡(luò)輸入,a[l+1]為經(jīng)過第1層神經(jīng)網(wǎng)絡(luò)之后的輸出,w[l+1]為第1層神經(jīng)網(wǎng)絡(luò)的權(quán)重,b[l+1]為第1層神經(jīng)網(wǎng)絡(luò)的偏置,則有
z[l+1]=w[l+1]a[l]+b[l+1]
(1)
a[l+1]=g(z[l+1])
(2)
式中,z[l+1]為輸入經(jīng)過第l+1層后沒有進(jìn)入激活函數(shù)之前的輸出值。
圖1 殘差網(wǎng)絡(luò)結(jié)構(gòu)示意
對(duì)于第2層則有
z[l+2]=w[l+2]a[l+1]+b[l+2]
(3)
a[l+2]=g(z[l+2])
(4)
按照如圖1所示的short cut短連接,則有
a[l+2]=g(z[l+2]+a[l])
(5)
a[l+2]=g(w[l+2]a[l+1]+b[l+2]+a[l])
(6)
假設(shè)在大型網(wǎng)絡(luò)的輸出激活值
g(a[l])=a[l]
(7)
如果w[l+2]趨近于0,b[l+2]趨近于0,則
a[l+2]=g(a[l])=a[l]
(8)
如圖1所示,由于shortcut存在,輸入可以直接傳遞到后面的層,信息的完整性得以增強(qiáng)和保護(hù),使得深層網(wǎng)絡(luò)可以學(xué)習(xí)這些特征,避免了傳統(tǒng)的卷積層在傳遞信息時(shí),隨著網(wǎng)絡(luò)層次的加深,信息丟失或是損耗。
以R-CNN[18]為代表的候選區(qū)域(region proposal)方法,將檢測(cè)過程分為2步,首先找到候選框,區(qū)分圖像中的目標(biāo)與背景,然后將候選框進(jìn)行分類識(shí)別。Fast R-CNN[19]對(duì)損失函數(shù)進(jìn)行了改進(jìn),使用了多任務(wù)損失函數(shù),CNN網(wǎng)絡(luò)訓(xùn)練中直接添加了邊框回歸,雖然識(shí)別效果提升,但是訓(xùn)練和測(cè)試速度仍然很慢,F(xiàn)aster R-CNN[20]改進(jìn)了建議框的產(chǎn)生方式,采用卷積網(wǎng)絡(luò)使得建議框數(shù)量大幅減少,檢測(cè)效率大幅提升,但是和以YOLO[21-23]為代表的端到端的回歸分析相比,在速度表現(xiàn)方面差強(qiáng)人意。雖然YOLO的檢測(cè)速率較高,但是對(duì)小目標(biāo)的檢測(cè)精確度很低。據(jù)此,筆者設(shè)計(jì)了1種241層殘差神經(jīng)網(wǎng)絡(luò),用以檢測(cè)煤礦水位標(biāo)尺圖像,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,網(wǎng)絡(luò)由31個(gè)殘差塊構(gòu)成,分別在第1,2,12,12,4個(gè)殘差塊進(jìn)行步長(zhǎng)為2的下采樣,并分別加入1個(gè)padding層,1個(gè)卷積層,1個(gè)BN(Batch Normalliziton)層,1個(gè)Relu層,每個(gè)殘差塊由2個(gè)卷積層,2個(gè)BN層,2個(gè)Relu層,1個(gè)Residual層共7層組成,殘差神經(jīng)網(wǎng)絡(luò)可以保證隨著網(wǎng)絡(luò)深度的加深,梯度不會(huì)消失。由于本文探測(cè)目標(biāo)尺度較小,所以需要在較小的尺度下訓(xùn)練和識(shí)別,筆者分別在120層、208層引出張量和第240層進(jìn)行融合,第120層卷積層張量的網(wǎng)格尺度為52×52,第208層卷積層的張量的網(wǎng)格尺度為26×26,第241層張量的網(wǎng)格尺度為13×13,網(wǎng)格劃分越小對(duì)小物體的檢測(cè)能力越好。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)
預(yù)測(cè)特征圖如圖3所示,每1個(gè)filter負(fù)責(zé)預(yù)測(cè)在特定尺度下目標(biāo)的信息,共有1 792(256+512+1 024)個(gè)filter組成的特征圖表示了在待檢測(cè)特征圖中待檢測(cè)的目標(biāo)的數(shù)量,目標(biāo)的分類,目標(biāo)的中心參數(shù),目標(biāo)的大小參數(shù)等關(guān)鍵信息。
圖4為刻度目標(biāo)識(shí)別的原理:刻度識(shí)別的任務(wù)分為3個(gè)層級(jí),首先需要在待檢測(cè)的圖像中確定刻度目標(biāo)的位置參數(shù),其次需要確定刻度目標(biāo)的形狀參數(shù),然后確定刻度目標(biāo)的所屬類別。將待測(cè)圖像按照網(wǎng)格劃分,通過卷積層不斷的提取參數(shù)。圖4中,tx,ty為刻度目標(biāo)的中心位置參數(shù);tw,th為形狀參數(shù);c1為左刻度的置信度;c2為右刻度的置信度;p0為是探測(cè)物體前景而不是背景的概率。
圖3 特征向量
圖4 檢測(cè)原理
模型預(yù)測(cè)目標(biāo)和真實(shí)值之間的關(guān)系可以用損失函數(shù)表述,本文采如式(9)所示的損失函數(shù)Loss。
(9)
筆者采用python編程,在Intel i7、十六核1.8 GHz、內(nèi)存32 G、顯卡GTX1080TI、64位ubuntu16.04操作系統(tǒng)上進(jìn)行了模型的訓(xùn)練與調(diào)整,訓(xùn)練數(shù)據(jù)集圖像來自神華寧夏煤業(yè)集團(tuán)有限責(zé)任公司雙馬煤礦43煤輔用巷道,由1 000張960×544像素jpg格式圖片構(gòu)成,為了關(guān)注時(shí)間和空間的關(guān)聯(lián)性,測(cè)試數(shù)據(jù)集由視頻幀按照時(shí)間順序逐幀分割為連續(xù)的100張圖像組成。
如圖5所示,模型的損失值從第3次開始迅速變小,到第100次左右開始走向平穩(wěn),在訓(xùn)練模型中,模型的優(yōu)劣與迭代次數(shù)密切相關(guān),但并不是迭代次數(shù)越多模型越好,訓(xùn)練次數(shù)越多時(shí),容易導(dǎo)致過擬合的出現(xiàn),需要對(duì)訓(xùn)練出來的模型進(jìn)行評(píng)估調(diào)整,混淆矩陣(con fusion matrix)是判斷分類器好壞的重要指標(biāo),見表1。
左側(cè)刻度的識(shí)別率Preleft可以記為
(10)
式中,Aleft為測(cè)試集左刻度檢測(cè)正確的個(gè)數(shù)(模型計(jì)算出來的IOU與閾值比較,如果大于閾值記為正確檢測(cè)的個(gè)數(shù));Bleft為測(cè)試集實(shí)際左刻度的個(gè)數(shù),同樣的右側(cè)刻度識(shí)別率可以計(jì)為
圖5 損失值Loss隨迭代次數(shù)的變化曲線
表1 混淆矩陣
(11)
式中,N為個(gè)數(shù)。
則平均識(shí)別率mAP:
(12)
召回率Recall表示樣本中的正例被預(yù)測(cè)正確的比例:
Recall=TP/(TP+FN)
(13)
f1[24]值如下:
f1=2×mAP×Recall/(mAP+Recall)
(14)
圖像識(shí)別效果如圖6所示。
圖6 識(shí)別效果
不同置信度閾值下識(shí)別率、召回率、f1值如圖7所示,圖7(a),(b)為左、右刻度在不同置信度閾值下識(shí)別率、召回率、f1值,圖7(c)為識(shí)別率、召回率、f1值的平均值。在置信度0.1,0.2附近整體的識(shí)別率都較低,隨著閾值增長(zhǎng),左刻度的召回率逐漸升高,右刻度先升高然后降低,降幅較大,所以平均召回率趨勢(shì)下降較大,左刻度的識(shí)別率在0.4閾值處較大,右刻度的識(shí)別率隨著閾值的增大逐漸增大,f1值在3幅圖中都是先增大后減小,按照識(shí)別率>召回率>f1值順序可以看出在閾值0.4附近,識(shí)別率最高為97%,召回率最高為96%,f1值最高為97%。預(yù)測(cè)張量含有所有邊界框的信息,低于閾值的邊界框的相應(yīng)向量值被置位為0,所以隨著置信度的提高,一些比較低可能性的目標(biāo)被篩選出去,所以TP和FP的值會(huì)逐漸變小,根據(jù)式(10),以左側(cè)為例:如果TP為固定值,隨著FP變小,Preleft逐漸變大;如果FP為固定值,隨著TP的變小,Preleft會(huì)逐漸小。根據(jù)本文實(shí)驗(yàn),在參數(shù)0.4的時(shí)候識(shí)別率最高。
圖7 不同置信度閾值下的識(shí)別率、召回率、f1值
為了驗(yàn)證本文網(wǎng)絡(luò)結(jié)構(gòu)的性能,筆者分別對(duì)其他幾種深度網(wǎng)絡(luò)進(jìn)行了實(shí)驗(yàn),分別為RN59(59層殘差網(wǎng)絡(luò)),RN87(87層殘差網(wǎng)絡(luò)),RN129(129層殘差網(wǎng)絡(luò)),RN297(297層殘差網(wǎng)絡(luò))。圖8(b)為第2~52輪訓(xùn)練損失值,圖8(c)為第950~1 000輪損失值。隨著網(wǎng)絡(luò)層數(shù)的加深,訓(xùn)練損失值減少的速度放緩,其中RN59,損失值下降速度最快,RN297為最慢。在1 000輪左右損失值平穩(wěn)性如圖8(c)所示,RN297的振幅較大,最大振幅達(dá)到21,本文算法和其他2種網(wǎng)絡(luò)深度算法表現(xiàn)較好,損失值穩(wěn)定在17左右。
圖8 不同網(wǎng)絡(luò)深度的Loss損失值
網(wǎng)絡(luò)深度是指神經(jīng)網(wǎng)絡(luò)的層數(shù),神經(jīng)網(wǎng)絡(luò)的層數(shù)越多,深度越深。圖9表示不同網(wǎng)絡(luò)深度在不同的置信度閾值下的識(shí)別率、召回率、f1值。圖9(a),9(b),9(c)表示左刻度的識(shí)別率、召回率、f1值,本文算法在置信度0.4時(shí)最大分別可以達(dá)到94%,99%,97%;圖9(d),9(e),9(f)表示右刻度的識(shí)別率、召回率、f1值,本文算法在置信度0.4時(shí)最大分別可以達(dá)到99%,92%,97%。圖9(g),9(h),9(i)為平均識(shí)別率、平均召回率、平均f1值,本文算法在置信度0.4時(shí)最大分別可以達(dá)到97%,96%,97%??梢钥闯觯R(shí)別率并不能隨著網(wǎng)絡(luò)的加深而無(wú)限制提高,深層網(wǎng)絡(luò)會(huì)帶來梯度不穩(wěn)定,彌散,進(jìn)而導(dǎo)致網(wǎng)絡(luò)退化,雖然可以通過一定的方法進(jìn)行優(yōu)化,但卻沒辦法從根本上消除。網(wǎng)絡(luò)加深反而會(huì)導(dǎo)致性能開始下降。加深的模型導(dǎo)致某些淺層的學(xué)習(xí)能力下降,限制了深層網(wǎng)絡(luò)的學(xué)習(xí),識(shí)別率反而下降。
3.3.1PR曲線分析
圖10表示不同網(wǎng)絡(luò)深度的PR曲線,圖10(a)表示左刻度的PR曲線,圖10(b)表示左刻度召回率在0.1~0.9放大的PR曲線??梢钥闯霰疚牟捎玫木W(wǎng)絡(luò)深度算法的PR曲線在所有曲線的最上方,性能優(yōu)于其他網(wǎng)絡(luò)深度;圖10(c)表示右刻度的PR曲線,圖10(d)表示右刻度召回率在0.1~0.9放大的PR曲線,本文采用的網(wǎng)絡(luò)深度的算法雖然在召回率0.7~0.9時(shí)的識(shí)別率低于RN297和RN59,但是在其他召回率期間性能表現(xiàn)較好。
圖9 不同網(wǎng)絡(luò)深度的識(shí)別率
圖10 不同網(wǎng)絡(luò)深度的PR曲線分析
3.3.2ROC曲線分析
圖11為本文采用的網(wǎng)絡(luò)深度的算法和其他幾種網(wǎng)絡(luò)深度的ROC(受試者工作特征曲線,Receiver Operating Characteristic Curve,簡(jiǎn)稱ROC曲線)曲線對(duì)比,橫軸為FPR(False Positive Rate),縱軸為TPR(True Positive Rate),越靠近左上角的ROC曲線性能越好,此時(shí),假陽(yáng)性和假陰性的總數(shù)最少。可以看出本文網(wǎng)絡(luò)深度算法的ROC曲線的性能均優(yōu)于其他曲線的性能,表現(xiàn)最好,其次為RN87,RN129表現(xiàn)最差。
圖11 不同網(wǎng)絡(luò)深度的ROC分析
圖12 不同算法的性能比較
圖13 耗時(shí)對(duì)比
為了分析算法的性能,筆者選取了其他幾種常見的算法進(jìn)行比較,參與比較的算法有YOLOv3-k-101[25],YOLOv3-Big-Object[26],small-OD[27],CMNet[28],如圖12所示,本文算法在置信度閾值0.4時(shí)的識(shí)別率最高為97%,召回率為96%,f1值為97%,均優(yōu)于其他算法。
圖13為本文算法與其他算法的時(shí)間比較,可以看出整個(gè)的訓(xùn)練時(shí)間要比測(cè)試時(shí)間高出1個(gè)數(shù)量級(jí),這是因?yàn)樵谟?xùn)練階段需要計(jì)算Loss值,并利用反向傳播更新卷積層的權(quán)值參數(shù),所以耗費(fèi)時(shí)間較大。而網(wǎng)絡(luò)結(jié)構(gòu)的增大會(huì)相應(yīng)的增大訓(xùn)練時(shí)間,但是相對(duì)于性能的提升,時(shí)間的開銷可以容忍。圖13(a),(b)分別為本文算法相對(duì)于其他算法的訓(xùn)練時(shí)間和測(cè)試時(shí)間比較,可以看到本文算法在訓(xùn)練時(shí)間開銷上僅次于CMNet,測(cè)試時(shí)間比較長(zhǎng)大約為47 ms。
(1)建立了一種基于殘差神經(jīng)網(wǎng)絡(luò)的礦井水位標(biāo)尺刻度識(shí)別方法,采集工作面和巷道水位標(biāo)尺圖像,將圖像刻度中心位置參數(shù),形狀大小參數(shù),刻度分類提取為特征向量,通過殘差神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,當(dāng)網(wǎng)絡(luò)訓(xùn)練穩(wěn)定后,將待檢測(cè)圖像進(jìn)行相同的操作得到特征向量,將特征向量解析為圖像刻度目標(biāo)的關(guān)鍵信息,實(shí)現(xiàn)水位標(biāo)尺的刻度檢測(cè)。
(2)針對(duì)不同的網(wǎng)絡(luò)深度進(jìn)行了實(shí)驗(yàn),比較了不同深度下訓(xùn)練階段的損失值下降速率和穩(wěn)定性、平均識(shí)別率、f1值、PR曲線、ROC曲線、訓(xùn)練耗時(shí)、測(cè)試耗時(shí)。
(3)實(shí)驗(yàn)驗(yàn)證了不同的置信度閾值對(duì)識(shí)別率的影響,低閾值情況下,張量預(yù)測(cè)有效邊界框變多,同時(shí)判斷為負(fù)樣本概率增加,導(dǎo)致識(shí)別率較低。隨著閾值增高,處理張量有效邊界框變少,整體預(yù)測(cè)樣本數(shù)量變少,判斷為負(fù)樣本的概率降低,識(shí)別率增加。置信度到達(dá)一定閾值,負(fù)樣本數(shù)量開始對(duì)識(shí)別率影響加大,導(dǎo)致識(shí)別率降低。本文實(shí)驗(yàn)在置信度0.4閾值處具有最高識(shí)別率97%。
(4)通過與YOLOv3-k-101,YOLOv3-Big-Object,small-OD,CMNet算法進(jìn)行比較,本文在時(shí)間開銷略多情況下,性能明顯提升。