徐少壯,鐘來星
(1.山東科技大學(xué) 測(cè)繪與空間信息學(xué)院,山東 青島 266590;2.山東科技大學(xué) 能源學(xué)院,山東 泰安 271000)
遙感技術(shù)的快速發(fā)展帶來了海量的數(shù)據(jù),但是ISCCP(international satellite cloud climatology project)的研究表明[1],地表的年平均云覆蓋率超過66%,云層遮蓋了光學(xué)遙感影像的部分、甚至全部的地表信息,這不僅嚴(yán)重影像數(shù)據(jù)質(zhì)量,甚至制約了進(jìn)一步挖掘數(shù)據(jù)的潛力,對(duì)遙感影像后續(xù)處理也同樣是一個(gè)挑戰(zhàn)[2-3]。因此,對(duì)云的高精度定量化評(píng)估是一項(xiàng)很重要的工作。
云與地物在光譜、紋理特征方面存在較為明顯的區(qū)別,基于此許多學(xué)者實(shí)現(xiàn)了光學(xué)遙感影像云檢測(cè)。李微等[4]通過云與下墊面其他地物在可見光、近紅外譜段的差異,提取云覆蓋區(qū)域,但是該方法對(duì)于波長(zhǎng)范圍受限的影像具有一定局限性。李超煒等[5]將分形維數(shù)、灰度共生矩陣等多個(gè)影像特征作為分類標(biāo)準(zhǔn),通過輸入SVM實(shí)現(xiàn)云檢測(cè),但是實(shí)驗(yàn)結(jié)果與云覆蓋區(qū)域輪廓匹配程度較低。除此之外,圖像分割領(lǐng)域的傳統(tǒng)算法同樣適用于云檢測(cè),比如最大類間分類法[6]、超像素分割法[7]、區(qū)域生長(zhǎng)法[8-9]等。傳統(tǒng)算法對(duì)噪聲、目標(biāo)像元的差異十分敏感,而高分辨率遙感影像往往伴隨一定的白噪聲[10],所以對(duì)高分辨率遙感影像進(jìn)行云檢測(cè)具有一定的局限性。遙感影像語(yǔ)義分割是從計(jì)算機(jī)視覺中延伸出來并結(jié)合深度學(xué)習(xí)實(shí)現(xiàn)遙感影像分類、地物提取的技術(shù),相比于傳統(tǒng)算法,深度學(xué)習(xí)具備更好的云檢測(cè)精度和可移植性。2015年,Olaf等[11]首次提出U-Net網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)了顯微鏡細(xì)胞影像的高精度、高效率識(shí)別,在此基礎(chǔ)上,學(xué)者們將改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)用于三維醫(yī)學(xué)影像分割[12]、多類別影像識(shí)別[13-15]等方面,為遙感影像云檢測(cè)提供了新的思路。陳洋等[16]通過卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了云檢測(cè),在傳統(tǒng)池化模型的基礎(chǔ)上,針對(duì)云的特性提出了一種自適應(yīng)模型,提高了訓(xùn)練效率、檢測(cè)精度,但是云檢測(cè)結(jié)果輪廓識(shí)別精度較低,不能很好地保留碎云、薄云細(xì)節(jié)特征。裴亮等[17]基于改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了遙感影像云檢測(cè),相比于全卷積神經(jīng)網(wǎng)絡(luò),該方法提高了訓(xùn)練速度、云檢測(cè)精度和收斂效果,但是存在將雪誤判為云的情況。么嘉棋等[18]利用神經(jīng)網(wǎng)絡(luò)SegNet實(shí)現(xiàn)ZY-3影像云檢測(cè),改善了傳統(tǒng)算法對(duì)噪聲敏感的缺點(diǎn),但是對(duì)于薄云、碎云存在一定程度的漏檢,需要進(jìn)一步改善。張永宏等[19]結(jié)合U-Net以及殘差模塊實(shí)現(xiàn)了FY-4A影像云檢測(cè),提高了對(duì)薄云、碎云的識(shí)別精度,但識(shí)別精度仍有進(jìn)一步提升的空間。
針對(duì)傳統(tǒng)算法對(duì)高分辨率遙感影像噪聲敏感、深度學(xué)習(xí)算法檢測(cè)結(jié)果與人主觀感受不一致,碎云、薄云識(shí)別精度差等缺點(diǎn),本文結(jié)合U-Net和 TTA(test time augmentation)算法進(jìn)行云覆蓋區(qū)域提取,與現(xiàn)有算法相比,提高云檢測(cè)精度的同時(shí),極大限度地保留了碎云、薄云的細(xì)節(jié)特征。首先,對(duì)影像進(jìn)行預(yù)處理,包含數(shù)據(jù)標(biāo)注、制作樣本集等步驟;其次,基于U-Net神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)提取云的典型特征、訓(xùn)練檢測(cè)模型;最后,利用TTA算法處理待檢測(cè)影像,并送入U(xiǎn)-Net檢測(cè)模型中實(shí)現(xiàn)云檢測(cè)。
1)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)U-Net。U-Net作為一種用于圖像分割的網(wǎng)絡(luò)結(jié)構(gòu),相比于其他結(jié)構(gòu),它的優(yōu)點(diǎn)在于簡(jiǎn)單高效、模型參數(shù)少,僅使用少量影像訓(xùn)練,就可以得到較高的檢測(cè)精度。整體上看,U-Net是收縮-擴(kuò)展結(jié)構(gòu),收縮過程采用FCN的網(wǎng)絡(luò)結(jié)構(gòu)[20],由卷積層、池化層組成,主要用于提取影像的典型特征;而擴(kuò)展過程由卷積層、反卷積層(上采樣層)組成。U-Net在圖像分割領(lǐng)域首次使用反卷積層恢復(fù)特征圖和復(fù)制、剪切原始特征圖拼接的特征融合方式(圖1中間橫線連接步驟),其結(jié)構(gòu)圖如圖1所示。
圖1 U-Net結(jié)構(gòu)示意圖
(1)卷積層(convolotion layer)。由多個(gè)卷積單元組成,卷積單元在窗口影像上移動(dòng),通過點(diǎn)積,累加獲取影像深層次特征,并以特征矩陣的形式傳遞。單一卷積層僅能獲取影像淺層特征,多層結(jié)構(gòu)可以通過淺層特征迭代獲取云的深層次、典型特征,并通過共享卷積核權(quán)值傳遞特征。
(2)池化層(pooling layer)。主要目的是減小卷積層所獲取的特征維度,減少訓(xùn)練參數(shù)以提高模型訓(xùn)練效率,進(jìn)而防止過擬合現(xiàn)象出現(xiàn)。常用的池化模型分為平均池化、最大池化模型兩種。
(3)上采樣層(upsampling layer)。卷積層會(huì)提取影像的典型特征,同時(shí)將輸入影像轉(zhuǎn)換為更小的尺寸。上采樣層會(huì)將輸入轉(zhuǎn)換為更大的尺寸,將典型特征放大到原影像大小,使提取后的特征圖更能代表云標(biāo)簽的特征。
(4)特征圖(characteristic map)。影像上每個(gè)像素判斷為云、背景的概率稱為特征圖。U-Net的創(chuàng)新之處在于:不僅通過先收縮、再擴(kuò)張?zhí)卣鲌D的方式獲取影像的典型特征,還在每個(gè)部分直接獲取U型結(jié)構(gòu)對(duì)稱部分的特征圖(U型圖中間橫線部分),這種融合多張?zhí)卣鲌D的方式最大限度保存了云的類別特征。
(5)Softmax層。主要目的是實(shí)現(xiàn)分類、歸一化處理,并評(píng)價(jià)神經(jīng)網(wǎng)絡(luò)訓(xùn)練是否收斂,達(dá)到最優(yōu)訓(xùn)練效果。本文采用Softmax分類指標(biāo)、交叉熵作為損失函數(shù)。Softmax回歸模型是logistic回歸模型在多分類問題上的推廣,在多個(gè)案例中均取得了較好的效果。式(1)是Softmax值計(jì)算方法,Si為對(duì)應(yīng)的Softmax值,當(dāng)αi代表的值遠(yuǎn)大αk時(shí),Softmax值逼近1;當(dāng)αi代表的值遠(yuǎn)小于αk時(shí),Softmax值逼近0,實(shí)現(xiàn)了輸入特征分類歸一化。
(1)
式中:T代表類別數(shù),在二分類問題中取值為2;αi代表輸入向量中第i個(gè)元素;αk代表輸入權(quán)值向量中元素之和。
Softmax模型采用交叉熵作為損失函數(shù),衡量神經(jīng)網(wǎng)絡(luò)訓(xùn)練效果,如式(2)所示。
(2)
式中:Pi是Softmax模型的輸出值Si中的第i個(gè)元素;yi是一個(gè)一維向量,以0、1的形式保存像素的標(biāo)簽識(shí)別信息。通過觀察loss和精度,可以及時(shí)掌握神經(jīng)網(wǎng)絡(luò)訓(xùn)練效果,并通過調(diào)整相關(guān)參數(shù)提高訓(xùn)練效率。
2)測(cè)試增強(qiáng)算法原理。測(cè)試增強(qiáng)(test time augmentation,TTA)是一種在機(jī)器學(xué)習(xí)中應(yīng)用廣泛的技術(shù)[21],輸入經(jīng)過裁剪、旋轉(zhuǎn)、映射壓縮等處理待檢測(cè)影像,增強(qiáng)其典型特征,以提高識(shí)別精度。盡管經(jīng)過多輪訓(xùn)練、多次迭代后,云檢測(cè)模型逐漸收斂,準(zhǔn)確率趨于飽和,但是僅將待檢測(cè)影像輸入模型中,可能由于典型特征被局部泛化等原因引起云區(qū)域漏檢,所以對(duì)待檢測(cè)影像進(jìn)行TTA處理是十分必要的。圖2是本文設(shè)計(jì)的TTA流程:①將待檢測(cè)影像經(jīng)過旋轉(zhuǎn)、色彩映射等處理得到8張?jiān)鰪?qiáng)數(shù)據(jù),將其與原影像依次輸入云檢測(cè)模型;②將云檢測(cè)模型輸出的特征概率圖執(zhí)行步驟①中幾何操作的逆變換,恢復(fù)待檢測(cè)影像平面坐標(biāo);③對(duì)9張?zhí)卣鞲怕蕡D進(jìn)行求和、平均運(yùn)算,最終輸出云像元概率圖。
圖2 TTA技術(shù)流程圖
1)數(shù)據(jù)預(yù)處理。本文采用Tensorflow機(jī)器學(xué)習(xí)框架進(jìn)行實(shí)驗(yàn)。該框架是一款深度學(xué)習(xí)框架,它封裝了很多深度學(xué)習(xí)工具,如Estimator、Keras等,并提供了良好的可視化功能[22]。語(yǔ)義分割是在圖像分割領(lǐng)域下為解決多分類分割提出的概念,旨在通過深度學(xué)習(xí)高精度地提取多地物輪廓。語(yǔ)義分割神經(jīng)網(wǎng)絡(luò)通過提取訓(xùn)練集中的典型特征訓(xùn)練模型,當(dāng)經(jīng)過多輪訓(xùn)練模型測(cè)試達(dá)到飽和或較高的精度時(shí)停止訓(xùn)練。其中,訓(xùn)練集的大小、數(shù)量、是否涵蓋不同種類地物典型特征對(duì)訓(xùn)練結(jié)果均有一定的影響。一般而言,需要對(duì)影像進(jìn)行一定的預(yù)處理。預(yù)處理主要分為數(shù)據(jù)標(biāo)注、影像分割、數(shù)據(jù)增廣三個(gè)部分。
(1)數(shù)據(jù)標(biāo)注。數(shù)據(jù)標(biāo)注的主要目的是為待訓(xùn)練影像上每個(gè)像素劃分類別。以云檢測(cè)為例,借助Labelme等數(shù)據(jù)標(biāo)注軟件[23],將遙感影像上云覆蓋區(qū)域勾勒矢量邊界,在生成的標(biāo)簽文件中云覆蓋區(qū)域像素被劃分為1,其他區(qū)域被劃分背景像素,賦值為0。選取云量大于50%的高分一號(hào)、資源三號(hào)衛(wèi)星全色影像作為實(shí)驗(yàn)數(shù)據(jù),依次標(biāo)注影像,用于制作樣本庫(kù)。圖3為數(shù)據(jù)標(biāo)注示意圖。
圖3 數(shù)據(jù)標(biāo)注示意圖
(2)影像分割。影像分割的目的是為了選擇合適的影像大小,以便于神經(jīng)網(wǎng)絡(luò)訓(xùn)練。待分割大小取決于顯卡的配置、神經(jīng)網(wǎng)絡(luò)的設(shè)置等參數(shù),一般在64、128、256、512、1 024像素等數(shù)值中取值。本實(shí)驗(yàn)選擇將影像分割為256像素×256像素的小塊,當(dāng)整景不足以繼續(xù)分割時(shí),舍棄這一部分影像。
(3)數(shù)據(jù)增廣。數(shù)據(jù)增廣的目的是為了增加訓(xùn)練集的數(shù)量,便于神經(jīng)網(wǎng)絡(luò)提取樣本庫(kù)主要特征。通過旋轉(zhuǎn)、加椒鹽噪聲、形態(tài)學(xué)變換等處理,將訓(xùn)練集的數(shù)量級(jí)增大到較大的基數(shù)。本實(shí)驗(yàn)中,通過自定義的數(shù)據(jù)增廣函數(shù)(如先隨機(jī)旋轉(zhuǎn)、添加白噪聲等處理),將樣本庫(kù)數(shù)量擴(kuò)大至20 000張影像。
2)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。在已經(jīng)確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上,訓(xùn)練神經(jīng)網(wǎng)絡(luò)仍需確定一些重要參數(shù),這些參數(shù)與實(shí)驗(yàn)結(jié)果息息相關(guān),有的依據(jù)經(jīng)驗(yàn)、有的需要經(jīng)過反復(fù)測(cè)試才能確定最優(yōu)值。本實(shí)驗(yàn)將訓(xùn)練集的0.75用于訓(xùn)練模型,其余0.25用于驗(yàn)證模型精度。batch_size確定為4,epoch為30。batch_size的取值往往為2的次方,取值取決于顯卡的性能、為每個(gè)訓(xùn)練輪次投入的影像數(shù)量。epoch為訓(xùn)練集整體投入神經(jīng)網(wǎng)絡(luò)的輪數(shù)。隨著epoch的增加,準(zhǔn)確率逐漸增大,直至其飽和,趨近于變化緩慢時(shí),epoch取值為最佳,一般而言,初始值會(huì)偏大一點(diǎn),當(dāng)趨近于飽和時(shí)可手動(dòng)取消訓(xùn)練。圖4是訓(xùn)練U-Net神經(jīng)網(wǎng)絡(luò)過程中訓(xùn)練模型時(shí)的損失值(train_loss)、準(zhǔn)確率(train_accuracy),驗(yàn)證模型精度時(shí)的損失值(val_loss)、準(zhǔn)確率(val_accuracy)的變化線性圖。由圖4可知,訓(xùn)練過程中l(wèi)oss持續(xù)下降,從0.25下降到0.095 8;精度持續(xù)上升,從0.897上升至0.963。驗(yàn)證模型精度過程中l(wèi)oss持續(xù)緩慢下降,從0.219下降到0.177;精度持續(xù)上升,從0.912上升至0.937。
圖4 訓(xùn)練神經(jīng)網(wǎng)絡(luò)過程中l(wèi)oss、精度的變化線性圖
如上所述,上述實(shí)驗(yàn)實(shí)現(xiàn)了U-Net云檢測(cè)模型訓(xùn)練,且保持了較高的云檢測(cè)訓(xùn)練精度。在此基礎(chǔ)上,如何實(shí)現(xiàn)輸入影像云檢測(cè)較好的效果仍然是個(gè)難題。應(yīng)用廣泛的方案為:①將整景影像讀入,創(chuàng)建一個(gè)與原始影像大小相同的空白圖像;②從遙感影像左上角開始,依次切割256像素×256像素影像送入模型中,并輸出對(duì)應(yīng)的類別概率圖。但是該方案有一定概率在分塊間存在拼接痕跡,影響云檢測(cè)效果。因此,本文在步驟②的基礎(chǔ)上,每次分塊保持與上一次存在50%的重疊度,以減少拼接的影響,得到初步云檢測(cè)結(jié)果。
采用TTA技術(shù)提高云檢測(cè)精度。首先,依次將待檢測(cè)影像與對(duì)應(yīng)的8張?jiān)鰪?qiáng)圖輸入U(xiǎn)-Net云檢測(cè)模型;其次,依次獲取9張影像對(duì)應(yīng)的云檢概率圖;最后,對(duì)9張?zhí)卣鞲怕蕡D求取每個(gè)像素的平均值,輸出最終云檢測(cè)結(jié)果,并進(jìn)行著色。相比于傳統(tǒng)U-Net地物提取方案,本文所采用的設(shè)置一定重疊度、TTA技術(shù)能提高云檢測(cè)精度,使云覆蓋區(qū)域輪廓識(shí)別精度更高。
如圖5所示,本文方法在實(shí)現(xiàn)云檢測(cè)的同時(shí)避免了細(xì)小噪聲的干擾,并高精度地保留了云輪廓細(xì)節(jié)特征。高分辨率遙感影像具有豐富的紋理信息,但同時(shí)因?yàn)榉直媛瘦^高會(huì)帶有白噪聲,而Otsu等傳統(tǒng)算法對(duì)噪聲敏感,進(jìn)行云檢測(cè)時(shí)會(huì)不可避免地受到噪聲的影響。圖5(b)中黃色圓框部分顯示Otsu云檢測(cè)確實(shí)受到了這些細(xì)小噪聲的影響,同時(shí)將下墊面與云近似的建筑物誤識(shí)別為云,本文方法避免了這一缺點(diǎn),同時(shí)保證了較高的云檢測(cè)精度。
圖5 Otsu與U-Net結(jié)合TTA對(duì)比分析
如圖6所示,當(dāng)輸入單景影像時(shí),U-Net保持了較高的云檢測(cè)精度,且沒有將建筑物等與云灰度相近的地物誤識(shí)別為云,但是碎云、薄云存在一定的漏檢,這是因?yàn)閺拇龣z測(cè)影像中提取的特征輸入模型時(shí),由于角度、灰度映射關(guān)系等原因?qū)е卤缓鲆?。在?jīng)過TTA處理后,云輪廓識(shí)別精度得到提高,與人主觀感受更為一致。在單景影像中經(jīng)過TTA處理后,云檢測(cè)精度得以提升1%~2%,所提升的精度主要與云在影像中所占的比例有關(guān),但不可否認(rèn)的是,TTA提升精度的同時(shí)增加了計(jì)算所需的時(shí)間。
圖6 TTA處理前后對(duì)比
為了評(píng)價(jià)各算法云檢測(cè)精度,分別在多張影像上進(jìn)行了云檢測(cè),與人為勾勒的標(biāo)準(zhǔn)云圖進(jìn)行對(duì)比分析,并計(jì)算出了各個(gè)指標(biāo)的均值。包含以下三個(gè)評(píng)價(jià)指標(biāo):①OA為總體精度,以人為判斷的標(biāo)準(zhǔn)云圖為準(zhǔn),判斷各算法準(zhǔn)確識(shí)別云的概率;②Dice_index為過分割系數(shù),可以評(píng)價(jià)云檢測(cè)結(jié)果與標(biāo)準(zhǔn)圖之間邊緣是否相符,數(shù)量越大輪廓越吻合;③Jaccard_index為杰卡德系數(shù),是圖像分割領(lǐng)域常用的評(píng)價(jià)分割效果的指標(biāo),是與人主觀感受比較一致的量化指標(biāo)。上述指標(biāo)不僅能準(zhǔn)確判斷云識(shí)別精度,還可以評(píng)價(jià)云輪廓識(shí)別精度。如表1所示,綜合各個(gè)指標(biāo),U-Net結(jié)合TTA算法的云檢測(cè)精度高于傳統(tǒng)算法約5%。
表1 U-Net云檢測(cè)結(jié)果對(duì)比
針對(duì)傳統(tǒng)云檢測(cè)算法對(duì)高分辨率遙感影像噪聲敏感這一問題,本文提出一種U-Net結(jié)合TTA的方法。實(shí)驗(yàn)結(jié)果表明,該方法檢測(cè)精度達(dá)到93.2%,高于Otsu等傳統(tǒng)算法約5%。相比于傳統(tǒng)算法、僅使用U-Net的方法,本文算法對(duì)薄云、碎云等不同類型的云均有很好的檢測(cè)效果,同時(shí)保留了云輪廓細(xì)節(jié)特征,與人的主觀感受更一致,具有更高的云檢測(cè)精度。
深度學(xué)習(xí)在遙感影像云檢測(cè)方面雖有較大優(yōu)勢(shì),但仍存在很大的改進(jìn)空間,表現(xiàn)在以下兩個(gè)方面。①模型融合。自U-Net結(jié)構(gòu)提出后,影像分割領(lǐng)域出現(xiàn)了各具優(yōu)勢(shì)的新型結(jié)構(gòu),結(jié)合這些方法與U-Net模型的識(shí)別結(jié)構(gòu),可以兼具二者的優(yōu)勢(shì),提高模型識(shí)別精度。②結(jié)合云的更多特征。本文僅使用了云的紋理特征作為識(shí)別的標(biāo)準(zhǔn),而遙感影像還具備豐富的光譜、空間等特征,值得進(jìn)一步挖掘。