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

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

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