陳紅順,鄭榮升
(北京師范大學(xué)珠海分校信息技術(shù)學(xué)院,廣東珠海 519087)
自2006年Hinton提出深度學(xué)習(xí)以來(lái),深度學(xué)習(xí)已經(jīng)在計(jì)算機(jī)視覺(jué)等領(lǐng)域取得了巨大成功[1]。2015 年,Jonathan 等提出全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN),并將其用于圖像語(yǔ)義分割[2],隨后各種深度學(xué)習(xí)語(yǔ)義分割網(wǎng)絡(luò)如UNet、SegNet、DeepLab系列相繼被提出,并在圖像語(yǔ)義分割任務(wù)獲得了不錯(cuò)的效果[3-6]。
建筑物是一種具有顯著特征和代表意義的復(fù)雜人工地物,建筑物的快速、準(zhǔn)確提取對(duì)城市規(guī)劃、災(zāi)害評(píng)估等應(yīng)用具有重要意義。目前,已有基于深度學(xué)習(xí)的建筑物提取研究大多將建筑物提取看作是遙感圖像的語(yǔ)義分割[7-8]。實(shí)際上,建筑物提取是一個(gè)典型的實(shí)例分割問(wèn)題,在關(guān)注某個(gè)像素是不是建筑物的同時(shí),還應(yīng)該關(guān)注建筑物的空間位置和建筑物的數(shù)量[9]。Mask R-CNN 作為一個(gè)實(shí)例分割模型,已應(yīng)用到許多領(lǐng)域,并具有較高的分割精度[10-11]。目前,國(guó)內(nèi)外部分學(xué)者將Mask R-CNN 用于遙感建筑物提取,取得了一定成果[12-13]。
實(shí)例分割可以看成是目標(biāo)檢測(cè)和語(yǔ)義分割相結(jié)合,不僅需要正確找到圖像中的目標(biāo),還需要對(duì)每個(gè)目標(biāo)的像素進(jìn)行精確分割。Mask R-CNN 是一個(gè)用于實(shí)例分割的通用架構(gòu),是對(duì)目標(biāo)檢測(cè)網(wǎng)絡(luò)Faster R-CNN[14]的擴(kuò)展。Mask R-CNN 由兩部分構(gòu)成,一部分是負(fù)責(zé)目標(biāo)檢測(cè)的Faster R-CNN;另一部分是預(yù)測(cè)目標(biāo)掩膜(Mask)的FCN。此外,Mask R-CNN 使用ROIAlign 替代Faster R-CNN 中的RoiPooling,提高了目標(biāo)檢測(cè)的精度,同時(shí)也有利于實(shí)例分割。Mask R-CNN 定義了一個(gè)多任務(wù)損失,如式(1)所示:
其中,Lcls和Lbox分別為分類誤差和檢測(cè)誤差;Lmask是語(yǔ)義分割分支的損失。輸入Mask 分支的每個(gè)特征圖經(jīng)過(guò)一系列卷積和轉(zhuǎn)置卷積操作后,輸出k×m×m大小的特征圖,k表示輸出的維度即總類別數(shù),每一個(gè)維度對(duì)應(yīng)一個(gè)類別可以有效規(guī)避類間競(jìng)爭(zhēng),m×m表示特征圖的大小。Lmask為平均二值交叉熵函數(shù),其對(duì)每一個(gè)像素進(jìn)行分類,對(duì)每一個(gè)維度利用sigmoid 函數(shù)進(jìn)行二分類,從而判斷其所屬類別。
Mask R-CNN 有兩種網(wǎng)絡(luò)結(jié)構(gòu):Faster R-CNN/ResNet 和Faster R-CNN/FPN,如圖1 所示。前者是在Faster R-CNN 基礎(chǔ)上添加分支用于實(shí)例分割任務(wù),并且與分類和box回歸任務(wù)共享大部分特征,最后上采樣到14×14 大小的特征圖,再使用1×1 卷積得到80(目標(biāo)類別數(shù))個(gè)Mask;后者是在Faster R-CNN/FPN 的基礎(chǔ)上添加分支用于實(shí)例分割任務(wù),特征直接來(lái)自Roi Align,得到14×14的Pooling特征,經(jīng)過(guò)四個(gè)3×3 大小卷積核的卷積以及一個(gè)反卷積,最后得到28×28 大小的特征圖,同樣使用1×1 卷積得到80(目標(biāo)類別數(shù))個(gè)Mask。
圖1 Mask R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
文中基于TensorFlow與Keras實(shí)現(xiàn)了Mask R-CNN,采用Faster R-CNN/ResNet 結(jié)構(gòu)(見(jiàn)圖2),其中主干網(wǎng)絡(luò)分別選擇ResNet50、ResNet101和ResNe Xt101[15]提取原始遙感圖像的特征,采用RPN(Region Proposal Network)網(wǎng)絡(luò)區(qū)域候選生成框,使用ROI Align 方法進(jìn)行區(qū)域特征聚集,語(yǔ)義分割與分類、回歸部分并行地采用不同的網(wǎng)絡(luò)。
圖2 文中網(wǎng)絡(luò)結(jié)構(gòu)
SpaceNet 是用于建筑物和道路提取的衛(wèi)星遙感數(shù)據(jù)集,文中選取Las Vegas 區(qū)域用于訓(xùn)練和測(cè)試。該區(qū)域的遙感影像由Wordview-3 衛(wèi)星拍攝,分辨率為0.3 m,數(shù)據(jù)集已將原始遙感影像裁剪為200 m×200 m 固定大小的影像,并以Geojson文件標(biāo)記出影像中對(duì)應(yīng)的建筑物多邊形,影像覆蓋范圍共計(jì)216 km2,包含151 367 個(gè)建筑物多邊形。該遙感影像為包含八個(gè)波段的多光譜影像,像元深度為16 位。首先從多光譜影像中提取RGB 波段,然后做歸一化處理,最終合成彩色圖像;從Geojson 文件提取出建筑物的坐標(biāo),并生成相應(yīng)的建筑物掩膜圖像,如圖3 所示。訓(xùn)練集和測(cè)試集的劃分采用數(shù)據(jù)集的默認(rèn)劃分,每次訓(xùn)練從訓(xùn)練集中隨機(jī)選取10%作為驗(yàn)證集。
圖3 SpaceNet數(shù)據(jù)集示例數(shù)據(jù)
模型的訓(xùn)練和測(cè)試在裝有兩個(gè)GPU(型號(hào)為NVDIA GeForce RTX 2080Ti 11 GB)的計(jì)算機(jī)上進(jìn)行。SpaceNet 數(shù)據(jù)量較少,直接在SpaceNet 數(shù)據(jù)集訓(xùn)練模型難以收斂。COCO 是一個(gè)大型圖像數(shù)據(jù)集,可用于目標(biāo)檢測(cè)、語(yǔ)義分割、實(shí)例分割等常見(jiàn)的計(jì)算機(jī)視覺(jué)任務(wù)[16]。由于COCO 數(shù)據(jù)集里包含了大量不同類型的圖像,因此非常適合用于模型的預(yù)訓(xùn)練。文中先將Mask R-CNN 模型在COCO 數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練,然后在SpaceNet 數(shù)據(jù)集上直接加載在COCO 數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練得到的模型權(quán)重,繼續(xù)進(jìn)行訓(xùn)練。訓(xùn)練過(guò)程中,模型(主干網(wǎng)絡(luò)為ResNet101)的總損失和Mask 部分損失的變化如圖4 所示。從圖4 可以看出,當(dāng)模型訓(xùn)練到160 個(gè)epoch 時(shí),總損失與Mask 部分損失均達(dá)到較低水平,模型停止訓(xùn)練。
圖4 訓(xùn)練過(guò)程中的loss變化曲線
為了評(píng)價(jià)建筑物提取的效果,采用常用的評(píng)價(jià)指標(biāo)AP(Average Precision)對(duì)檢測(cè)精度和Mask 精度進(jìn)行評(píng)價(jià)。
設(shè)P、R分別代表精準(zhǔn)率(Precision)與召回率(Recall),計(jì)算公式分別如下:
式中,TP 表示正確預(yù)測(cè)的類別;FP 表示錯(cuò)誤預(yù)測(cè)的類別;FN 表示未被預(yù)測(cè)的類別。以R為橫軸、P值為縱軸,可以得到PR曲線。AP 表示平均精準(zhǔn)度,就是對(duì)PR曲線上的P值求均值。
在實(shí)際建筑物提取中,隨機(jī)選取10 張建筑物提取結(jié)果圖像用于精度評(píng)價(jià)。先計(jì)算建筑物預(yù)測(cè)邊界矩形與真實(shí)建筑物邊界矩形的并交比(IoU),如果IoU≥0.5,則認(rèn)為該建筑物被正確檢測(cè),屬于TP 類別;若檢測(cè)為建筑物但實(shí)際為非建筑物,則屬于FP類別;沒(méi)有被檢測(cè)出的建筑物屬于FN 類別。最后統(tǒng)計(jì)各類別(TP、FP 和FN)數(shù)量用于計(jì)算相應(yīng)AP,從而對(duì)檢測(cè)精度進(jìn)行評(píng)價(jià)。對(duì)于檢測(cè)到的建筑物,根據(jù)建筑物Mask 分支得到的分割結(jié)果和相應(yīng)的建筑物掩膜,評(píng)價(jià)建筑物分割精度。在建筑物分割精度評(píng)價(jià)中,TP 表示正確預(yù)測(cè)的建筑物像元,F(xiàn)P 表示錯(cuò)誤預(yù)測(cè)的建筑物像元,F(xiàn)N 表示未被預(yù)測(cè)的建筑物像元,然后統(tǒng)計(jì)各類別(TP、FP 和FN)像元數(shù)量,計(jì)算相應(yīng)AP 用于評(píng)價(jià)Mask 精度。
為比較不同主干網(wǎng)絡(luò)對(duì)訓(xùn)練精度的影響,對(duì)采用不同主干網(wǎng)絡(luò)的Mask R-CNN 分別進(jìn)行160 個(gè)epoch 訓(xùn)練后,在測(cè)試集上進(jìn)行建筑物提取,按照2.3節(jié)進(jìn)行精度評(píng)價(jià),其結(jié)果如表1 所示。圖5 是利用訓(xùn)練后的Mask R-CNN 模型(主干網(wǎng)絡(luò)為ResNet101)在測(cè)試集進(jìn)行建筑物自動(dòng)提取的結(jié)果。從圖5 可以看出,Mask R-CNN 建筑物提取的效果整體比較理想,主干網(wǎng)絡(luò)采用ResNet50 的模型,其建筑物檢測(cè)精度和Mask 精度均較高,分別達(dá)到了88.44%、85.23%;主干網(wǎng)絡(luò)采用ResNet101 和ResNeXt101[15]的模型建筑物提取精度非常接近,均明顯優(yōu)于主干網(wǎng)絡(luò)采用ResNet50 的模型,檢測(cè)精度和Mask 精度分別達(dá)到了96%、94%以上。
表1 Mask R-CNN不同主干網(wǎng)絡(luò)的精度比較
圖5 Mask R-CNN建筑物提取結(jié)果
仔細(xì)觀察圖5 可以發(fā)現(xiàn),Mask R-CNN 在建筑物檢測(cè)方面還存在一些問(wèn)題,主要表現(xiàn)在:①目標(biāo)較小的建筑物存在部分像素丟失的情況;②建筑物較為密集的區(qū)域存在建筑物數(shù)量提取不準(zhǔn)確的問(wèn)題,這些問(wèn)題將在后續(xù)研究中進(jìn)行改進(jìn)。
為滿足建筑物自動(dòng)提取的需要,基于TensorFlow與Keras 實(shí)現(xiàn)了Mask R-CNN 網(wǎng)絡(luò),在COCO 數(shù)據(jù)集經(jīng)預(yù)訓(xùn)練后,在SpaceNet 數(shù)據(jù)集上進(jìn)行了建筑物提取實(shí)驗(yàn)。結(jié)果表明,基于Mask R-CNN 的建筑物提取精度較高,主干網(wǎng)絡(luò)采用ResNet101 和ResNeXt101模型的檢測(cè)精度、Mask 精度分別達(dá)到96%、94%以上,明顯優(yōu)于主干網(wǎng)絡(luò)采用ResNet50 的模型,但也存在小目標(biāo)建筑物部分像素丟失、建筑物密集區(qū)域建筑物數(shù)量提取不準(zhǔn)確等問(wèn)題,后續(xù)需要進(jìn)一步深入研究。