宋一格, 王 寧, 李宏昌, 武 暕
1(中國科學(xué)院大學(xué), 北京 100049)
2(中國科學(xué)院 沈陽計算技術(shù)研究所, 沈陽 110168)
3(阜新市生態(tài)環(huán)境保護服務(wù)中心, 阜新 123008)
4(遼寧省生態(tài)環(huán)境監(jiān)測中心, 沈陽 110161)
河流水面污染是水體污染的一種, 污染物通過直接或間接的方式被排入河流環(huán)境, 造成損害河流資源和人類健康的影響. 河流資源是淡水資源重要的組成部分, 地球上人類可利用的淡水資源占比不足1%, 保護河流資源是非常迫切和必要的. 隨著經(jīng)濟和社會的快速發(fā)展, 我國城鎮(zhèn)化建設(shè)步伐日益加快, 大量的人口聚集到城市生活, 給城市周邊的環(huán)境和生態(tài)造成了嚴重的影響, 許多河流的水面上出現(xiàn)大量的污染物, 這些污染物由各種自然和人工廢棄物組成, 在水面堆積腐爛嚴重影響水環(huán)境和水質(zhì), 在城市和景觀水域影響市容和旅游環(huán)境[1]. 如果不能得到及時清理, 勢必會破壞生態(tài)環(huán)境, 威脅人類的生存和發(fā)展.
本文主要的研究對象是河流水面的污染物, 例如垃圾塑料、自然脫落的樹枝、富營養(yǎng)化藻類等污染物.當(dāng)前國內(nèi)針對此類污染物處理主要是人工清理和遙感測試的兩種方法. 人工清理的方式不能及時的清理污染物, 造成對河流環(huán)境的污染和河流生態(tài)的破壞, 不能有效的保護河流環(huán)境, 同時需要大量的人力物力. 遙感方法使用成本較高, 針對細長的河流會造成一定的技術(shù)圖片和時間成本的浪費, 同時需要專業(yè)人員對遙感圖像進行分析. 兩種方法在時效性和經(jīng)濟成本上都不能很好的解決上述污染物的監(jiān)測問題.
為解決上述問題, 本文結(jié)合實際情況和計算機視覺技術(shù)在相關(guān)領(lǐng)域的應(yīng)用, 結(jié)合現(xiàn)有圖像制作了一個河流水面污染圖像數(shù)據(jù)集, 提出了一種基于分組卷積與雙注意力機制的河流污染圖像分類算法. 目前國內(nèi)的主要河道都部署了河流監(jiān)控攝像頭, 通過拍攝圖片的方式對河流資源進行監(jiān)控, 本文提出的方法利用這些圖像資源對模型進行訓(xùn)練測試并構(gòu)建了一種基于分組卷積和雙注意力機制的算法模塊, 將其添加到標準網(wǎng)絡(luò)中可以有效的對河流水面污染物的圖像進行分類,判別河流水面污染的是否存在污染. 實驗表明, 本文提出的GCDA模塊添加到ResNet50算法上, 相較于原始網(wǎng)絡(luò)以及單獨添加注意力機制模塊的網(wǎng)絡(luò)在河流水面污染二分類實驗中效果明顯提升. 適用于實際工程, 能有效解決河流水面污染物監(jiān)測問題, 有一定的實際意義.
計算視覺技術(shù)是用計算機來處理圖像, 從數(shù)字圖像中提取特征, 使計算機具有人一樣的視覺能力.2012年, Krizhevsky等[2]創(chuàng)造的大型的深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet在圖像分類任務(wù)上, 以準確率提升10多個百分點的成績?nèi)〉昧薎mageNet競賽的冠軍. 這標志著卷積神經(jīng)網(wǎng)絡(luò)逐漸成為了計算機視覺中的圖像分類和目標檢測領(lǐng)域的主要方法. 計算機視覺技術(shù)在當(dāng)今已經(jīng)得到廣泛應(yīng)用, 例如車輛檢測[3], 人臉識別[4], 自動駕駛[5]等. 解決河流污染問題, 眾多的企業(yè)和學(xué)者提出了自己的解決方法. 騰訊云提出了河道漂浮物識別方案.華為云提出了智能水體(WaterGo)方案. 左建軍等[6]提出了水面漂浮物智能監(jiān)控技術(shù). 唐小敏等[7]提出了基于 SSD 深度網(wǎng)絡(luò)的河道漂浮物檢測技術(shù). 許靜波[8]提出了水面漂浮物監(jiān)測及估算系統(tǒng). 雷李義等[9]提出基于深度學(xué)習(xí)的水面漂浮物目標檢測方法.
分組卷積, 就是在對特征圖進行卷積的時候, 首先對特征圖分成小組再卷積. 用g表示分組大小, 與普通卷積比, 分組卷積的參數(shù)個數(shù)和計算代價都減少g倍.這個g被稱為基數(shù), 它與深度和寬度一起描述了模型.分組卷積首先在AlexNet被采用, 目的是將模型分不到更多的GPU資源上, 后來被Deep Roots[10]研究指出卷積組可以更好地學(xué)習(xí)特征表示, ResNexts[11]提出即使在復(fù)雜情況下, 基數(shù)g的增加也能夠提高分類精度.
注意力機制源于對人類視覺的研究, 人類視覺通過快速掃描全局圖像, 獲得需要重點關(guān)注的目標區(qū)域,可以將有限的處理資源分配至重要的部分, 從而獲得更多關(guān)注區(qū)域的相關(guān)信息. 在計算機視覺研究中, 主要有兩種廣泛使用的注意力機制: 空間注意力機制和通道注意力機制, 它們分別用于捕獲像素級成對關(guān)系和通道依賴性. 注意力機制的意義在近年來得到了廣泛的研究. 注意力機制偏向于信息更豐富的特征表達式,從自然語言處理的機器翻譯[12]開始使用, 到圖像理解的圖像字幕[13]都有廣泛應(yīng)用. 在計算機視覺研究中, 主要有兩種廣泛使用的注意力機制: 通道注意力機制和空間注意力機制, SENet[14]使用兩個全連接層建立了一個輕量的門控機制, 通過通道關(guān)系來校正特征圖. 在空間注意力機制方面, CBAM[15]通過計算特征圖中每個空間點之間的相關(guān)矩陣引入了空間注意力機制并與通道注意力做了序列組合. 而DANet[16]則是通過對來自不同分支的兩個注意模塊進行疊加, 實現(xiàn)了兩種注意力機制的結(jié)合.
本節(jié)是對GCDA模塊結(jié)構(gòu)的介紹. 該模塊使用一種新的融合方法提升特征提起能力. 首先對輸入特征分組, 然后對每組的子特征使用簡化的雙注意力機制提取特征, 對兩種注意力機制進行特征融合后聚合為模塊的輸出. 使用較少參數(shù)增強模塊的特征提取能力.本節(jié)首先介紹了分組卷積的過程和優(yōu)點, 然后介紹了雙注意力機制的處理和融合, 最后是對模塊在其他網(wǎng)絡(luò)上添加使用的介紹.
分組卷積的合理使用能減少網(wǎng)絡(luò)的參數(shù)量和計算量, 下面我們將介紹分組卷積的實現(xiàn)原理. 如圖1所示.
圖1(a)為普通卷積示意圖, 此時的輸入的特征圖大小為W ×H×C1, 分為對應(yīng)的是特征圖的寬、高和通道數(shù). 單個卷積核大小是w1×h1×C1, 分為對應(yīng)單個卷積核的寬、高和通道數(shù). 輸出特征圖的大小是W ×H×C2,分別對應(yīng)特征圖的寬、高和通道數(shù). 參數(shù)量是w1×h1×C1×C1×C2, 計算量w1×h1×C1×C1×C2×W×H.
分組卷積是將普通卷積的輸入特征圖分成g組,每個卷積核也相應(yīng)地分成g組, 在對應(yīng)的組內(nèi)做卷積,如圖1(b), 輸入的特征圖每組大小為 W ×H×C1/g , 分為對應(yīng)的是特征圖的寬、高和通道數(shù), 共g組. 單個卷積核大小是w1×h1×C1/g, 對應(yīng)單個卷積核的寬、高和通道數(shù). 輸出特征圖的大小是W ×H×C2/g, 分別對應(yīng)的是特征圖的寬、高和通道數(shù). 參數(shù)量和計算量分別為:可以看出分組卷積的參數(shù)量和參數(shù)量是普通卷積的
圖1 普通卷積和分組卷積示意圖
注意力機制的使用能是有效的增加網(wǎng)絡(luò)的提取特征能力, 通道注意力機制和空間注意力機制的有效結(jié)合能進一步提高網(wǎng)絡(luò)效率, 同時也會帶來參數(shù)量和計算量的提升. 為解決這一問題, 本文在使用分組卷積的基礎(chǔ)上, 根據(jù)注意力機制的本質(zhì)使用簡化版的雙注意力融合結(jié)構(gòu), 提出了GCDA模塊, 在盡量少增加網(wǎng)絡(luò)參數(shù)的情況下提升網(wǎng)絡(luò)性能. GCDA結(jié)構(gòu)如圖2.
由圖2可知, 分組卷積雙注意力機制模塊由分組、雙注意力和聚合3部分組成. 首先, 特征提取的特征圖先被分成g個小組. 然后, 每個小的特征圖從通道注意力機制和空間注意力機制處理后進行特征融合. 最后, 得到的每個小的特征圖在聚合為模塊的輸出. 網(wǎng)絡(luò)通過嵌入分組卷積雙注意力機制模塊, 可以用較少的參數(shù)量使網(wǎng)絡(luò)更關(guān)注有意義的特征. 具體的過程可以表示為:
圖2 GCDA模塊結(jié)構(gòu)圖
其中, Fi是 輸入特征F的第i個特征組, Fgp是全局池化操作, W1, b1是 通道注意力特征權(quán)重和參數(shù), W2,b2是空間注意力特征權(quán)重和參數(shù), σ為Sigmoid函數(shù)[17],特征融合操作即先求和再做一次卷積, out為GCDA模塊的輸出特征. 可以看出GCDA模塊的輸入輸出維度都相同的, 這一特點提高了模塊對其他網(wǎng)絡(luò)適用性.
下面我們將詳細介紹GCDA模塊中的雙注意力機制的具體結(jié)構(gòu)和流程.
通道注意力, 對于輸入是圖像的神經(jīng)網(wǎng)絡(luò)來說, 一個維度描述的是圖像的尺度空間, 另一個維度就是通道. 經(jīng)過特征提取器提取特征后, 每個通道描述圖像的部分特征, 而對于各種類別, 不同特征通道的重要程度也不一樣, 所以要給予其不同的權(quán)重來表示, 讓分類器能夠更加關(guān)注的正向的特征, 幫助分類器關(guān)注對網(wǎng)絡(luò)有意義的通道.
SENet使用通道注意力機制來實現(xiàn)了效果明顯的圖像分類, SENet使用全局池化對空間維度進行壓縮,經(jīng)過兩次的全連接層和激活函數(shù)層實現(xiàn)了通道注意力機制. SENet的目的是最大限度的提升準確性, 兩次全連接層使得網(wǎng)路參數(shù)量增重. 本文使用了一次全連接層的方式實現(xiàn)了通道注意力機制. 結(jié)構(gòu)如圖3所示.
圖3 本文通道注意力機制示意圖
由圖3可知, F為特征向量, 通過簡單地使用全局平均池(GAP)來嵌入全局信息, 生成信道統(tǒng)計信息, 它可以通過空間維度收縮來計算, 通過Sigmoid函數(shù)激活得到通道注意力機制的輸出:
其中, F∈?c/g×1×1, s∈?C/g×1×1, W1∈?C/g×1×1,b1∈?C/g×1×1, σ為Sigmoid函數(shù).
空間注意力, 圖像中并不是所有的區(qū)域?qū)θ蝿?wù)的貢獻都是同樣重要的, 只有與任務(wù)相關(guān)的區(qū)域才是注意的, 對于分類任務(wù)的主體, 空間注意力模型就是尋找網(wǎng)絡(luò)中最重要的部位進行處理. 圖像經(jīng)過特征提取后形成特征圖, 空間注意力機制能降低其他信息對分類器的干擾, 從而提升分類性能, 本文使用的空間注意力機制結(jié)構(gòu)圖如圖4所示.
圖4 本文空間注意力機制示意圖
由圖4可知, F為特征向量, 使用group norm[18]對F進行歸一化處理獲得空間信息, 在通過卷進操作增強,最后經(jīng)過Sigmoid激活函數(shù)激活獲得空間注意力機制的輸出.
其中,F∈?c/g×1×1, W2∈?C/g×1×1, b2∈?C/g×1×1, σ為Sigmoid函數(shù).
最后, 是兩種注意力機制的特征融合, 我們采用先求和在卷積的方式進行兩種特征圖的特征融合, 令模塊輸出的特征結(jié)合出兩種注意力機制的特征.
其中,W3∈?C/g×1×1, b3∈?C/g×1×1.
GCDA模塊由于輸入和輸出的特征圖維度相同,可以在神經(jīng)網(wǎng)絡(luò)的每個卷積后之后插入, 所以GCDA模塊可以集成到GoogLeNet[19]和 ResNet[20]等標準的框架中. 本節(jié)最后, 我們以結(jié)構(gòu)比較復(fù)雜的ResNet為基礎(chǔ), 介紹一下GCDA模塊的部署使用方法. ResNet是由He等[20]提出的網(wǎng)絡(luò)模型, 目的是解決神經(jīng)網(wǎng)絡(luò)的退化現(xiàn)象, 即是模型隨著網(wǎng)絡(luò)結(jié)構(gòu)的深度增加, 會產(chǎn)生梯度消失問題, 導(dǎo)致模型的訓(xùn)練逐漸困難且難于收斂. 這一方法的使用可是極大的加深網(wǎng)絡(luò)深度, 示意圖如圖5所示.
圖5 ResNet部署GCDA示意圖
由圖5可以看到, 我們將GCDA模塊部署到了ResNet的主干分支中, 使其在與分支求和之前發(fā)揮作用. 同時我們在實驗部分做了消融實驗, 通過在網(wǎng)絡(luò)上添加不同模塊與GCDA模塊進行對比實驗, 來證明GCDA模塊的有效性.
本文實驗在Ubuntu 16.04.6 LTS系統(tǒng)下利用Python語言, 在百度飛漿平臺完成, 訓(xùn)練框架為PaddlePaddle 2.1.2. 硬件信息為CPU是Intel(R) Xeon(R) Gold 6271C, 內(nèi)存32 GB, 顯卡為Tesla v100, 顯存16 GB, 硬盤是100 GB. 實驗共設(shè)置50 個迭代周期, batch size設(shè)置為64, 選用 SGD優(yōu)化算法[21]訓(xùn)練模型, 動量系數(shù)0.9, 學(xué)習(xí)率設(shè)置為0. 01每間隔10個迭代周期學(xué)習(xí)率衰減0.1倍, 使用交叉熵損失, 定義如下:
其中, M為類別數(shù), yic為 符號函數(shù), pic指觀測樣本i屬于類別c的預(yù)測概率.
實驗中采用Accuracy, Precision和F1-score作為評價指標, 具體定義如式(9)-式(12)所示:
其中, TP, FP, FN, TN分別為真正例, 假正例, 假反例和真反例.
本文實驗數(shù)據(jù)源于遼河流域河流水面拍攝圖像.我們采用了遼河流域溫泉城水站取水口、王營河入細河、高臺子斷面、津源污水排口和清源污水處理廠溢流口5個河流的監(jiān)控攝像頭連續(xù)2個月的拍攝圖像,攝像頭是固定機位, 每10分鐘拍一次圖片. 由于晚上沒有光源, 我們選取早上8點到下午6點的拍攝圖像作為原始數(shù)據(jù), 圖片分為污染類和未污染類兩個大類.總的樣本數(shù)為8 987張, 污染類3 812張, 未污染類5 170張. 其中訓(xùn)練集6 822張, 驗證集1 098張, 測試集1 067張.
結(jié)合實際圖片和實驗結(jié)果我們發(fā)現(xiàn)直接使用事物原始圖像由于拍攝視野較大包含了河道周圍的草木行人等干擾因素, 不利于網(wǎng)絡(luò)對圖片的分類. 如圖6所示,圖6(a)為溫泉城水站取水口拍攝圖像, 除去河流水面部分還有大面積的草木土地等. 為解決這一問題, 我們決定截取主要河流部分作為輸入數(shù)據(jù), 如圖6(b)所示.由于攝像頭機位固定, 拍攝圖片的角度和范圍是不會變的, 這種方法能保證截取圖像始終是同一位置 有利于圖像的批量處理, 并且去除了其他干擾因素.
圖6 溫泉城水站取水口圖像截取示意圖
為提升數(shù)據(jù)集的質(zhì)量, 我們在VGGNet16[22]、GoogLeNet和ResNet50網(wǎng)絡(luò)上分別對原始圖像, 隨機截取, 中心截取和固定位截取4種不同處理方法得到的數(shù)據(jù)集上做二分類對比實驗, 結(jié)果如表1所示.
表1 不同算法在4種數(shù)據(jù)集上的 F1-score
由表1可以看出采用固定位截取原始圖片的方式在3種網(wǎng)絡(luò)中都能有效的提高網(wǎng)絡(luò)的準確率, 證明了本文數(shù)據(jù)預(yù)處理的必要性和有效性.
為證明GCDA模塊的融合雙注意機制的有效性,我們在實驗參數(shù)設(shè)置相同的情況下, 以ResNet50為基礎(chǔ)分別添加空間注意力機制模塊、通道注意力機制模塊和GCDA模塊進行對比實驗. 實驗數(shù)據(jù)采用的上文描述的固定位截取方式獲取的數(shù)據(jù)集做二分類任務(wù).訓(xùn)練過程的損失收斂曲線和準確度收斂曲線如圖7.
圖7 訓(xùn)練過程曲線圖
由圖7可以看出4種算法在50迭代后趨于收斂,為避免過擬合現(xiàn)象, 我們最終將訓(xùn)練次數(shù)設(shè)置了50次.添加GCDA模塊的ResNet50相比其他3個算法訓(xùn)練效果較好. 然后在測試集進行測試, 并計算混淆矩陣:
根據(jù)混淆矩陣采用macro avg方法計算Accuracy,Precision和F1-score三個指標的數(shù)值, 具體結(jié)果如表2.
由表2可以看出, 添加了GCDA模塊的ResNet50網(wǎng)絡(luò)在Accuracy, Precision和F1-score三個指標上都有明顯的提升. 為了更直觀地驗證GCDA模塊的有效性, 我們使用GradCAM[23]在ResNet50的基礎(chǔ)上做了可視化的熱力圖. 如圖8所示.
表2 不同模塊的實驗結(jié)果
圖8 不同模塊的GradCAM可視化圖像
由圖8可以看出, 添加了GCDA模塊的ResNet50網(wǎng)絡(luò)的熱力圖集中體現(xiàn)在水面污染物部分. 所以我們提出的GCDA模塊能夠允許網(wǎng)絡(luò)關(guān)注更多的、具有更多對象細節(jié)的相關(guān)區(qū)域, 從而能有效的提升分類效果.
本文針對遼河流域河流水面污染分類困難問題, 將計算機視覺技術(shù)中的分組卷積與雙注意力機制應(yīng)用到河流水面污染圖像分類的任務(wù)中, 結(jié)合現(xiàn)有圖像制作了一個河流水面污染圖像數(shù)據(jù)集, 提出的GCDA模塊使用分組卷積在保證準確率的情況下可以減少計算和參數(shù)量, 同時引入簡化的雙注意力機制使模塊能關(guān)注更有意義的特征信息, 進一步的提升模塊對圖像分類的準確率. 通過實驗表明在河流水面污染圖像二分類任務(wù)中使用GCDA模塊的ResNet50相較于原始的ResNet50以及分別添加空間、通道注意力機制的網(wǎng)絡(luò)有明顯提升效果, 滿足了實際的應(yīng)用需求, 有良好的應(yīng)用前景.