宋一格, 王 寧, 李宏昌, 武 暕
1(中國科學院大學, 北京 100049)
2(中國科學院 沈陽計算技術研究所, 沈陽 110168)
3(阜新市生態環境保護服務中心, 阜新 123008)
4(遼寧省生態環境監測中心, 沈陽 110161)
河流水面污染是水體污染的一種, 污染物通過直接或間接的方式被排入河流環境, 造成損害河流資源和人類健康的影響. 河流資源是淡水資源重要的組成部分, 地球上人類可利用的淡水資源占比不足1%, 保護河流資源是非常迫切和必要的. 隨著經濟和社會的快速發展, 我國城鎮化建設步伐日益加快, 大量的人口聚集到城市生活, 給城市周邊的環境和生態造成了嚴重的影響, 許多河流的水面上出現大量的污染物, 這些污染物由各種自然和人工廢棄物組成, 在水面堆積腐爛嚴重影響水環境和水質, 在城市和景觀水域影響市容和旅游環境[1]. 如果不能得到及時清理, 勢必會破壞生態環境, 威脅人類的生存和發展.
本文主要的研究對象是河流水面的污染物, 例如垃圾塑料、自然脫落的樹枝、富營養化藻類等污染物.當前國內針對此類污染物處理主要是人工清理和遙感測試的兩種方法. 人工清理的方式不能及時的清理污染物, 造成對河流環境的污染和河流生態的破壞, 不能有效的保護河流環境, 同時需要大量的人力物力. 遙感方法使用成本較高, 針對細長的河流會造成一定的技術圖片和時間成本的浪費, 同時需要專業人員對遙感圖像進行分析. 兩種方法在時效性和經濟成本上都不能很好的解決上述污染物的監測問題.
為解決上述問題, 本文結合實際情況和計算機視覺技術在相關領域的應用, 結合現有圖像制作了一個河流水面污染圖像數據集, 提出了一種基于分組卷積與雙注意力機制的河流污染圖像分類算法. 目前國內的主要河道都部署了河流監控攝像頭, 通過拍攝圖片的方式對河流資源進行監控, 本文提出的方法利用這些圖像資源對模型進行訓練測試并構建了一種基于分組卷積和雙注意力機制的算法模塊, 將其添加到標準網絡中可以有效的對河流水面污染物的圖像進行分類,判別河流水面污染的是否存在污染. 實驗表明, 本文提出的GCDA模塊添加到ResNet50算法上, 相較于原始網絡以及單獨添加注意力機制模塊的網絡在河流水面污染二分類實驗中效果明顯提升. 適用于實際工程, 能有效解決河流水面污染物監測問題, 有一定的實際意義.
計算視覺技術是用計算機來處理圖像, 從數字圖像中提取特征, 使計算機具有人一樣的視覺能力.2012年, Krizhevsky等[2]創造的大型的深度卷積神經網絡AlexNet在圖像分類任務上, 以準確率提升10多個百分點的成績取得了ImageNet競賽的冠軍. 這標志著卷積神經網絡逐漸成為了計算機視覺中的圖像分類和目標檢測領域的主要方法. 計算機視覺技術在當今已經得到廣泛應用, 例如車輛檢測[3], 人臉識別[4], 自動駕駛[5]等. 解決河流污染問題, 眾多的企業和學者提出了自己的解決方法. 騰訊云提出了河道漂浮物識別方案.華為云提出了智能水體(WaterGo)方案. 左建軍等[6]提出了水面漂浮物智能監控技術. 唐小敏等[7]提出了基于 SSD 深度網絡的河道漂浮物檢測技術. 許靜波[8]提出了水面漂浮物監測及估算系統. 雷李義等[9]提出基于深度學習的水面漂浮物目標檢測方法.
分組卷積, 就是在對特征圖進行卷積的時候, 首先對特征圖分成小組再卷積. 用g表示分組大小, 與普通卷積比, 分組卷積的參數個數和計算代價都減少g倍.這個g被稱為基數, 它與深度和寬度一起描述了模型.分組卷積首先在AlexNet被采用, 目的是將模型分不到更多的GPU資源上, 后來被Deep Roots[10]研究指出卷積組可以更好地學習特征表示, ResNexts[11]提出即使在復雜情況下, 基數g的增加也能夠提高分類精度.
注意力機制源于對人類視覺的研究, 人類視覺通過快速掃描全局圖像, 獲得需要重點關注的目標區域,可以將有限的處理資源分配至重要的部分, 從而獲得更多關注區域的相關信息. 在計算機視覺研究中, 主要有兩種廣泛使用的注意力機制: 空間注意力機制和通道注意力機制, 它們分別用于捕獲像素級成對關系和通道依賴性. 注意力機制的意義在近年來得到了廣泛的研究. 注意力機制偏向于信息更豐富的特征表達式,從自然語言處理的機器翻譯[12]開始使用, 到圖像理解的圖像字幕[13]都有廣泛應用. 在計算機視覺研究中, 主要有兩種廣泛使用的注意力機制: 通道注意力機制和空間注意力機制, SENet[14]使用兩個全連接層建立了一個輕量的門控機制, 通過通道關系來校正特征圖. 在空間注意力機制方面, CBAM[15]通過計算特征圖中每個空間點之間的相關矩陣引入了空間注意力機制并與通道注意力做了序列組合. 而DANet[16]則是通過對來自不同分支的兩個注意模塊進行疊加, 實現了兩種注意力機制的結合.
本節是對GCDA模塊結構的介紹. 該模塊使用一種新的融合方法提升特征提起能力. 首先對輸入特征分組, 然后對每組的子特征使用簡化的雙注意力機制提取特征, 對兩種注意力機制進行特征融合后聚合為模塊的輸出. 使用較少參數增強模塊的特征提取能力.本節首先介紹了分組卷積的過程和優點, 然后介紹了雙注意力機制的處理和融合, 最后是對模塊在其他網絡上添加使用的介紹.
分組卷積的合理使用能減少網絡的參數量和計算量, 下面我們將介紹分組卷積的實現原理. 如圖1所示.
圖1(a)為普通卷積示意圖, 此時的輸入的特征圖大小為W ×H×C1, 分為對應的是特征圖的寬、高和通道數. 單個卷積核大小是w1×h1×C1, 分為對應單個卷積核的寬、高和通道數. 輸出特征圖的大小是W ×H×C2,分別對應特征圖的寬、高和通道數. 參數量是w1×h1×C1×C1×C2, 計算量w1×h1×C1×C1×C2×W×H.
分組卷積是將普通卷積的輸入特征圖分成g組,每個卷積核也相應地分成g組, 在對應的組內做卷積,如圖1(b), 輸入的特征圖每組大小為 W ×H×C1/g , 分為對應的是特征圖的寬、高和通道數, 共g組. 單個卷積核大小是w1×h1×C1/g, 對應單個卷積核的寬、高和通道數. 輸出特征圖的大小是W ×H×C2/g, 分別對應的是特征圖的寬、高和通道數. 參數量和計算量分別為:可以看出分組卷積的參數量和參數量是普通卷積的

圖1 普通卷積和分組卷積示意圖
注意力機制的使用能是有效的增加網絡的提取特征能力, 通道注意力機制和空間注意力機制的有效結合能進一步提高網絡效率, 同時也會帶來參數量和計算量的提升. 為解決這一問題, 本文在使用分組卷積的基礎上, 根據注意力機制的本質使用簡化版的雙注意力融合結構, 提出了GCDA模塊, 在盡量少增加網絡參數的情況下提升網絡性能. GCDA結構如圖2.
由圖2可知, 分組卷積雙注意力機制模塊由分組、雙注意力和聚合3部分組成. 首先, 特征提取的特征圖先被分成g個小組. 然后, 每個小的特征圖從通道注意力機制和空間注意力機制處理后進行特征融合. 最后, 得到的每個小的特征圖在聚合為模塊的輸出. 網絡通過嵌入分組卷積雙注意力機制模塊, 可以用較少的參數量使網絡更關注有意義的特征. 具體的過程可以表示為:

圖2 GCDA模塊結構圖

其中, Fi是 輸入特征F的第i個特征組, Fgp是全局池化操作, W1, b1是 通道注意力特征權重和參數, W2,b2是空間注意力特征權重和參數, σ為Sigmoid函數[17],特征融合操作即先求和再做一次卷積, out為GCDA模塊的輸出特征. 可以看出GCDA模塊的輸入輸出維度都相同的, 這一特點提高了模塊對其他網絡適用性.
下面我們將詳細介紹GCDA模塊中的雙注意力機制的具體結構和流程.
通道注意力, 對于輸入是圖像的神經網絡來說, 一個維度描述的是圖像的尺度空間, 另一個維度就是通道. 經過特征提取器提取特征后, 每個通道描述圖像的部分特征, 而對于各種類別, 不同特征通道的重要程度也不一樣, 所以要給予其不同的權重來表示, 讓分類器能夠更加關注的正向的特征, 幫助分類器關注對網絡有意義的通道.
SENet使用通道注意力機制來實現了效果明顯的圖像分類, SENet使用全局池化對空間維度進行壓縮,經過兩次的全連接層和激活函數層實現了通道注意力機制. SENet的目的是最大限度的提升準確性, 兩次全連接層使得網路參數量增重. 本文使用了一次全連接層的方式實現了通道注意力機制. 結構如圖3所示.

圖3 本文通道注意力機制示意圖
由圖3可知, F為特征向量, 通過簡單地使用全局平均池(GAP)來嵌入全局信息, 生成信道統計信息, 它可以通過空間維度收縮來計算, 通過Sigmoid函數激活得到通道注意力機制的輸出:

其中, F∈?c/g×1×1, s∈?C/g×1×1, W1∈?C/g×1×1,b1∈?C/g×1×1, σ為Sigmoid函數.
空間注意力, 圖像中并不是所有的區域對任務的貢獻都是同樣重要的, 只有與任務相關的區域才是注意的, 對于分類任務的主體, 空間注意力模型就是尋找網絡中最重要的部位進行處理. 圖像經過特征提取后形成特征圖, 空間注意力機制能降低其他信息對分類器的干擾, 從而提升分類性能, 本文使用的空間注意力機制結構圖如圖4所示.

圖4 本文空間注意力機制示意圖
由圖4可知, F為特征向量, 使用group norm[18]對F進行歸一化處理獲得空間信息, 在通過卷進操作增強,最后經過Sigmoid激活函數激活獲得空間注意力機制的輸出.

其中,F∈?c/g×1×1, W2∈?C/g×1×1, b2∈?C/g×1×1, σ為Sigmoid函數.
最后, 是兩種注意力機制的特征融合, 我們采用先求和在卷積的方式進行兩種特征圖的特征融合, 令模塊輸出的特征結合出兩種注意力機制的特征.

其中,W3∈?C/g×1×1, b3∈?C/g×1×1.
GCDA模塊由于輸入和輸出的特征圖維度相同,可以在神經網絡的每個卷積后之后插入, 所以GCDA模塊可以集成到GoogLeNet[19]和 ResNet[20]等標準的框架中. 本節最后, 我們以結構比較復雜的ResNet為基礎, 介紹一下GCDA模塊的部署使用方法. ResNet是由He等[20]提出的網絡模型, 目的是解決神經網絡的退化現象, 即是模型隨著網絡結構的深度增加, 會產生梯度消失問題, 導致模型的訓練逐漸困難且難于收斂. 這一方法的使用可是極大的加深網絡深度, 示意圖如圖5所示.

圖5 ResNet部署GCDA示意圖
由圖5可以看到, 我們將GCDA模塊部署到了ResNet的主干分支中, 使其在與分支求和之前發揮作用. 同時我們在實驗部分做了消融實驗, 通過在網絡上添加不同模塊與GCDA模塊進行對比實驗, 來證明GCDA模塊的有效性.
本文實驗在Ubuntu 16.04.6 LTS系統下利用Python語言, 在百度飛漿平臺完成, 訓練框架為PaddlePaddle 2.1.2. 硬件信息為CPU是Intel(R) Xeon(R) Gold 6271C, 內存32 GB, 顯卡為Tesla v100, 顯存16 GB, 硬盤是100 GB. 實驗共設置50 個迭代周期, batch size設置為64, 選用 SGD優化算法[21]訓練模型, 動量系數0.9, 學習率設置為0. 01每間隔10個迭代周期學習率衰減0.1倍, 使用交叉熵損失, 定義如下:

其中, M為類別數, yic為 符號函數, pic指觀測樣本i屬于類別c的預測概率.
實驗中采用Accuracy, Precision和F1-score作為評價指標, 具體定義如式(9)-式(12)所示:

其中, TP, FP, FN, TN分別為真正例, 假正例, 假反例和真反例.
本文實驗數據源于遼河流域河流水面拍攝圖像.我們采用了遼河流域溫泉城水站取水口、王營河入細河、高臺子斷面、津源污水排口和清源污水處理廠溢流口5個河流的監控攝像頭連續2個月的拍攝圖像,攝像頭是固定機位, 每10分鐘拍一次圖片. 由于晚上沒有光源, 我們選取早上8點到下午6點的拍攝圖像作為原始數據, 圖片分為污染類和未污染類兩個大類.總的樣本數為8 987張, 污染類3 812張, 未污染類5 170張. 其中訓練集6 822張, 驗證集1 098張, 測試集1 067張.
結合實際圖片和實驗結果我們發現直接使用事物原始圖像由于拍攝視野較大包含了河道周圍的草木行人等干擾因素, 不利于網絡對圖片的分類. 如圖6所示,圖6(a)為溫泉城水站取水口拍攝圖像, 除去河流水面部分還有大面積的草木土地等. 為解決這一問題, 我們決定截取主要河流部分作為輸入數據, 如圖6(b)所示.由于攝像頭機位固定, 拍攝圖片的角度和范圍是不會變的, 這種方法能保證截取圖像始終是同一位置 有利于圖像的批量處理, 并且去除了其他干擾因素.

圖6 溫泉城水站取水口圖像截取示意圖
為提升數據集的質量, 我們在VGGNet16[22]、GoogLeNet和ResNet50網絡上分別對原始圖像, 隨機截取, 中心截取和固定位截取4種不同處理方法得到的數據集上做二分類對比實驗, 結果如表1所示.

表1 不同算法在4種數據集上的 F1-score
由表1可以看出采用固定位截取原始圖片的方式在3種網絡中都能有效的提高網絡的準確率, 證明了本文數據預處理的必要性和有效性.
為證明GCDA模塊的融合雙注意機制的有效性,我們在實驗參數設置相同的情況下, 以ResNet50為基礎分別添加空間注意力機制模塊、通道注意力機制模塊和GCDA模塊進行對比實驗. 實驗數據采用的上文描述的固定位截取方式獲取的數據集做二分類任務.訓練過程的損失收斂曲線和準確度收斂曲線如圖7.

圖7 訓練過程曲線圖
由圖7可以看出4種算法在50迭代后趨于收斂,為避免過擬合現象, 我們最終將訓練次數設置了50次.添加GCDA模塊的ResNet50相比其他3個算法訓練效果較好. 然后在測試集進行測試, 并計算混淆矩陣:

根據混淆矩陣采用macro avg方法計算Accuracy,Precision和F1-score三個指標的數值, 具體結果如表2.
由表2可以看出, 添加了GCDA模塊的ResNet50網絡在Accuracy, Precision和F1-score三個指標上都有明顯的提升. 為了更直觀地驗證GCDA模塊的有效性, 我們使用GradCAM[23]在ResNet50的基礎上做了可視化的熱力圖. 如圖8所示.

表2 不同模塊的實驗結果

圖8 不同模塊的GradCAM可視化圖像
由圖8可以看出, 添加了GCDA模塊的ResNet50網絡的熱力圖集中體現在水面污染物部分. 所以我們提出的GCDA模塊能夠允許網絡關注更多的、具有更多對象細節的相關區域, 從而能有效的提升分類效果.
本文針對遼河流域河流水面污染分類困難問題, 將計算機視覺技術中的分組卷積與雙注意力機制應用到河流水面污染圖像分類的任務中, 結合現有圖像制作了一個河流水面污染圖像數據集, 提出的GCDA模塊使用分組卷積在保證準確率的情況下可以減少計算和參數量, 同時引入簡化的雙注意力機制使模塊能關注更有意義的特征信息, 進一步的提升模塊對圖像分類的準確率. 通過實驗表明在河流水面污染圖像二分類任務中使用GCDA模塊的ResNet50相較于原始的ResNet50以及分別添加空間、通道注意力機制的網絡有明顯提升效果, 滿足了實際的應用需求, 有良好的應用前景.