王 艷,張游杰
1(太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,太原 030024)
2(中國(guó)電子科技集團(tuán)公司第三十三研究所,太原 030032)
隨著我國(guó)經(jīng)濟(jì)迅速的發(fā)展,環(huán)境的問(wèn)題也變得越來(lái)越明顯,其中揚(yáng)塵污染也越來(lái)越成為環(huán)境污染的重要來(lái)源.揚(yáng)塵污染的存在方式是多種的,在土質(zhì)和碎石道路上存在,在建筑工地和水泥等路面上也會(huì)存在.同時(shí),因?yàn)橹匦蛙?chē)輛和一些大型設(shè)備對(duì)路面的影響,揚(yáng)塵量也變得越來(lái)越多,揚(yáng)塵污染也將會(huì)變得更加嚴(yán)重.因此,對(duì)于揚(yáng)塵識(shí)別的研究具有重大的實(shí)際意義.
傳統(tǒng)的揚(yáng)塵識(shí)別方法中大多采用物理信號(hào)進(jìn)行監(jiān)測(cè).李晉惠等[1]充分利用了Mie 散射原理,在這一基礎(chǔ)上研究出了一種多光路揚(yáng)塵監(jiān)測(cè)方法.雷俊花[2]提出了一種高層建筑裝修施工揚(yáng)塵污染遠(yuǎn)程監(jiān)測(cè)方法.牛志云等[3]設(shè)計(jì)了基于 STM32 微控制器的光散射式揚(yáng)塵監(jiān)測(cè)儀.Yu 等[4]根據(jù)實(shí)驗(yàn)室和教室實(shí)際環(huán)境中空氣質(zhì)量的監(jiān)測(cè)要求,設(shè)計(jì)了粉塵濃度監(jiān)測(cè)系統(tǒng).為了能夠?qū)崟r(shí)監(jiān)測(cè)大氣揚(yáng)塵,張所容[5]利用 Mie 散射原理和激光散射法,導(dǎo)出了計(jì)算揚(yáng)塵物質(zhì)量濃度的方法.隨后搭建監(jiān)測(cè)系統(tǒng)的實(shí)物架構(gòu),并采用基于 B/S的結(jié)構(gòu)進(jìn)行了相應(yīng)的軟件系統(tǒng)設(shè)計(jì).袁冬琴[6]設(shè)計(jì)了基于遙感技術(shù)的工地?fù)P塵污染自動(dòng)監(jiān)測(cè)方法.傳統(tǒng)方法的缺點(diǎn)在于比較依賴(lài)環(huán)境,而且識(shí)別的距離是非常有限的,需要大量人力和物力.
除了傳統(tǒng)方法外,應(yīng)用圖像處理技術(shù)監(jiān)測(cè)揚(yáng)塵污染也是一個(gè)很好的思路.王建鵬[7]提出一種融合了無(wú)線(xiàn)傳感器技術(shù)、激光前散射粉塵監(jiān)測(cè)技術(shù)、圖像識(shí)別技術(shù)和云平臺(tái)技術(shù)的揚(yáng)塵監(jiān)測(cè)系統(tǒng).馬國(guó)鑫等[8]充分使用了無(wú)人機(jī)和圖像識(shí)別技術(shù),將HSV 特征提取,直方圖對(duì)比以及非零像素點(diǎn)計(jì)算作為核心,設(shè)計(jì)了施工揚(yáng)塵污染源自動(dòng)監(jiān)測(cè)系統(tǒng),并且測(cè)試了該系統(tǒng)的運(yùn)行效果.任婷婷[9]運(yùn)用圖像處理技術(shù)中的圖像濾波去噪,圖像分割,圖像特征提取和分類(lèi)識(shí)別的方法,對(duì)道路揚(yáng)塵污染監(jiān)測(cè)與識(shí)別算法做了研究.這類(lèi)方法相對(duì)于傳統(tǒng)方法來(lái)講,可以降低人力和物力的需求,提升識(shí)別精度和穩(wěn)定性,但這一類(lèi)方法的缺點(diǎn)是比較針對(duì)于某一個(gè)特定的場(chǎng)景,訓(xùn)練出的模型具有很大的局限性.
基于深度學(xué)習(xí)的揚(yáng)塵識(shí)別方法能夠很好地解決上述存在的問(wèn)題.因此,提出一種基于改進(jìn)殘差網(wǎng)絡(luò)的揚(yáng)塵識(shí)別方法,將圖像通過(guò)改進(jìn)的ResNet-50 網(wǎng)絡(luò)進(jìn)行特征提取,更好的表達(dá)圖像信息,提高識(shí)別精確度.
卷積神經(jīng)網(wǎng)絡(luò)[10-12]是一類(lèi)包含卷積計(jì)算并且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)的代表算法之一.它具有表征學(xué)習(xí)的能力,它能夠以原始圖像作為輸入,通過(guò)卷積網(wǎng)絡(luò)結(jié)構(gòu)來(lái)形成更加抽象的高層次特征,從而可以獲得更深層次的數(shù)據(jù)特征表示,避免了人工提取圖像特征的復(fù)雜[13].其中的經(jīng)典網(wǎng)絡(luò)有LeNet-5,AlexNet,ZFNet,VGG-16,ResNet 等.
模型使用的基礎(chǔ)網(wǎng)絡(luò)ResNet是2015年由He 等[14]提出的,在ImageNet 測(cè)試集上的誤差達(dá)到3.57%,這個(gè)結(jié)果在ILSVRC 2015 分類(lèi)任務(wù)中取得第一名.ResNet網(wǎng)絡(luò)主要是為了解決網(wǎng)絡(luò)中的梯度消失和退化問(wèn)題,有利于網(wǎng)絡(luò)更快的收斂.目前,殘差網(wǎng)絡(luò)主要應(yīng)用于圖像分類(lèi),物體識(shí)別,自然語(yǔ)言處理,目標(biāo)檢測(cè)等領(lǐng)域.
ResNet-50 結(jié)構(gòu)圖如圖1(a)所示.
圖1 網(wǎng)絡(luò)結(jié)構(gòu)圖
圖1中輸入圖像是大小為224×224×3的三維數(shù)組,第一個(gè)卷積層是獨(dú)立卷積層Conv1,使用64 個(gè)大小為7×7,步長(zhǎng)為2的卷積核,輸出的大小為112×112.之后是一個(gè)最大池化層,池化窗口和步長(zhǎng)分別為3×3和2,輸出大小為56×56.接著是4 個(gè)不同的卷積殘差塊Conv2_x,Conv3_x,Conv4_x和Conv5_x,每個(gè)卷積殘差塊由2~3 個(gè)卷積層和跨越它們的連接組成,并且每個(gè)塊的輸出大小分別為56×56,28×28,14×14,7×7.最后是平均池化層,全連接層和損失函數(shù)Softmax.ResNet-50 網(wǎng)絡(luò)中的殘差塊主要采用的是1×1+3×3+1×1的卷積層形式,相比常規(guī)網(wǎng)絡(luò)的2 個(gè)3×3 卷積層形式,使用三層殘差塊結(jié)構(gòu)不僅可以保持網(wǎng)絡(luò)精度,同時(shí)還能減少網(wǎng)絡(luò)的計(jì)算量.兩種殘差塊的結(jié)構(gòu)如圖2(a)和圖2(b)所示.
圖2 殘差塊
通過(guò)一個(gè)假設(shè)將殘差的概念引入進(jìn)來(lái):假設(shè)可以通過(guò)恒等映射的方式來(lái)構(gòu)建所增加的層,這樣就可以把一個(gè)深層網(wǎng)絡(luò)變成了一個(gè)淺層的網(wǎng)絡(luò).至少可以保證深層網(wǎng)絡(luò)的訓(xùn)練誤差不會(huì)大于所基于的較淺模型.將H(x)假設(shè)為所需的底層映射,第一層的輸入為x,讓堆疊的非線(xiàn)性層來(lái)擬合另一個(gè)映射:F(x)=H(x)-x.因此原來(lái)的映射轉(zhuǎn)化為:F(x)+x.
在殘差網(wǎng)絡(luò)中,對(duì)于網(wǎng)絡(luò)中每一個(gè)堆疊層都將采用殘差學(xué)習(xí)的方式.殘差塊如圖2所示.并將殘差塊定義為:
其中,x和y是考慮層的輸入和輸出向量,f(x,{Wi})是要學(xué)習(xí)的殘差映射,Wi是i層的權(quán)重.在式(1)中x和f的維度是必須要相等的.如果維度不同,可以通過(guò)快捷連接方式執(zhí)行線(xiàn)性投影Ws以匹配維度:
ResNet-50 網(wǎng)絡(luò)在許多領(lǐng)域都得到了廣泛的應(yīng)用,比如在人臉識(shí)別等比較成熟的領(lǐng)域應(yīng)用較為理想,但應(yīng)用于揚(yáng)塵識(shí)別時(shí),識(shí)別準(zhǔn)確率較低.因此,對(duì)ResNet-50 網(wǎng)絡(luò)進(jìn)行改進(jìn),形成新的網(wǎng)絡(luò)模型,以適應(yīng)揚(yáng)塵圖像識(shí)別,改進(jìn)如下:(1)將網(wǎng)絡(luò)中最后一次空間下采樣操作的卷積層步長(zhǎng)從原來(lái)的2 設(shè)置為1;(2)移去了網(wǎng)絡(luò)中最后的平均池化層.同時(shí),在該網(wǎng)絡(luò)的基礎(chǔ)上引入了多尺度的金字塔池化方法;(3)在全連接層后加入改進(jìn)的Softmax 損失函數(shù),進(jìn)一步提高模型的識(shí)別性能.整體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1(b)所示.
在ResNet-50 網(wǎng)絡(luò)中,網(wǎng)絡(luò)中的每個(gè)塊都會(huì)有一個(gè)空間下采樣的操作,為了增大揚(yáng)塵特征圖的空間大小,去除網(wǎng)絡(luò)最后一次空間下采樣.當(dāng)輸入一張224×224的揚(yáng)塵圖像后,網(wǎng)絡(luò)會(huì)輸出一個(gè)7×7的特征圖.將網(wǎng)絡(luò)中最后一次空間下采樣卷積層的步長(zhǎng)從2 設(shè)置為1,將特征圖的輸出尺寸擴(kuò)大為14×14.這樣不僅不會(huì)增加模型的參數(shù)量,而且還能夠使得模型的參數(shù)結(jié)構(gòu)得以保持,增大特征圖的空間大小有利于提取到更加細(xì)粒度的揚(yáng)塵圖像特征,進(jìn)而提升揚(yáng)塵識(shí)別模型的性能.
在針對(duì)揚(yáng)塵識(shí)別的ResNet-50 網(wǎng)絡(luò)中,卷積層接受任意大小的輸入,但它們產(chǎn)生的輸出大小不一,而全連接層需要固定長(zhǎng)度的向量作為輸入.那么對(duì)于結(jié)構(gòu)已經(jīng)確定的ResNet-50 網(wǎng)絡(luò),就需要對(duì)揚(yáng)塵圖像進(jìn)行裁剪或縮放等操作,這么做會(huì)降低揚(yáng)塵識(shí)別的精度.在2015年He 等[15]提出的金字塔池化(SPP)方法解決了這一問(wèn)題.金字塔池化方法能夠讓網(wǎng)絡(luò)適應(yīng)不同大小尺寸的揚(yáng)塵圖片,不僅增加了揚(yáng)塵識(shí)別模型的尺度不變性,而且還可以抑制訓(xùn)練過(guò)程中過(guò)擬合現(xiàn)象的發(fā)生.它可以通過(guò)將空間信息集中在本地的空間容器中來(lái)維護(hù)空間信息,這些空間存儲(chǔ)單元的大小與揚(yáng)塵圖像大小成比例,無(wú)論圖像大小,存儲(chǔ)單元的數(shù)量都是固定的.因此,改進(jìn)的ResNet-50 網(wǎng)絡(luò)模型去掉全連接層之前的平均池化層,并將金字塔池化的方法引入到揚(yáng)塵識(shí)別中.金字塔池化層如圖3所示,具體操作是將經(jīng)過(guò)ResNet-50 網(wǎng)絡(luò)輸出的特征映射采用不同的池化尺度(1×1,2×2,4×4),得到 21 個(gè)固定的特征向量,然后把這些向量平鋪組成一個(gè)新的特征向量并送入全連接層.
金字塔池化層就是在最后一個(gè)殘差塊conv5_x 卷積層的揚(yáng)塵特征圖的每個(gè)圖片上進(jìn)行了3 個(gè)卷積操作.最下邊為原圖像特征圖,中間的是分成大小為4的特征圖,最上邊的是分成大小為16的特征圖.因此,每一個(gè)特征圖就變?yōu)?+4+16=21 個(gè)特征圖.其中每一個(gè)卷積操作的本質(zhì)都是平均池化,不同的只是窗口大小和步長(zhǎng).參數(shù)設(shè)置如圖4所示.
圖3 金字塔池化層
圖4 金字塔池化參數(shù)設(shè)置
為了充分發(fā)揮ResNet-50 網(wǎng)絡(luò)體系結(jié)構(gòu)學(xué)習(xí)表示的識(shí)別能力,受人臉識(shí)別中損失函數(shù)的啟發(fā),在揚(yáng)塵識(shí)別模型訓(xùn)練階段加入了改進(jìn)的Softmax 損失函數(shù).Softmax對(duì)于類(lèi)間距離的優(yōu)化效果很明顯,對(duì)于所學(xué)習(xí)的特性,Softmax 損失函數(shù)公式為:
其中,m是訓(xùn)練過(guò)程中的樣本的數(shù)目,p是訓(xùn)練數(shù)據(jù)集中的類(lèi)數(shù).xi是第i個(gè)樣本的特征,yi是對(duì)應(yīng)于xi的標(biāo)簽,W和b是Softmax 損失之前的最后內(nèi)積層的權(quán)重矩陣和偏置向量,x是網(wǎng)絡(luò)最后一層輸出的特征,經(jīng)過(guò)一個(gè)全連接的分類(lèi)層,即乘以權(quán)重W并加上偏置b,輸出score.Wj是W的第j行,對(duì)應(yīng)于j類(lèi).Softmax 可以有效區(qū)分類(lèi)間差異,但是對(duì)于類(lèi)內(nèi)的分布沒(méi)有很好的約束,因此監(jiān)督效果不夠.
原始的Softmax 損失在空間分布比較隨意,輸出的score為式(4),即神經(jīng)元的權(quán)重向量的模||Wj||乘以特征向量的模||x||,再乘以?xún)蓚€(gè)向量夾角的余弦值cosθj,因此,在分類(lèi)過(guò)程中score 會(huì)受到模和夾角的影響.
為了消除在揚(yáng)塵識(shí)別過(guò)程中模和夾角的影響,將權(quán)重向量Wj和特征向量x歸一化,從而消除模的影響.如式(5)所示,歸一化之后的Softmax 只需要比較兩個(gè)角度的大小,這樣可以減少損失函數(shù)優(yōu)化參數(shù)的數(shù)量,只需要考慮角度,大大提升了Softmax 分類(lèi)器的分類(lèi)性能,提高了揚(yáng)塵識(shí)別的準(zhǔn)確率.
由于揚(yáng)塵圖像識(shí)別目前沒(méi)有公開(kāi)的數(shù)據(jù)集.因此,通過(guò)在互聯(lián)網(wǎng)上收集各類(lèi)有關(guān)揚(yáng)塵場(chǎng)景的圖片,整理形成訓(xùn)練集和測(cè)試集,然后使用數(shù)據(jù)增強(qiáng)在訓(xùn)練集和測(cè)試集中生成更多的數(shù)據(jù),解決了該研究中沒(méi)有數(shù)據(jù)集以及數(shù)據(jù)量不足的問(wèn)題.為了增強(qiáng)模型的泛化能力,采用數(shù)據(jù)增強(qiáng)的操作擴(kuò)充所需的數(shù)據(jù)樣本,讓網(wǎng)絡(luò)模型更好的適應(yīng)各種應(yīng)用場(chǎng)景.
首先收集含有揚(yáng)塵以及非揚(yáng)塵的圖像制作訓(xùn)練和測(cè)試數(shù)據(jù)集,并使用數(shù)據(jù)擴(kuò)增技術(shù)增加數(shù)據(jù)量,部分實(shí)驗(yàn)圖像如圖5,圖6所示.實(shí)驗(yàn)數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,每個(gè)集合均含有揚(yáng)塵圖像與非揚(yáng)塵圖像.將10 000張揚(yáng)塵圖像與5000 張非揚(yáng)塵圖像作為實(shí)驗(yàn)數(shù)據(jù),將其中的13 000 張作為訓(xùn)練集,2000 張作為測(cè)試集.
實(shí)驗(yàn)使用的操作系統(tǒng)是64 位的Ubuntu18.04 操作系統(tǒng),在訓(xùn)練和測(cè)試過(guò)程中使用了NVIDIA GTX 1660Ti GPU 進(jìn)行加速,算法使用深度學(xué)習(xí)框架PyTorch實(shí)現(xiàn),Python 版本為3.6.
實(shí)驗(yàn)的主干網(wǎng)絡(luò)采用了在ImageNet[16]上預(yù)訓(xùn)練好的ResNet-50 模型,完成模型的權(quán)重初始化,這樣可以減少訓(xùn)練時(shí)間.揚(yáng)塵圖片的輸入尺寸將其調(diào)整為224×224.在訓(xùn)練過(guò)程中,設(shè)定初始學(xué)習(xí)率為0.001,迭代次數(shù)為120 次,batch 大小設(shè)置為32.
圖5 非揚(yáng)塵圖像
圖6 揚(yáng)塵圖像
為了說(shuō)明改進(jìn)ResNet-50 網(wǎng)絡(luò)的有效性,選擇了3 種方法進(jìn)行對(duì)比,方法1是使用原始的ResNet-50 網(wǎng)絡(luò),方法2是將最后一次空間下采樣操作的卷積層步長(zhǎng)從原來(lái)的2 設(shè)置為1,不使用金字塔池化的ResNet-50網(wǎng)絡(luò),方法3是只使用金字塔池化,最后一次空間下采樣操作的卷積層步長(zhǎng)不變的ResNet-50 網(wǎng)絡(luò),方法4是使用改進(jìn)的ResNet-50 網(wǎng)絡(luò).此外,在訓(xùn)練中4 種方法均使用Softmax 損失函數(shù)進(jìn)行優(yōu)化.4 種方法的實(shí)驗(yàn)對(duì)比結(jié)果如表1所示.各個(gè)實(shí)驗(yàn)的訓(xùn)練曲線(xiàn)如圖7所示.
表1 不同網(wǎng)絡(luò)實(shí)驗(yàn)對(duì)比結(jié)果
通過(guò)對(duì)這4 種網(wǎng)絡(luò)結(jié)構(gòu)的實(shí)驗(yàn)結(jié)果進(jìn)行比較可以看出,使用初始ResNet-50 網(wǎng)絡(luò)的準(zhǔn)確率最低.與方法1 相比,通過(guò)增大特征圖尺寸來(lái)提高識(shí)別效果的方法可以提高2.5%,使用金字塔池化后可以提高5.1%,而方法4 要比方法1 提高8%,說(shuō)明了將增大特征圖尺寸和金字塔池化的方法加入到ResNet-50 網(wǎng)絡(luò)中是有效的,證明了改進(jìn)ResNet-50 網(wǎng)絡(luò)的有效性.
從圖7可以看出,準(zhǔn)確率提高和損失率下降最快的是方法4,相比其他3 種方法,方法4的收斂速度更快,在訓(xùn)練次數(shù)達(dá)到60 次時(shí)趨于穩(wěn)定在0.94 左右.方法2和方法3的收斂速度有交叉的部分,方法1的速度是最慢的.
圖7 訓(xùn)練曲線(xiàn)
為了驗(yàn)證ResNet-50 網(wǎng)絡(luò)的性能,選取了其他兩種卷積神經(jīng)網(wǎng)絡(luò)Vgg16[17]和Alexnet[18]訓(xùn)練揚(yáng)塵數(shù)據(jù)集,并和ResNet-50 網(wǎng)絡(luò)的訓(xùn)練準(zhǔn)確率作比較,比較結(jié)果如表2所示.通過(guò)表中數(shù)據(jù)可以發(fā)現(xiàn),在這3 種網(wǎng)絡(luò)結(jié)構(gòu)模型中ResNet-50的準(zhǔn)確率最高.
為了說(shuō)明模型的泛化能力,采用改進(jìn)ResNet-50 網(wǎng)絡(luò)和ResNet-50 網(wǎng)絡(luò)分別在公共數(shù)據(jù)集CIFAR-10 上進(jìn)行了實(shí)驗(yàn).CIFAR-10是一個(gè)和普適物體相近,由Hinton的學(xué)生整理的一個(gè)用于識(shí)別普適物體的小型彩色圖像數(shù)據(jù)集,共包含10 個(gè)類(lèi)別的RGB 彩色圖像,每個(gè)類(lèi)別有6000 張圖像,每張圖像的尺寸大小為32×32.該數(shù)據(jù)集有50 000 張圖像用于訓(xùn)練集,10 000 張圖像用于測(cè)試集.實(shí)驗(yàn)準(zhǔn)確率對(duì)比結(jié)果如表3所示.
表2 3 種網(wǎng)絡(luò)模型準(zhǔn)確率對(duì)比
表3 CIFAR-10 數(shù)據(jù)集準(zhǔn)確率對(duì)比
基于改進(jìn)ResNet-50 網(wǎng)絡(luò)的揚(yáng)塵識(shí)別方法在該數(shù)據(jù)集下的準(zhǔn)確率為91.3%,相比基礎(chǔ)的ResNet-50 網(wǎng)絡(luò)提高了10.8%,說(shuō)明了改進(jìn)的網(wǎng)絡(luò)模型有較好的泛化能力.
深度學(xué)習(xí)在圖像識(shí)別中具有重要意義,相比傳統(tǒng)的圖像識(shí)別方法,基于深度學(xué)習(xí)的識(shí)別方法具有自學(xué)習(xí)和適應(yīng)能力,可以更好地對(duì)目標(biāo)進(jìn)行特征提取.改進(jìn)的網(wǎng)絡(luò)模型將ResNet-50 網(wǎng)絡(luò)應(yīng)用到揚(yáng)塵識(shí)別中,并對(duì)其進(jìn)行了改進(jìn).經(jīng)實(shí)驗(yàn)驗(yàn)證,改進(jìn)ResNet-50 網(wǎng)絡(luò)對(duì)揚(yáng)塵圖像有較高的識(shí)別率,同時(shí)也有很好的泛化能力,可以有效地識(shí)別各種類(lèi)揚(yáng)塵圖像以及其他非揚(yáng)塵圖像,在實(shí)際中有很大的應(yīng)用價(jià)值.