文/劉劍鋒 苗林
煙霧污染一直是國(guó)內(nèi)外聚焦的重要環(huán)境問(wèn)題之一,目前煙霧排放的檢測(cè)主要靠人力,無(wú)論是成本還是效果都不理想,而卷積神經(jīng)網(wǎng)絡(luò)適合處理此類(lèi)問(wèn)題。
近年來(lái),深度學(xué)習(xí)的理論知識(shí)和應(yīng)用技術(shù)快速發(fā)展,其中卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)作為重要組成部分,能以較小的計(jì)算量提取特征中包含的大部分有效信息,適用于圖像處理領(lǐng)域。
卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)包括輸入層、卷積層、池化層、全連接層和輸出層,對(duì)網(wǎng)絡(luò)逐層分析:
(1)輸入層輸入圖片I 。
(2)卷積層對(duì)應(yīng)卷積操作,圖像以矩陣X的形式輸入,在卷積層中與參數(shù)矩陣W做卷積操作,其中W由n個(gè)卷積核w和偏置b構(gòu)成,通過(guò)式(1)計(jì)算得到下一層數(shù)據(jù)。卷積層作用是提取圖像特征。

(3)激活函數(shù)加入非線性因素,單純的卷積不能處理非線性問(wèn)題。
(4)池化層有縮小卷積層輸出信息的作用,既能簡(jiǎn)化網(wǎng)絡(luò)計(jì)算復(fù)雜度,也能壓縮提取圖像的主要特征。池化層主要有兩個(gè)方法,平均值池化以目標(biāo)區(qū)域的平均值作為該區(qū)域池化后的值,最大值池化以區(qū)域的最大值作為池化后的值。
(5)全連接層在卷積神經(jīng)網(wǎng)絡(luò)中有分類(lèi)器的作用,將特征空間中的特征參數(shù)映射到樣本的標(biāo)記空間中。在實(shí)際操作中,全連接層可以通過(guò)全局卷積操作來(lái)實(shí)現(xiàn),卷積核大小與前一層輸出圖像矩陣的大小相同。將圖像展平后輸入到全連接層運(yùn)算得到分類(lèi)結(jié)果,在輸出層輸出。

表1:網(wǎng)絡(luò)設(shè)置
局部感知和權(quán)值共享兩種方法都可以減少神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)目。局部感知使每個(gè)神經(jīng)元只需感受局部的圖像區(qū)域,然后在更高層綜合局部的信息來(lái)得到全局信息,不需要對(duì)每個(gè)像素進(jìn)行連接。權(quán)值共享令每個(gè)神經(jīng)元都使用相同的偏置和權(quán)值,極大地減少了模型訓(xùn)練參數(shù)的數(shù)量。
網(wǎng)絡(luò)的訓(xùn)練是求解參數(shù)的過(guò)程,每個(gè)訓(xùn)練樣本都包括一個(gè)輸入對(duì)象和一個(gè)理想輸出值(標(biāo)簽)。訓(xùn)練主要包括2個(gè)階段:
(1)前向傳播:初始化網(wǎng)絡(luò)參數(shù),假設(shè)樣本為(x,y),將x從網(wǎng)絡(luò)的輸入層輸入,對(duì)x進(jìn)行多層非線性變換等計(jì)算,最終得到對(duì)應(yīng)輸出y′,并在輸出層輸出。
(2)反向傳播:首先計(jì)算代價(jià)函數(shù)(cost function),即理想輸出值y′與實(shí)際輸出值y之間的誤差。以誤差最小化為目的進(jìn)行優(yōu)化,計(jì)算代價(jià)函數(shù)對(duì)各層參數(shù)的梯度,采用梯度下降等方法來(lái)不斷實(shí)現(xiàn)權(quán)值和梯度的調(diào)整,并更新訓(xùn)練參數(shù)。
對(duì)樣本圖片進(jìn)行裁剪和壓縮,保存為128*72大小。對(duì)所有圖片分類(lèi)和標(biāo)記,有煙霧濃度高和煙霧濃度低兩類(lèi),保留RGB三個(gè)通道。
抽取樣本圖片轉(zhuǎn)換成矩陣后傳入神經(jīng)網(wǎng)絡(luò)。
依次通過(guò)三個(gè)卷積層和池化層的組合,卷積層過(guò)濾器的尺寸都設(shè)置為3*3,步長(zhǎng)為1,深度分別為32、64和64,使用ReLU函數(shù)作為激活函數(shù)。池化層過(guò)濾器的大小設(shè)置為2*2,使用全0填充。
全連接層設(shè)置1024個(gè)神經(jīng)元。最后使用Softmax回歸對(duì)數(shù)據(jù)進(jìn)行二分類(lèi)。得到包含兩個(gè)概率值的一維數(shù)組,比較大小判斷圖像的煙霧濃度屬于哪一級(jí)別。
網(wǎng)絡(luò)的具體配置,如表1所示。
使用Softmax交叉熵?fù)p失函數(shù),采用隨機(jī)梯度下降法。為防止過(guò)擬合,丟棄0.05的訓(xùn)練數(shù)據(jù)。
每批次圖片訓(xùn)練完后,再傳入一定量圖片進(jìn)行測(cè)試,準(zhǔn)確率達(dá)到預(yù)設(shè)值后停止訓(xùn)練,否則再次訓(xùn)練。
預(yù)測(cè)的網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練時(shí)一樣,見(jiàn)表1,傳入同樣大小的煙霧圖像,得到圖像煙霧濃度的預(yù)測(cè)值。
本文主要介紹了卷積神經(jīng)網(wǎng)絡(luò)在圖像煙霧濃度檢測(cè)上的應(yīng)用,所給出的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)必定不是最佳方案,只是一個(gè)基本框架。在本文基礎(chǔ)上,可以對(duì)模型進(jìn)行擴(kuò)充,煙霧濃度的級(jí)別可以擴(kuò)充,圖像處理也可擴(kuò)展為視頻處理,從而達(dá)到實(shí)時(shí)監(jiān)控的效果。