宋永康, 張俊嶺, 公凡奎, 安云云, 王 冶
1(中國石油大學(華東) 計算機科學與技術(shù)學院, 青島 266580)
2(山東魯軟數(shù)字科技有限公司, 濟南 250001)
3(國網(wǎng)山東省電力公司 青島市黃島區(qū)供電公司, 青島 266500)
4(解放軍 9144 部隊, 青島 266102)
電力系統(tǒng)對于國家安全有重要的意義, 而輸電塔作為承載電力運輸線路的載體, 輸電鐵塔是輸電線路中最重要的基礎(chǔ)設施之一, 起到支持高壓或超高壓架空輸電線路中導線和避雷線的作用, 在整個電力系統(tǒng)中有著不可替代的作用[1]. 由于輸電塔組成復雜, 存在許多類似于螺母的小部件, 傳統(tǒng)的依靠人工巡檢的巡檢方式存在很大的弊端. 這種方式需要巡檢人員近距離查看輸電塔各部位, 并且由于人眼具有疲勞性的特點, 這種方式是不安全且效率不高的[2]. 由于輸電塔一般建設在野外等人跡較少的地方, 并且各個地區(qū)對于輸電塔的巡檢圖像數(shù)據(jù)比較少, 由于圖像數(shù)據(jù)標注價值高, 并且涉及到地區(qū)數(shù)據(jù)隱私問題, 因此各地區(qū)不愿意分享本地數(shù)據(jù).
在大多數(shù)情況下, 數(shù)據(jù)是以孤島的形式存在的, 由于隱私安全、手續(xù)復雜等問題, 即使是在同一個公司的不同部門之間, 實現(xiàn)數(shù)據(jù)整合也面臨著重重阻力, 在現(xiàn)實中將分散在各地的數(shù)據(jù)進行整合幾乎是不可能的,或者說耗費巨大. 同時, 數(shù)據(jù)隱私保護已經(jīng)成為全世界關(guān)注的趨勢, 給人工智能技術(shù)發(fā)展帶來巨大挑戰(zhàn).
傳統(tǒng)數(shù)據(jù)處理方法是的各方收集數(shù)據(jù)后, 再匯集到一起進行處理、清洗并建模. 但隨著對隱私安全問題的重視, 各項保護數(shù)據(jù)安全的法律法規(guī)也逐漸完善,如果數(shù)據(jù)離開收集方就可能會危害數(shù)據(jù)隱私從而出現(xiàn)隱私安全問題.
聯(lián)邦學習是一種加密的分布式機器學習技術(shù), 參與的各方可以在不上傳底層數(shù)據(jù)的前提下共建模型.它可以實現(xiàn)各個地方、各個企業(yè)的私有數(shù)據(jù)不出本地,而通過加密機制下的參數(shù)交換方式, 使各個機構(gòu)在不交換數(shù)據(jù)的情況下進行協(xié)作, 從而提升機器學習的效果.
為了有效地解決巡檢效率不高和數(shù)據(jù)隱私的問題,本文采用聯(lián)邦學習與深度學習相結(jié)合的方法, 利用深度學習處理無人機巡檢圖像[3,4]來進行輸電塔螺母銷釘缺失檢測, 用聯(lián)邦學習來保證數(shù)據(jù)隱私的問題, 參與訓練的各方不需要將私有數(shù)據(jù)上傳到一處進行整合處理, 用私有的數(shù)據(jù)各自訓練, 從而在保證數(shù)據(jù)隱私的情況下獲得一個高質(zhì)量的融合模型[5], 不僅有效的提高了數(shù)據(jù)質(zhì)量, 也極大地數(shù)據(jù)節(jié)約了整合成本.
目前, 數(shù)據(jù)安全問題已經(jīng)成為熱議的話題, 自從Facebook 數(shù)據(jù)泄露之后, 重視數(shù)據(jù)隱私和安全已經(jīng)成為了世界性的趨勢. 為了解決數(shù)據(jù)隱私和數(shù)據(jù)孤島的問題, 聯(lián)邦學習變得越來越重要[6]. 2017 年, 谷歌首次引入了聯(lián)邦學習系統(tǒng), 在數(shù)據(jù)保留在本地的情況下, 多個參與者共同訓練, 該系統(tǒng)允許用戶形成一個聯(lián)合體訓練得到一個集中模型, 而用戶數(shù)據(jù)則安全地存儲在本地, 這就解決了數(shù)據(jù)隱私問題[7]. 香港科技大學楊強教授和微眾銀行 (WeBank) 進一步提出了聯(lián)邦遷移學習(federated transfer learning, FTL)[8], FTL 將 FL 的概念加以推廣, 在不損害用戶隱私的情況下進行知識共享, 以實現(xiàn)在任何數(shù)據(jù)分布、任何實體上均可以進行協(xié)同建模、以學習全局模型. Kone?ny等人通過修改神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡, 結(jié)合聯(lián)邦學習在MNIST數(shù)據(jù)集上取得了優(yōu)異的效果[9]. Zhu 等人利用簡單的卷積神經(jīng)網(wǎng)絡訓練隱私場景的文字識別, 利用4 個卷積層和2 個全連接層來訓練, 經(jīng)過梯度計算和參數(shù)更新更新最終的聯(lián)邦學習, 最后聯(lián)邦學習表現(xiàn)出優(yōu)于基線模型的成績[10]. Zhang 等人將聯(lián)邦學習與分類相結(jié)合,將多個分類算法融入到聯(lián)邦學習, 在檢測COVID-19肺部醫(yī)學數(shù)據(jù)方面取得了十分好的效果[11].
作為計算機視覺領(lǐng)域的基礎(chǔ)任務, 圖像分類是目標檢測、語義分割的重要支撐, 其目標是將不同的圖像劃分到不同的類別, 并實現(xiàn)最小的分類誤差[12].
傳統(tǒng)的圖像分類研究中, 多數(shù)為基于圖像特征的分類[13], 即根據(jù)不同類別圖像的差異, 利用圖像處理算法提取經(jīng)過定性或定量表達的特征, 之后對這些特征進行數(shù)學方面的統(tǒng)計分析或使用分類器輸出分類結(jié)果.傳統(tǒng)的分類算法在特征提取方面, 主要包括紋理、顏色、形狀等底層視覺特征, 尺度不變特征變換[14]、局部二值模式[15]、方向梯度直方圖[16]等局部不變性特征, 這些人工設計特征缺乏良好的泛化性能, 且依賴于設計者的先驗知識和對分類任務的認知理解. 目前, 海量、高維的數(shù)據(jù)也使得人工設計特征的難度呈指數(shù)級增加.
深度學習[17]相較于傳統(tǒng)的圖像分類方法, 不需要對目標圖像進行人工特征描述和提取, 而是通過神經(jīng)網(wǎng)絡自主地從訓練樣本中學習特征, 提取出更高維、抽象的特征, 并且這些特征與分類器關(guān)系緊密, 很好地解決了人工提取特征和分類器選擇的難題.
自從Hinton 團隊利用AlexNet[18]在ImageNet[19]取得成功之后, CNN 成為計算機視覺方向的重要工具.Girshick 等人首先將CNN 應用于目標檢測中, 在區(qū)域候選的生成算法中, 提出了選擇性搜索(selective search)[20]等經(jīng)典算法, 繼而出現(xiàn)了RCNN 的一系列變形: SPP Net[21]、Fast RCNN[22]、Faster RCNN[23]. Fast RCNN 以及Faster RCNN 的出現(xiàn)加快了RCNN 用作目標檢測的效率, 同時Faster RCNN 也是第一個能夠端到端訓練,并且速度近乎達到實時的檢測器. 2017 年Ren 等人[23]提出了RPN, 生成多尺度區(qū)域, 結(jié)合Faster RCNN 實現(xiàn)了當時最先進的結(jié)果. 目前Faster RCNN 算法性能仍然十分出色, 目標檢測雖然已經(jīng)取得了相當大的成功,但是仍然離不開大量數(shù)據(jù)的支持, 特別是大量已標注好的數(shù)據(jù). 然而現(xiàn)實場景中數(shù)據(jù)往往存在數(shù)量少、標注難、數(shù)據(jù)涉及隱私的問題, 達不到實際需求. 數(shù)據(jù)十分珍貴.
本文提出的基于聯(lián)邦學習的螺母銷釘缺失檢測算法的整體框架圖如圖1 所示, 各節(jié)點利用本地用于檢測的訓練數(shù)據(jù)訓練基于Faster RCNN 的目標檢測模型,每訓練完成一輪, 會將訓練好的本地模型上傳到中心節(jié)點融合, 中心節(jié)點在收到所有的局部模型后進行模型融合處理, 形成新的融合模型再下發(fā)到各訓練節(jié)點,各訓練節(jié)點收到融合模型后, 在融合模型的基礎(chǔ)上繼續(xù)下一輪的迭代訓練. 最后中心節(jié)點得到一個基于Faster RCNN 的融合模型. 再利用本地用于分類的訓練數(shù)據(jù)訓練基于GoogLeNet[24]的分類模型, 上傳中心節(jié)點進行融合, 最后中心節(jié)點得到一個基于GoogLeNet的融合模型. 將圖像輸入到ResNet50[25]中, 生成特征圖, 同時RPN 結(jié)構(gòu)會按照預設的比例生成anchor 作為初始檢測框 , 在RPN 層后鏈接一層全連接層來區(qū)分前景和后景并且對候選框進行修正. RPN 將生成的 anchor投影到特征圖上得到對應的特征矩陣, 將每個特征矩陣通過 ROI pooling 層縮放到統(tǒng)一的 7×7 大小展平, 最后通過全連接層預測檢測結(jié)果, 將結(jié)果輸入到分類融合模型中獲得最終螺母分類結(jié)果.
圖1 整體架構(gòu)圖
在訓練過程中, 不同機器的數(shù)據(jù)大小, 機器效能,訓練速度會有差異, 有的節(jié)點訓練速度比較快, 有的節(jié)點訓練速度比較慢. 目前普遍的方法有同步通信和異步通信, 在同步通信的方式中, 中心節(jié)點需要收到所有訓練節(jié)點上傳的模型后, 才能進行融合推動下一輪訓練, 導致整個進程受集群里最慢的節(jié)點的影響. 在異步通信中, 每個節(jié)點完成本地訓練之后就把局部模型推送到全局模型上去, 并繼續(xù)本地的訓練過程, 而不去等待其他的節(jié)點. 在本文中各節(jié)點本地數(shù)據(jù)設置的總數(shù)差距不是很大, 因此在本文中采用的是同步通信方式,中心節(jié)點收到所有訓練節(jié)點上傳的本地模型經(jīng)過融合后下發(fā)各訓練節(jié)點繼續(xù)下一輪訓練. 在融合過程中, 采用模型參數(shù)加權(quán)平均的方式進行模型參數(shù)融合, 就是將不同局部模型進行參數(shù)平均. 這種方式的訓練過程如圖2 所示.
圖2 平均融合過程
如圖3 所示, 本文采用ResNet50 作為特征提取網(wǎng)絡, 相對于原始的VGG16 網(wǎng)絡, ResNet50 用更多的網(wǎng)絡層數(shù)來挖掘更深層的特征, 采用殘差連接使得深度模型的訓練比較容易, 克服由于網(wǎng)絡深度加深而產(chǎn)生的學習效率變低與準確率無法有效提升的問題其中殘差塊如圖4 所示, 在殘差網(wǎng)絡單元中包含了跨層連接,圖中的曲線可以將輸入直接跨層傳遞, 進行了同等映射, 之后與經(jīng)過卷積操作的結(jié)果相加. 假設輸入圖像為x, 輸出為H(x), 中間經(jīng)過卷積之后的輸出為F(x)的非線性函數(shù), 那最終的輸出為H(x)=F(x)+x, 網(wǎng)絡也就轉(zhuǎn)化為求殘差函數(shù)F(x)=H(x)-x, 這樣殘差函數(shù)要比F(x) =H(x)更加容易優(yōu)化. ResNet 包含49 個卷積層和一個全連接層, 首先對輸入數(shù)據(jù)進行卷積、正則化、激活函數(shù)和最大池化的計算, 之后包含4 個殘差塊, 最后通過全連接層進行分類任務. 網(wǎng)絡的輸入為 224×224×3, 經(jīng)過卷積計算, 輸出為 7×7×2048, 池化層會將其轉(zhuǎn)化成一個特征向量, 最后分類器會對這個特征向量進行計算并輸出類別概率.
圖3 ResNet50 網(wǎng)絡結(jié)構(gòu)
圖4 殘差塊計算流程
RPN 的目標是代替selective search 實現(xiàn)候選框的提取, 而網(wǎng)絡不可能自動生成任意大小的候選框, 因此anchor 的主要意義就在于根據(jù)特征圖在原圖片上劃分出很多大小、寬高比不相同的矩形框, RPN 會對這些框進行分類和回歸, 經(jīng)過微調(diào)后選取一些包含前景的類別框以及包含背景的負類別框, 送入之后的網(wǎng)絡結(jié)構(gòu)參與訓練.在原始的RPN 網(wǎng)絡中每個點的anchor 存在3 種規(guī)模以及3 種比例, 因此原始RPN 每個點會生成9 個anchor, 本實驗中通過分析原始數(shù)據(jù)可以看出,數(shù)據(jù)中的螺母面積占圖像比例及其小, 不到百分之一,并且拍攝角度有正面和側(cè)面, 因此本實驗中將scale 設置為4、8、16、32, anchor 的長寬比例設置為: 1:1,1:2, 2:1, 即每個點擁有12 個anchor.
Faster RCNN 包括兩個損失: RPN 網(wǎng)絡損失和RCNN網(wǎng)絡損失, 每個損失又包括分類損失和回歸損失, 所以需要定義一個多任務損失函數(shù), 包括Softmax classification loss 和bounding box regression loss. 分類損失使用的是交叉熵, 回歸損失使用的是smooth L1 loss. 損失函數(shù)如式(1)定義:
其中,i為anchor 的索引,pi為第i個anchor 預測為目標的概率,pi*為ground truth,pi* =1 表示第i個候選框與ground truth 之間的IoU>0.7, 包含目標, 為正樣本,pi* =0 表示第i個候選框與ground truth 之間的IoU<0.3, 不包含目標, 為負樣本,IoU在0.3 到0.7 之間的anchors 則忽略.ti={tx, ty, tw, th}表示bounding box的4 個參數(shù), RPN 通過這4 個參數(shù)對候選框進行修正.ti*是與positive anchor 對應的ground truth 的4 個坐標參數(shù),λ是回歸loss 的權(quán)重.Nreg為anchor 的數(shù)量.Lcls(·)是交叉熵函數(shù), 表達式為式(2):
其中,x,y,w,h是預測框中心的坐標和寬高,xa,ya,wa,ha是anchor 中心點的坐標和寬高.
tx*,ty*,tw*,th*是真實標注框中心的坐標和寬高,計算公式如式(9)-式(12)所示:
實驗將各節(jié)點數(shù)據(jù)按9:1 的比例進行劃分, 將節(jié)點數(shù)據(jù)的1/10 加入到整體測試集中用于模型評估, 剩下的部分作為節(jié)點訓練集. 各節(jié)點使用本地區(qū)無人機采集到的數(shù)據(jù)進行訓練, 每一輪訓練完成后將本地模型參數(shù)發(fā)送給中心節(jié)點, 中心節(jié)點采用加權(quán)平均的融合策略, 將收到的模型融合后下發(fā)到各訓練節(jié)點, 訓練節(jié)點收到融合模型后繼續(xù)在融合模型的基礎(chǔ)上進行下一輪訓練.
本次實驗采用4 個訓練節(jié)點和1 個中心節(jié)點的配置. 環(huán)境配置如表1 所示.
表1 訓練節(jié)點環(huán)境配置
實驗數(shù)據(jù)如圖5 所示, 分別在多個地方利用無人機拍攝輸電塔數(shù)據(jù), 經(jīng)篩選共得到有效數(shù)據(jù)1 236 張.
圖5 實驗數(shù)據(jù)
每個節(jié)點經(jīng)過裁剪得后本地螺母分類數(shù)據(jù), 分為兩類: 螺母有銷釘和螺母無銷釘. 數(shù)據(jù)如圖6 所示.
圖6 螺母分類數(shù)據(jù)
訓練集規(guī)模對模型性能有明顯的影響, 訓練集數(shù)量越多, 訓練出來的模型性能就越好. 因此本文通過圖像縮放、圖像旋轉(zhuǎn)以及添加噪聲來對數(shù)據(jù)集進行擴充.從而提升模型的魯棒性. 經(jīng)過擴充后的各節(jié)點數(shù)據(jù)集如表2 所示.
表2 預處理后各節(jié)點數(shù)據(jù)量
經(jīng)過預處理后的圖像如圖7 所示. 圖7(a)為無人機拍攝得到的原始數(shù)據(jù)與預處理后的數(shù)據(jù), 圖7(b)為裁剪后螺母原始數(shù)據(jù)與預處理后的數(shù)據(jù). 其中第一行為原始數(shù)據(jù), 第二行為預處理后數(shù)據(jù), 使用的預處理技術(shù)有縮放操作、圖像反轉(zhuǎn)、高斯模糊.
圖7 數(shù)據(jù)預處理結(jié)果
本實驗首先通過檢測任務對螺母進行檢測, 將結(jié)果輸入到分類網(wǎng)絡中進行分類任務, 最終判斷螺母上銷釘是否存在. 根據(jù)實驗的要求對各節(jié)點的本地訓練集進行了人工標注和處理, 然后把訓練集進行有限次的迭代訓練, 在本文中將迭代次數(shù)設置為20, 每迭代一次上傳至中心節(jié)點進行模型融合后再下發(fā)至訓練節(jié)點進行下一輪迭代. 最后在中心節(jié)點使用測試集在融合模型上進行測試, 分析融合訓練出的模型與各節(jié)點本地模型的性能對比.各節(jié)點使用相同的超參數(shù)設置, 其中batchsize 為16, epoch 為20, 初始學習率為0.01, 學習率調(diào)整策略選擇等間隔調(diào)整學習率的方法, 學習率衰減的gamma 值為0.1.
在本實驗中, 我們對檢測任務采用mAP 指標進行評估m(xù)AP 為各類別準確率和召回率曲線下的面積的平均值, 在分類任務上采用準確率進行評估.
各節(jié)點局部模型與中心融合模型在迭代20 次后的準確率曲線如圖8 所示: 每個節(jié)點用各自的訓練集進行訓練, 這些訓練集各不相同, 訓練完成一輪后會上傳到中心節(jié)點進行模型融合, 因此融合后的模型是各訓練節(jié)點模型參數(shù)的集合, 所以融合模型具有比較不錯的泛化性, 在訓練曲線中可以看出在訓練20 輪的過程中, 在第13 輪訓練模型的準確率基本達到平穩(wěn).
圖8 融合模型與局部模型檢測性能對比
可以看出經(jīng)過中心節(jié)點融合后的模型兼容性更好,因此對于測試集來說具有更高的mAP. 由于沒有對各節(jié)點進行數(shù)據(jù)非獨立同分布劃分, 因此各節(jié)點數(shù)據(jù)集分布情況還是存在一定的相似性.
圖9 為各節(jié)點在訓練過程中的損失收斂曲線.
圖9 各節(jié)點損失函數(shù)收斂曲線
分類任務的局部模型與融合模型在迭代20 次后的準確率曲線如圖10 所示.
圖10 融合模型與局部模型分類性能對比
通過曲線可以看出融合模型相對于各節(jié)點局部模型準確率存在提升, 約在2%-4%之間, 由于本地數(shù)據(jù)與中心節(jié)點的數(shù)據(jù)比較相似, 因此在準確率上的提升不明顯.
融合模型與本地局部模型的準確率與召回率如表3所示.
表3 中心節(jié)點與訓練節(jié)點模型準確率與召回率
本文將聯(lián)邦學習與目標檢測和圖像分類任務相結(jié)合, 在保證數(shù)據(jù)隱私的情況下進行同步訓練, 根據(jù)螺母銷釘形狀特點, 重新設計Faster RCNN 中anchor 比例,最后經(jīng)過有限次的迭代訓練與融合得到最優(yōu)的融合模型. 實驗結(jié)果表明, 融合模型相對于局部模型在檢測和分類任務上均存在一定程度的提升, 融合模型具有更好的兼容性, 說明將聯(lián)邦學習用于目標檢測和分類任務是可行的, 可以有效的解決數(shù)據(jù)隱私情況下的聯(lián)合訓練, 得到一個兼容性更好, 性能更高的模型.
在本文中, 數(shù)據(jù)的相似性比較大, 沒有對本地數(shù)據(jù)進行非獨立同分布設計, 導致分類任務最后的提升效果不明顯, 因此在后續(xù)工作中會對數(shù)據(jù)進行非獨立同分布設計, 使各節(jié)點數(shù)據(jù)差異性較大, 這樣最后融合模型效果會比較明顯, 同時由于各節(jié)點數(shù)據(jù)較少, 解下來會對數(shù)據(jù)進行擴充, 通過數(shù)據(jù)增強的方式擴充實驗數(shù)據(jù).