本發明屬于圖像處理技術領域中,具體涉及一種基于深度殘差學習網絡的柴油車尾氣煙度檢測方法。
背景技術:
隨著中國城市化建設的推進,機動車的保有量也越來越多,同時,機動車尾氣對于城市空氣的污染也更加嚴重,所以對機動車尾氣污染治理刻不容緩。治理的前提是對機動車尾氣的排放情況有充分的了解,所以勢必需要一種能夠對機動車尾氣進行快速而又準確的檢測技術。柴油發動機功率大、經濟性能好,是城市建設中不可缺少的動力,隨之而來的大量的柴油車尾氣污染。重型柴油車因為排放的氮氧化物、顆粒物數量遠遠高于輕型車,更是大氣污染的重要貢獻者。
傳統方法中,對柴油車尾氣的煙度檢測手段主要是林格曼黑度望遠鏡和煙度計。林格曼黑度望遠鏡采用雙目棱鏡望遠系統,在望遠鏡劃分板上制有相應林格曼煙度濃度圖1-5級的灰度階梯塊,全透明部分則為0級。觀測者通過望遠鏡左側目鏡將煙塵目標與該級灰度梯度塊比較,從而測定煙氣黑度標準等級。煙度計分為采樣部分和測量部分。采樣部分是采樣氣筒抽取尾氣管中一定體積的煙氣,使它通過一張一定面積的白色濾紙,于是排氣中的煙塵顆粒物就粘附在濾紙上而使濾紙變黑,然后利用光電檢測裝置測量濾紙上煙痕的吸光率來評定為柴油機的排氣煙度。上述方法可以在一定程度上測量柴油車尾氣的煙度級別,然而在實踐中具有很大的應用局限:首先,由于需要大量的人工參與,降低了檢測速率,提高了檢測成本,并且為作弊行為提供了較大的可能;然后,由于需要對尾氣進行采樣,所以無法實現車輛的在線檢測,也就是說,無法反映車輛正常行駛的情況下的排放狀況。
專利號CN102737247A中使用了圖像識別系統對柴油車尾氣煙度進行測量。其采用傳統的圖像處理的方法,步驟如下:1)收集圖像,根據柴油車尾氣的特征將圖像中的目標尾氣進行檢測、分割、提取,并選擇最佳的幾幀圖像;2)將提取后圖像的目標區域分別與背景區域進行相減操作,然后對相減后得到的目標區域進行濾波和填充處理;3)計算處理后的目標區域的平均灰度值(或:最大最小灰度值),并且以此作為參考,與標準庫中的黑度級別進行對比,從而給出尾氣相應的黑度級別。其明顯的缺點是:需要對尾氣圖像中目標區域進行一系列的操作,步驟比較繁瑣;更為關鍵的是,每一步操作(如閾值分割)的準確性都會收到周圍環境(如光照、霧霾)的影響,從而導致檢測的不準確性甚至失效。以上說明該發明不具備對環境變化的魯棒性。
隨著層數的增加,深度神經網絡會變得越來越難以訓練,梯度消失或者梯度爆炸問題都會阻止網絡達到收斂狀態,并且網絡性能并不一定隨著網絡層數的增加而提升。深度殘差學習則可以解決深層網絡的性能降低問題。相比于普通的深度神經網絡,它更容易優化;隨著層數的增多,它的性能表現逐漸提升,并且它具有足夠的泛化能力。
就網絡層數的選取來說1到100層都是,可以的,但是對于柴油車尾氣煙度檢測這個問題,層數太少使深度殘差學習網絡的精度不夠高,層數太多在訓練過程中需要耗費大量的成本。關于柴油車尾氣煙度檢測,構建20層深度殘差學習網絡具有最優性能,所以本發明中構建的是20層深度殘差學習網絡。
技術實現要素:
本發明技術解決問題:克服現有技術的不足,提出一種基于深度殘差學習網絡的柴油車尾氣煙度檢測方法,具有較高的檢測精度。
本發明的技術方案如下:
1、獲取道路柴油車尾氣圖像。
1.1)在選定的路段用CCD攝像機對經過的柴油車進行尾氣視頻記錄。
1.2)利用圖像采集卡從記錄的視頻中抽取出有含有柴油車尾氣的圖像,將這些圖像按照75%、10%、15%的比例分成訓練集,驗證集和測試集。
2、獲取深度殘差學習網絡的標簽
在選定的路段中用汽柴一體化機動車尾氣遙測裝置直接測量柴油車的尾氣煙度,獲取柴油車尾氣圖像中車輛的尾氣煙度,將其作為相應柴油車尾氣圖像的標簽,柴油車尾氣圖像和相應的標簽構成柴油車尾氣煙度數據集;
3、深度殘差學習網絡的構建
該網絡包含一個普通卷積層conv1、一個池化層pool1,八個殘差學習單元convr11、convr12—convr81、convr82,一個平均池化層AvgPool9,一個全連接層Fc10。
conv1的卷積核大小為7*7,convr11、convr12—convr81、convr82的卷積核大小為3*3,八個殘差學習單元中的每一個包含兩個殘差卷積層,例如convr11、convr12構成一個殘差學習單元,convr21、convr22構成一個殘差學習單元。每個殘差學習單元的輸入不僅包含上一個殘差學習單元的輸出,還包含上一個殘差學習單元的輸入,這也就構成了跨層連接的輸入輸出方式。例如convr21的輸入包括convr12的輸出和convr11的輸入,convr31的輸入包括convr22的輸出和convr21的輸入。
普通卷積層conv1的輸入為經過預處理的圖像,普通卷積層conv1的輸出作為池化層pool1的輸入,池化層pool1的輸出為第一個殘差學習單元中convr11的輸入,殘差學習單元之間按照跨層連接的輸入輸出方式傳遞數據。平均池化層AvgPool9的輸入包括convr82的輸出和convr81的輸入,全連接層Fc10的輸入是平均池化層AvgPool9的輸入。
普通卷積層conv1的作用是學習全局性特征,池化層pool1的作用是降低卷積層輸出的特征向量,同時改善結果,降低過擬合出現的可能性。八個殘差學習單元的作用是學習特征的同時提高精度,平均池化層AvgPool9的作用是對這一層的輸入進行降采樣操作。最后一個全連接層Fc10構成一個20分類器,對輸入的柴油車尾氣煙度圖像分類。
4、深度殘差學習網絡的訓練,驗證和測試。
4.1)深度殘差學習網絡構建完成之后,對柴油車尾氣煙度數據集中進行預處理,具體包括對數據集中的柴油車尾氣圖像進行尺度增強、隨機采樣和減像素均值操作。
4.2)將預處理后的圖像作為深度殘差學習網絡的輸入進行訓練,同時對驗證集進行過擬合檢查,即判斷深度殘差學習網絡對驗證集圖像處理的損失函數是否呈現先下降,后反而上升的現象,當驗證集的損失函數不再下降時候,即可暫時停止訓練。將預處理后的測試集圖像作為訓練終止后的深度殘差學習網絡的輸入,將此時網絡的輸出與步驟2中的標簽值進行比較,若測試集精度超過99%,則訓練完成,否則,繼續訓練。
5、對于沒有安裝汽柴一體化機動車尾氣遙測裝置的路段,在道邊布設CCD攝像機以獲取柴油車尾氣圖像,并輸入到訓練完成的深度殘差學習網絡中,從而實現對柴油車尾氣煙度的檢測。
本發明與現有技術相比優點在于:
(1)本發明提出一種深度殘差學習網絡,將其運用到柴油車尾氣煙度測量中,比于普通的深度神經網絡,它更容易優化,并且隨著層數的增多,它的性能表現逐漸提升。相比較于專利號CN102737247A中直接使用圖像處理對柴油機煙度進行測量的方法,使用的深度殘差學習網絡,不必對視頻圖像進行煙霧區域的分割和提取,能夠保證圖像的全局性,提高了檢測的準確率,同時具有更強的泛化能力。
(2)本發明涉及一種基于深度殘差學習的柴油車尾氣煙度檢測,相比于傳統的林格曼黑度望遠鏡和煙度計,可以對道路上行駛的車輛進行在線監測,不會對交通產生影響,節約了人力物力,并且避免了檢測過程中作弊現象的發生。
附圖說明
圖1為本發明的深度殘差學習網絡測量柴油機煙度圖;
圖2為本發明的殘差學習單元殘差學習單元;
圖3為本發明的20層深度殘差學習網絡;
圖4為本發明跨層連接沒有卷積操作圖。
具體實施方式
如圖1所示,本發明具體實施步驟如下:
1.在道路的一邊兩旁架設CCD高速攝像。
1.1)CCD攝像機對柴油車尾氣視屏進行記錄。它將被攝物體反射光線傳播到鏡頭,再經鏡頭聚焦到CCD芯片上,CCD根據光的強弱積聚相應比例的電荷,各個像素積累的電荷在視屏時序的控制下點外移,經過濾波、放大處理后,形成視屏信號輸出。視頻信號連接到監視器的視頻輸入端便可以看到與原始圖像相同的視頻圖像。
1.2)用圖像采集卡將圖像信息采集到電腦中。將CCD攝像機記錄的視頻圖像可以經過圖像采集卡傳輸到電腦上,將這些圖像按照75%、10%、15%的比例分成三個部分,作為深度學習的訓練集,驗證集和測試集。具體做法是將采集到的100萬張柴油車尾氣圖片分成了訓練集(750000張共20類)、驗證集和測試集(共150000張20類),每個類別放在一個單獨的文件夾里。并且將所有的圖像,都生成了txt列表清單(train.txt和test.txt)。為之后的網絡訓練做準備。
1.3)對于深度殘差網絡的訓練本發明一般都是在caffe下進行的,所以在訓練之前本發明做如下操作。
1.3.1)圖片準備:將采集到的100萬張柴油車尾氣圖片分成了訓練集(750000張共20類)、驗證集(100000張)和測試集(共150000張20類),每個類別放在一個單獨的文件夾里。并且將所有的圖片,都生成了txt列表清單(train.txt和test.txt)。為之后的網絡訓練做準備。
1.3.2)導入caffe庫,并設定文件路徑。需要在caffe中設定根目錄、訓練圖片列表、測試圖片列表、訓練配置文件、測試配置文件和參數文件的路徑。其中訓練圖片列表和測試圖片列表(train.txt和test.txt)在上一步中已經準備好了,其它三個文件,需自己編寫。
1.3.3)生成配置文件(配置文件中存放的就是netwotk)。配置文件實際上就是一些txt文檔,只是后綴名是prototxt,可以直接到編輯器里編寫,也可以用代碼生成。在本發明中直接在編輯器里編寫。
1.3.4)生成參數文件solver。這個文件的生成也是可以在編輯器里編寫,或者可以用代碼生成。本發明中在編輯器中編寫。
2.在道路的另一邊架設汽柴一體化機動車尾氣遙測裝置。汽柴一體化機動車尾氣遙測裝置是來對柴油車的尾氣煙度做直接的測量,并作為深度學習網絡的label,用于對圖像的訓練。這里主要是利用汽柴一體化機動車尾氣遙測裝置中的柴油車煙度檢測單元測量柴油車的煙度,其原理是煙度光源發出的檢測激光穿過道路上柴油機動車排放的尾氣照射到另一側的柴油煙度吸收檢測單元上,并由吸收檢測第單元將接收到的光線的亮度數據,發送至數據處理工控機。尾氣數據處理工控機根據光線的亮度衰減分析得到柴油尾氣的煙度。
3.構建深度殘差學習網絡。
3.1)本發明中使用20層深度殘差網絡如圖3所示。圖3中image表示輸入的圖像,第一個方框內7*7conv表示卷積層的卷積核為7*7;64表示特征映射的大小;/2表示這層的步長為2。下面每個方框中的內容與第一個方框的內容類似,如果沒有/2表示這一層的步長為1。圖中pool1表示最大池化層,Avg pool9表示平均池化層。Fc10則表示20維全連接層。實線的跨層連接表示輸入輸出大小相同,虛線的跨層連接表示輸入輸出大小不相同。總的來說,這20層深度殘差學習網絡依次為一層卷積層,一層池化層,8個跨度為2的殘差學習單元,一個全局平均池化層和一個20維全連接層。
3.1.1)網絡的前兩層分別是卷積核為7*7、步長為2的卷積層和一個池化層。
3.1.2)深度殘差學習單元的構建主要包括跨層連接。如圖2是殘差學習單元的構建模塊,其中x和y是層的輸入和輸出向量,weight layer是具有權重的卷積層,identity表示身份映射,relu表示激活函數。函數F(x,{Wi})代表學習的殘差函數,圖2所示有兩個層,消除了簡化符號的偏差。F+x的操作是是由快捷連接和增加的元素智能進行的。本發明中構建的模塊定義為:
y=F(x,{Wi})+x (1)
從公式(1)中涉及的快捷連接看出,殘差單元沒有額外的參數和復雜的計算,這樣在實際工程中能夠降低硬件成本。殘差函數F層數的設計是靈活的,在本發明中,F是兩層的殘差函數。
一般的網絡有兩種殘差單元,一種是前向通道和跨層連接都有卷積層,另一種前向通道有卷積,但是跨層連接沒有卷積,是直接連過來的。本發明中20層深度殘差網絡的殘差單元的跨層連接沒有卷積單元如圖4所示。圖4是圖2殘差學習單元的具體化,圖4中Res2a,Res2b分別表示殘差學習單元的輸入,輸出;Res2a_relu,Res2b_relu和Res2b_branch2a_relu表示激活函數,Res2b_branch2a和Res2b_branch2b表示卷積層,Bn2b_branch2a與Scale2b_branch2a這兩層表示BN層,Bn2b_branch2b與Scale2b_branch2b這兩層也表示BN層。
將殘差學習單元的其中前向通道的卷積核設置為3*3,每層卷積層根據卷積核的大小進行補零,讓卷積之后的圖像大小保持不變,就保證輸入輸出的大小是一樣了。并且如圖4所示每一個深度殘差模塊的具體構建都是從上一層的relu函數開始與下一層的卷積層連接,然后通過BN層將層的計算結果重新規范化,然后再加以放縮以保持層學習到的特征性質。之后是池化過程,池化之后使用relu函數激活就可以連接下一層了,由于本發明中使用2層的跨度,要注意在搭建網絡時主路的第二層卷積模塊是沒有relu的,relu在與殘差部分融合之后。
3.1.3)在深度殘差模塊之后接一個全局平均池化層和的20維全連接層。最后通過softmax層來最小化輸出和目標的損失函數來驅動學習。
3.2)20層深度殘差網絡主要包括卷積層、池化層、全連接層和一些跨層連接組成。
3.2.1)卷積層中主要是通過一組濾波器和非線性層變換,提取出圖像的局部特征。其中每個神經元都是與前一層的局部感受區相連,這樣既減少了連接的數目,又符合生物學理論。因為人腦的每一個神經元對外界的感受是局部的,而且圖像的空間聯系也是局部的,每個神經元感受不同的局部區域,最后在高層將這些局部信息綜合起來就得到全局的信息。卷積層的輸入要么來源于輸入層,要么來源于采樣層。卷積層的map個數是在網絡初始化指定的,本發明中map為64,而卷積層的map的大小是由卷積核和上一層輸入map的大小決定的,假設上一層的map大小是n*n、卷積核的大小是k*k,那該層的map大小計算公式是:(n-k+1)*(n-k+1)。
3.2.2)池化層主要是將卷積之后的特征圖進行匯聚統計,它也叫降采樣層。在圖像經過卷積層后特征向量的維數一般很大,容易造成計算過擬合,并且還存在許多冗余信息,這些問題可以通過池化層解決。池化操作也符合圖像的局部相關性原理,一個圖像區域有用的特征極有可能在另一個區域同樣適用。本發明中區域大小為2*2小區域的均值。(注意,卷積的計算窗口是有重疊的,而采用的計算窗口沒有重疊,卷積核是2*2,每個元素都是1/4,所以需要去掉計算得到的卷積結果中有重疊的部分。)
3.2.3)全連接層是在使用神經網絡的時候,最標準的形式,任何神經元和上一層的任何神經元之間都有關聯,然后矩陣運算也非常簡單和直接。本發明中在網絡的最后使用了一層20維的全連接層,去學習更多的信息。
3.2.4)關于網絡的跨層連接,當輸入輸出大小相同的時候,使用實心線的捷徑,身份快捷鍵(公式(1))可以直接使用。當尺寸增加時使用虛線快捷鍵,在本發明快捷方式仍然執行身份映射,用額外的零條目填充以便增加尺寸。該選項不會引入額外的參數。快捷鍵以兩個大小在功能地圖上進行,兩個選項進行2跨度。
3.3)下表是本發明中深度殘差網絡的架構:
4.使用構建好的深度殘差學習網絡按照以下步驟進行訓練、驗證和測試。
4.1)將采集到訓練集的尾氣圖像進行預處理:按其短邊作等比縮放后按照[256,480]區間的尺寸隨機采樣進行尺度增強。隨機的從圖像或其水平鏡像采樣大小為224*224的剪裁圖像,并將剪裁結果做減像素均值操作。然后進行標準色彩增強,并初始化網絡權重。在每一個卷積之后和激活之前,采用了BN層。當訓練深度殘差網絡時,使用的隨機梯度下降法(SGD),batch大小為128,Momentum設置為0.9。基礎學習率設置從0.0001開始,中間根據結果多次改變學習率進行優化,當訓練集的損失函數和驗證集的損失函數滿足要求時候停止訓練。
4.2)訓練集的圖像作為訓練輸入,驗證集在訓練網絡的過程中每迭代1000次進行一次測試,比較驗證集的損失函數和訓練集的損失函數。當驗證集的損失函數不再下降時候,即可暫時停止訓練。將預處理后的測試集圖像作為訓練終止后的深度殘差學習網絡的輸入,將此時網絡的輸出與步驟2中的標簽值進行比較,若測試集精度超過99%,則訓練完成,否則,繼續訓練。
5、對于沒有安裝汽柴一體化機動車尾氣遙測裝置的路段,在道邊布設CCD攝像機以獲取柴油車尾氣圖像,并輸入到訓練完成的深度殘差學習網絡中,從而實現對柴油車尾氣煙度的檢測。
至此,深度殘差網絡的測試完成,本發明使用深度殘差網絡測量柴油機煙度發現結果優于之前所用方法的準確率,即將深度殘差學習網絡用于柴油車煙度的測量是一個很有前景的方法。
提供以上實施例僅僅是為了描述本發明的目的,而并非要限制本發明的范圍。本發明的范圍由所附權利要求限定。不脫離本發明的精神和原理而做出的各種等同替換和修改,均應涵蓋在本發明的范圍之內。