【天池赛事】零基础入门语义分割-地表建筑物识别 Task3:网络模型结构发展
【天池賽事】零基礎(chǔ)入門語義分割-地表建筑物識別
-
Task1:賽題理解與 baseline(3 天)
– 學(xué)習(xí)主題:理解賽題內(nèi)容解題流程
– 學(xué)習(xí)內(nèi)容:賽題理解、數(shù)據(jù)讀取、比賽 baseline 構(gòu)建
– 學(xué)習(xí)成果:比賽 baseline 提交 -
Task2:數(shù)據(jù)擴(kuò)增方法(3 天)
– 學(xué)習(xí)主題:語義分割任務(wù)中數(shù)據(jù)擴(kuò)增方法
– 學(xué)習(xí)內(nèi)容:掌握語義分割任務(wù)中數(shù)據(jù)擴(kuò)增方法的細(xì)節(jié)和使用
– 學(xué)習(xí)成果:數(shù)據(jù)擴(kuò)增方法的實(shí)踐 -
Task3:網(wǎng)絡(luò)模型結(jié)構(gòu)發(fā)展(3 天)
– 學(xué)習(xí)主題:掌握語義分割模型的發(fā)展脈絡(luò)
– 學(xué)習(xí)內(nèi)容: FCN、 Unet、 DeepLab、 SegNet、 PSPNet
– 學(xué)習(xí)成果:多種網(wǎng)絡(luò)模型的搭建 -
Task4:評價(jià)函數(shù)與損失函數(shù)(3 天)
– 學(xué)習(xí)主題:語義分割模型各種評價(jià)函數(shù)與損失函數(shù)
– 學(xué)習(xí)內(nèi)容: Dice、 IoU、 BCE、 Focal Loss、 Lovász-Softmax
– 學(xué)習(xí)成果:評價(jià)/損失函數(shù)的實(shí)踐 -
Task5:模型訓(xùn)練與驗(yàn)證(3 天)
– 學(xué)習(xí)主題:數(shù)據(jù)劃分方法
– 學(xué)習(xí)內(nèi)容:三種數(shù)據(jù)劃分方法、模型調(diào)參過程
– 學(xué)習(xí)成果:數(shù)據(jù)劃分具體操作 -
Task6:分割模型模型集成(3 天)
– 學(xué)習(xí)主題:語義分割模型集成方法
– 學(xué)習(xí)內(nèi)容: LookaHead、 SnapShot、 SWA、 TTA
– 學(xué)習(xí)成果:模型集成思路
Task3:網(wǎng)絡(luò)模型結(jié)構(gòu)發(fā)展
- 1 學(xué)習(xí)目標(biāo)
- 2 FCN
- 2.1 FCN原理及網(wǎng)絡(luò)結(jié)構(gòu)
- 2.2 反卷積(Deconvolutional)
- 2.3 跳躍連接
- 2.4 訓(xùn)練過程
- 3 SegNet
- 4 Unet
- 5 DeepLab
- 6 RefineNet
- 7 PSPNet
- 8 基于全卷積的 GAN 語義分割模型
- 9 具體調(diào)用
- 10 小結(jié)
本章主要講解的是語義分割網(wǎng)絡(luò)模型的發(fā)展: FCN 、 SegNet、 Unet、 DeepLab、 RefineNet、 PSPNet、GAN 語義分割。
語義分割(全像素語義分割)作為經(jīng)典的計(jì)算機(jī)視覺任務(wù)(圖像分類,物體識別檢測,語義分割)。其結(jié)合了圖像分類、目標(biāo)檢測和圖像分割,通過一定的方法將圖像分割成具有一定語義含義的區(qū)域塊,并識別出每個(gè)區(qū)域塊的語義類別,實(shí)現(xiàn)從底層到高層的語義推理過程,最終得到一幅具有逐像素語義標(biāo)注的分割圖像。
1 學(xué)習(xí)目標(biāo)
? 掌握語義分割模型的原理和訓(xùn)練過程;
? 掌握語義分割模型的發(fā)展脈絡(luò);
? 掌握語義分割模型的使用;
2 FCN
2.1 FCN原理及網(wǎng)絡(luò)結(jié)構(gòu)
FCN 首先將一幅 RGB 圖像輸入到卷積神經(jīng)網(wǎng)絡(luò)后,經(jīng)過多次卷積以及池化過程得到一系列的特征圖,然后利用反卷積層對最后一個(gè)卷積層得到的特征圖進(jìn)行上采樣,使得上采樣后特征圖與原圖像的大小一樣,從而實(shí)現(xiàn)對特征圖上的每個(gè)像素值進(jìn)行預(yù)測的同時(shí)保留其在原圖像中的空間位置信息,最后對上采樣特征圖進(jìn)行逐像素分類,逐個(gè)像素計(jì)算 softmax 分類損失。
主要特點(diǎn):
? 不含全連接層(FC)的全卷積(Fully Conv)網(wǎng)絡(luò)。從而可適應(yīng)任意尺寸輸入。
? 引入增大數(shù)據(jù)尺寸的反卷積(Deconv)層。能夠輸出精細(xì)的結(jié)果。
? 結(jié)合不同深度層結(jié)果的跳級(skip)結(jié)構(gòu)。同時(shí)確保魯棒性和精確性。
網(wǎng)絡(luò)結(jié)構(gòu)詳解圖:輸入可為任意尺寸圖像彩色圖像;輸出與輸入尺寸相同,深度為 20 類目標(biāo) + 背景=21,這里的類別與數(shù)據(jù)集類別保持一致。
- FCN網(wǎng)絡(luò)詳解圖
- FCN獲得圖像語義圖
2.2 反卷積(Deconvolutional)
unsamplingd 的操作可以看成是反卷積(Deconvolutional) , 卷積運(yùn)算的參數(shù)和 CNN 的參數(shù)一樣是在訓(xùn)練 FCN 模型的過程中通過 bp 算法學(xué)習(xí)得到。
普通的池化會縮小圖片的尺寸,比如 VGG16 經(jīng)過 5 次池化后圖片被縮小了 32 倍。為了得到和原圖等大小的分割圖,我們需要上采樣、反卷積。
反卷積和卷積類似,都是相乘相加的運(yùn)算。只不過后者是多對一,前者是一對多。而反卷積的前向和反向傳播,只用顛倒卷積的前后向傳播即可。
2.3 跳躍連接
經(jīng)過全卷積后的結(jié)果進(jìn)行反卷積,基本上就能實(shí)現(xiàn)語義分割了,但是得到的結(jié)果通常是比較粗糙的。如上圖所示,對原圖像進(jìn)行卷積 conv1、 pool1 后原圖像縮小為 1/2;之后對圖像進(jìn)行第二次 conv2、pool2 后圖像縮小為 1/4;接著繼續(xù)對圖像進(jìn)行第三次卷積操作 conv3、 pool3 縮小為原圖像的 1/8, 此時(shí)保留 pool3 的 featureMap;接著繼續(xù)對圖像進(jìn)行第四次卷積操作 conv4、 pool4,縮小為原圖像的 1/16,保留 pool4 的 featureMap;最后對圖像進(jìn)行第五次卷積操作 conv5、 pool5,縮小為原圖像的 1/32,然后把原來 CNN 操作中的全連接變成卷積操作 conv6、 conv7,圖像的 featureMap 數(shù)量改變但是圖像大小依然為原圖的 1/32, 此時(shí)圖像不再叫 featureMap 而是叫 heatMap。
現(xiàn)在我們有 1/32 尺寸的 heatMap, 1/16 尺寸的 featureMap 和 1/8 尺寸的 featureMap, 1/32 尺寸的 heatMap 進(jìn)行 upsampling 操作之后,因?yàn)檫@樣的操作還原的圖片僅僅是 conv5 中的卷積核中的特征,限于精度問題不能夠很好地還原圖像當(dāng)中的特征。因此在這里向前迭代,把 conv4 中的卷積核對上一次 upsampling 之后的圖進(jìn)行反卷積補(bǔ)充細(xì)節(jié)(相當(dāng)于一個(gè)插值過程),最后把 conv3 中的卷積核對剛才upsampling 之后的圖像進(jìn)行再次反卷積補(bǔ)充細(xì)節(jié),最后就完成了整個(gè)圖像的還原。
具體來說,就是將不同池化層的結(jié)果進(jìn)行上采樣,然后結(jié)合這些結(jié)果來優(yōu)化輸出,分為 FCN-32s,FCN-16s,FCN-8s 三種,第一行對應(yīng) FCN-32s,第二行對應(yīng) FCN-16s,第三行對應(yīng) FCN-8s。具體結(jié)構(gòu)如下:
圖中, image 是原圖像, conv1,conv2…,conv5 為卷積操作, pool1,pool2,…pool5 為 pool 操作(pool 就是使得圖片變?yōu)樵瓐D的 1/2),注意 con6-7 是最后的卷積層,最右邊一列是 upsample 后的 end to end 結(jié)果。 必須說明的是圖中 nx 是指對應(yīng)的特征圖上采樣 n 倍(即變大 n 倍),并不是指有 n 個(gè)特征圖,如32x upsampled 中的 32x 是圖像只變大 32 倍,不是有 32 個(gè)上采樣圖像,又如 2x conv7 是指 conv7的特征圖變大 2 倍。
(1)FCN-32s過程
只需要留意第一行,網(wǎng)絡(luò)里面有 5 個(gè) pool,所以 conv7 的特征圖是原始圖像 1/32,可以發(fā)現(xiàn)最左邊image 的是 32x32(假設(shè)以倍數(shù)計(jì)),同時(shí)我們知道在 FCN 中的卷積是不會改變圖像大小(或者只有少量像素的減少,特征圖大小基本不會小很多)。看到 pool1 是 16x16, pool2 是 8x8, pool3 是 4x4, pool4 是2x2, pool5 是 1x1,所以 conv7 對應(yīng)特征圖大小為 1x1,然后再經(jīng)過 32x upsampled prediction 圖片變回
32x32。 FCN 作者在這里增加一個(gè)卷積層,卷積后的大小為輸入圖像的 32(25) 倍,我們簡單假設(shè)這個(gè)卷積核大小也為 32,這樣就是需要通過反饋訓(xùn)練 32x32 個(gè)權(quán)重變量即可讓圖像實(shí)現(xiàn) end to end,完成了一個(gè) 32s 的 upsample。 FCN 作者稱做后卷積,他也提及可以稱為反卷積。事實(shí)上在源碼中卷積核的大小為64,同時(shí)沒有偏置 bias。還有一點(diǎn)就是 FCN 論文中最后結(jié)果都是 21?*,這里的 21 是指 FCN 使用的數(shù)據(jù)集分類,總共有 21 類。
(2)FCN-16s過程
現(xiàn)在我們把 1,2 兩行一起看,忽略 32x upsampled prediction,說明 FCN-16s 的 upsample 過程。 FCN作者在 conv7 先進(jìn)行一個(gè) 2x conv7 操作,其實(shí)這里也只是增加 1 個(gè)卷積層,這次卷積后特征圖的大小為conv7 的 2 倍,可以從 pool5 與 2x conv7 中看出來。此時(shí) 2x conv7 與 pool4 的大小是一樣的, FCN 作者提出對 pool4 與 2x conv7 進(jìn)行一個(gè) fuse 操作(事實(shí)上就是將 pool4 與 2x conv7 相加,另一篇博客說是拼接,個(gè)人認(rèn)為是拼接)。 fuse 結(jié)果進(jìn)行 16x upsampled prediction,與 FCN-32s 一樣,也是增加一個(gè)
卷積層,卷積后的大小為輸入圖像的 16(24) 倍。我們知道 pool4 的大小是 2x2,放大 16 倍,就是 32x32,這樣最后圖像大小也變?yōu)樵瓉淼拇笮?#xff0c;至此完成了一個(gè) 16s 的 upsample。現(xiàn)在我們可以知道, FCN 中的upsample 實(shí)際是通過增加卷積層,通過 bp 反饋的訓(xùn)練方法訓(xùn)練卷積層達(dá)到 end to end,這時(shí)卷積層的作用可以看作是 pool 的逆過程。
(3)FCN-8s過程
這是我們看第 1 行與第 3 行,忽略 32x upsampled prediction。 conv7 經(jīng)過一次 4x upsample,即使用一個(gè)卷積層,特征圖輸出大小為 conv7 的 4 倍,所得 4x conv7 的大小為 4x4。然后 pool4 需要一次 2x upsample,變成 2x pool4,大小也為 4x4。再把 4x conv7, 2x pool4 與 pool3 進(jìn)行 fuse,得到求和后的特征圖。最后增加一個(gè)卷積層,使得輸出圖片大小為 pool3 的 8 倍,也就是 8x upsampled prediction 的過程,得到一個(gè) end to end 的圖像。實(shí)驗(yàn)表明 FCN-8s 優(yōu)于 FCN-16s, FCN-32s。我們可以發(fā)現(xiàn),如果
繼續(xù)仿照 FCN 作者的步驟,我們可以對 pool2, pool1 實(shí)現(xiàn)同樣的方法,可以有 FCN 4s, FCN-2s,最后得到 end to end 的輸出。這里作者給出了明確的結(jié)論,超過 FCN-8s 之后,結(jié)果并不能繼續(xù)優(yōu)化。
結(jié)合上述的 FCN 的全卷積與 upsample,在 upsample 最后加上 softmax,就可以對不同類別的大小概率進(jìn)行估計(jì),實(shí)現(xiàn) end to end。最后輸出的圖是一個(gè)概率估計(jì),對應(yīng)像素點(diǎn)的值越大,其像素為該類的結(jié)果也越大。 FCN 的核心貢獻(xiàn)在于提出使用卷積層通過學(xué)習(xí)讓圖片實(shí)現(xiàn) end to end 分類。
事實(shí)上, FCN 有一些短處,例如使用了較淺層的特征,因?yàn)?fuse 操作會加上較上層的 pool 特征值,導(dǎo)致高維特征不能很好得以使用,同時(shí)也因?yàn)槭褂幂^上層的 pool 特征值,導(dǎo)致 FCN 對圖像大小變化有所要求,如果測試集的圖像遠(yuǎn)大于或小于訓(xùn)練集的圖像, FCN 的效果就會變差。
2.4 訓(xùn)練過程
FCN 訓(xùn)練過程分為四個(gè)階段:
第一階段:
以經(jīng)典的分類網(wǎng)絡(luò)為初始化,最后兩級是全連接(紅色),參數(shù)舍棄不用。
第二階段:
從特征圖(16x16x4096)預(yù)測分割小圖(16x16x21),之后直接升采樣為大圖。反卷積(橙色)的步長為 32,這個(gè)網(wǎng)絡(luò)稱為 FCN-32s。
第三階段:
升采樣分為兩次完成(橙色 ?2)。在第二次升采樣前,把第 4 個(gè) pooling 層(綠色)的預(yù)測結(jié)果(藍(lán)色)融合進(jìn)來。使用跳級結(jié)構(gòu)提升精確性。第二次反卷積步長為 16,這個(gè)網(wǎng)絡(luò)稱為 FCN-16s。
第四階段:
升采樣分為三次完成(橙色 ?3)。進(jìn)一步融合了第 3 個(gè) pooling 層的預(yù)測結(jié)果。第三次反卷積步長為8,記為 FCN-8s。這一階段使用單 GPU 訓(xùn)練約需 1 天。
較淺層的預(yù)測結(jié)果包含了更多細(xì)節(jié)信息。比較 2,3,4 階段可以看出, 跳級結(jié)構(gòu)利用淺層信息輔助逐步升采樣,有更精細(xì)的結(jié)果。
FCN 原理參考連接:https://blog.csdn.net/qinghuaci666/article/details/80863032
3 SegNet
Segnet 是用于進(jìn)行像素級別圖像分割的全卷積網(wǎng)絡(luò),分割的核心組件是一個(gè) encoder 網(wǎng)絡(luò),及其相對應(yīng)的 decoder 網(wǎng)絡(luò),后接一個(gè)象素級別的分類網(wǎng)絡(luò)。
encoder 網(wǎng)絡(luò):其結(jié)構(gòu)與 VGG16 網(wǎng)絡(luò)的前 13 層卷積層的結(jié)構(gòu)相似。decoder 網(wǎng)絡(luò):作用是將由 encoder的到的低分辨率的 feature maps 進(jìn)行映射得到與輸入圖像 featuremap 相同的分辨率進(jìn)而進(jìn)行像素級別的分類。
Segnet 的亮點(diǎn): decoder 進(jìn)行上采樣的方式,直接利用與之對應(yīng)的 encoder 階段中進(jìn)行 max-pooling時(shí)的 polling index 進(jìn)行非線性上采樣,這樣做的好處是上采樣階段就不需要進(jìn)行學(xué)習(xí)。上采樣后得到的 feature maps 是非常稀疏的,因此,需要進(jìn)一步選擇合適的卷積核進(jìn)行卷積得到 dense featuremaps 。
SegNet 的思路和 FCN 十分相似,只是 Encoder, Decoder(Unsampling)使用的技術(shù)不一樣。 SegNet的編碼器部分使用的是 VGG16 的前 13 層卷積網(wǎng)絡(luò),每個(gè)編碼器層都對應(yīng)一個(gè)解碼器層,最終解碼器的輸出被送入 soft-max 分類器以獨(dú)立的為每個(gè)像素產(chǎn)生類別概率。
左邊是卷積提取特征,通過 pooling 增大感受野,同時(shí)圖片變小,該過程稱為 Encoder,右邊是反卷積(在這里反卷積與卷積沒有區(qū)別)與 unsampling,通過反卷積使得圖像分類后特征得以重現(xiàn), upsampling還原到原圖像尺寸,該過程稱為 Decoder,最后通過 Softmax,輸出不同分類的最大值,得到最終分割圖。
Encoder編碼器
? 在編碼器處,執(zhí)行卷積和最大池化。
? VGG-16 有 13 個(gè)卷積層。(不用全連接的層)
? 在進(jìn)行最大池化時(shí),存儲相應(yīng)的最大池化索引(位置)。
Decoder編碼器
使用最大池化的索引進(jìn)行上采樣
? 在解碼器處,執(zhí)行上采樣和卷積。最后,每個(gè)像素送到 softmax 分類器。
? 在上采樣期間,如上所示,調(diào)用相應(yīng)編碼器層處的最大池化索引以進(jìn)行上采樣。
? 最后,使用 K 類 softmax 分類器來預(yù)測每個(gè)像素的類別。
4 Unet
U-net 對稱語義分割模型,該網(wǎng)絡(luò)模型主要由一個(gè)收縮路徑和一個(gè)對稱擴(kuò)張路徑組成,收縮路徑用來獲得上下文信息,對稱擴(kuò)張路徑用來精確定位分割邊界。 U-net 使用圖像切塊進(jìn)行訓(xùn)練,所以訓(xùn)練數(shù)據(jù)量遠(yuǎn)遠(yuǎn)大于訓(xùn)練圖像的數(shù)量,這使得網(wǎng)絡(luò)在少量樣本的情況下也能獲得不變性和魯棒性。
? Encoder:左半部分,由兩個(gè) 3x3 的卷積層(RELU)+ 2x2 的 max pooling 層(stride=2)反復(fù)組成,每經(jīng)過一次下采樣,通道數(shù)翻倍;
? Decoder:右半部分,由一個(gè) 2x2 的上采樣卷積層(RELU) + Concatenation(crop 對應(yīng)的 Encoder層的輸出 feature map 然后與 Decoder 層的上采樣結(jié)果相加)+ 2 個(gè) 3x3 的卷積層(RELU)反復(fù)構(gòu)成;
? 最后一層通過一個(gè) 1x1 卷積將通道數(shù)變成期望的類別數(shù)。
5 DeepLab
基于全卷積對稱語義分割模型得到的分割結(jié)果比較粗糙,忽略了像素與像素之間的空間一致性關(guān)系。于是 Google 提出了一種新的擴(kuò)張卷積語義分割模型,考慮了像素與像素之間的空間一致性關(guān)系,可以在不增加數(shù)量的情況下增加感受野。
Deeplabv1 是由深度卷積網(wǎng)路和概率圖模型級聯(lián)而成的語義分割模型,由于深度卷積網(wǎng)路在重復(fù)最大池化和下采樣的過程中會丟失很多的細(xì)節(jié)信息,所以采用擴(kuò)張卷積算法增加感受野以獲得更多上下文信息。考慮到深度卷積網(wǎng)路在圖像標(biāo)記任務(wù)中的空間不敏感性限制了它的定位精度,采用了完全連接條件隨機(jī)場(Conditional Random Field, CRF)來提高模型捕獲細(xì)節(jié)的能力。
Deeplabv2 予以分割模型增加了 ASPP(Atrous spatial pyramid pooling)結(jié)構(gòu),利用多個(gè)不同采樣率的擴(kuò)張卷積提取特征,再將特征融合以捕獲不同大小的上下文信息。
Deeplabv3 語義分割模型,在 ASPP 中加入了全局平均池化,同時(shí)在平行擴(kuò)張卷積后添加批量歸一化,有效地捕獲了全局語義信息。
DeepLabV3+ 語義分割模型在 Deeplabv3 的基礎(chǔ)上增加了編-解碼模塊和 Xception 主干網(wǎng)路,增加編解碼模塊主要是為了恢復(fù)原始的像素信息,使得分割的細(xì)節(jié)信息能夠更好的保留,同時(shí)編碼豐富的上下文信息。增加 Xception 主干網(wǎng)絡(luò)是為了采用深度卷積進(jìn)一步提高算法的精度和速度。在inception 結(jié)構(gòu)中,先對輸入進(jìn)行 11 卷積,之后將通道分組,分別使用不同的 33 卷積提取特征,最后將各組結(jié)果串聯(lián)在一起作為輸出。
主要特點(diǎn):
? 在多尺度上為分割對象進(jìn)行帶洞空間金字塔池化(ASPP)
? 通過使用 DCNNs(空洞卷積)提升了目標(biāo)邊界的定位
? 降低了由 DCNN 的不變性導(dǎo)致的定位準(zhǔn)確率
6 RefineNet
RefineNet 采用了通過細(xì)化中間激活映射并分層地將其鏈接到結(jié)合多尺度激活,同時(shí)防止銳度損失。網(wǎng)絡(luò)由獨(dú)立的 RefineNet 模塊組成,每個(gè)模塊對應(yīng)于 ResNet。
每個(gè) RefineNet 模塊由三個(gè)主要模塊組成,即剩余卷積單元(RCU),多分辨率融合(MRF)和鏈?zhǔn)S喑?#xff08;CRP)。 RCU 塊由一個(gè)自適應(yīng)塊組成卷積集,微調(diào)預(yù)訓(xùn)練的 ResNet 權(quán)重對于分割問題。 MRF 層融合不同的激活物使用卷積上采樣層來創(chuàng)建更高的分辨率地圖。最后,在 CRP 層池中使用多種大小的內(nèi)核用于從較大的圖像區(qū)域捕獲背景上下文。
主要特點(diǎn):
? 提出一種多路徑 refinement 網(wǎng)絡(luò),稱為 RefineNet。這種網(wǎng)絡(luò)可以使用各個(gè)層級的 features,使得語義分割更為精準(zhǔn)。
? RefineNet 中所有部分都利用 resdiual connections (identity mappings),使得梯度更容易短向或者長向前傳,使端對端的訓(xùn)練變得更加容易和高效。
? 提出了一種叫做 chained residual pooling 的模塊,它可以從一個(gè)大的圖像區(qū)域捕捉背景上下文信息。
7 PSPNet
深度卷積神經(jīng)網(wǎng)絡(luò)的每一層特征對語義分割都有影響,如何將高層特征的語義信息與底層識別的邊界與輪廓信息結(jié)合起來是一個(gè)具有挑戰(zhàn)性的問題。
金字塔場景稀疏網(wǎng)絡(luò)語義分割模型(Pyramid Scene Parsing Network, PSP)首先結(jié)合預(yù)訓(xùn)練網(wǎng)絡(luò)ResNet 和擴(kuò)張網(wǎng)絡(luò)來提取圖像的特征,得到原圖像 1/8 大小的特征圖,然后,采用金字塔池化模塊將特征圖同時(shí)通過四個(gè)并行的池化層得到四個(gè)不同大小的輸出,將四個(gè)不同大小的輸出分別進(jìn)行上采樣,還原到原特征圖大小,最后與之前的特征圖進(jìn)行連接后經(jīng)過卷積層得到最后的預(yù)測分割圖像。
? PSPNet 為像素級場景解析提供了有效的全局上下文先驗(yàn)
? 金字塔池化模塊可以收集具有層級的信息,比全局池化更有代表性
? 在計(jì)算量方面,我們的 PSPNet 并沒有比原來的空洞卷積 FCN 網(wǎng)絡(luò)有很大的增加
? 在端到端學(xué)習(xí)中,全局金字塔池化模塊和局部 FCN 特征可以被同時(shí)訓(xùn)練
主要特點(diǎn):
? 金字塔場景解析網(wǎng)絡(luò)是建立在 FCN 之上的基于像素級分類網(wǎng)絡(luò)。將大小不同的內(nèi)核集中在一起激活地圖的不同區(qū)域創(chuàng)建空間池金字塔。
? 特性映射來自網(wǎng)絡(luò)被轉(zhuǎn)換成不同分辨率的激活,并經(jīng)過多尺度處理池層,稍后向上采樣并與原始層連接進(jìn)行分割的 feature map。
? 學(xué)習(xí)的過程利用輔助分類器進(jìn)一步優(yōu)化了像 ResNet 這樣的深度網(wǎng)絡(luò)。不同類型的池模塊側(cè)重于激活的不同區(qū)域地圖。
8 基于全卷積的 GAN 語義分割模型
生成對抗網(wǎng)絡(luò)模型(Generative Adversarial Nets, GAN)同時(shí)訓(xùn)練生成器 G 和判別器 D,判別器用來預(yù)測給定樣本是來自于真實(shí)數(shù)據(jù)還是來自于生成模型。
利用對抗訓(xùn)練方法訓(xùn)練語義分割模型,將傳統(tǒng)的多類交叉熵?fù)p失與對抗網(wǎng)絡(luò)相結(jié)合,首先對對抗網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,然后使用對抗性損失來微調(diào)分割網(wǎng)絡(luò),如下圖所示。左邊的分割網(wǎng)絡(luò)將 RGB 圖像作為輸入,并產(chǎn)生每個(gè)像素的類別預(yù)測。右邊的對抗網(wǎng)絡(luò)將標(biāo)簽圖作為輸入并生成類標(biāo)簽(1 代表真實(shí)標(biāo)注, 0 代表合成標(biāo)簽)。
參考鏈接: https://cloud.tencent.com/developer/article/1589733
9 具體調(diào)用
對于常見的語義分割模型,推薦可以直接使用 segmentation_models_pytorch 庫完成:
import segmentation_models_pytorch as smp model=smp.Unet(encoder_name="resnet34", # choose encoder, e.g. mobilenet_v2 or efficientnet-b7encoder_weights="imagenet", # use imagenet pre-trained weights for encoder initializationin_channels=3, # model input channels (1 for gray-scale images, 3 for RGB, etc.)classes=2, # model output channels (number of classes in your dataset))10 小結(jié)
本章對常見的語義分割網(wǎng)絡(luò)模型進(jìn)行介紹,并使用 segmentation_models_pytorch 完成具體調(diào)用。
? 理解語義分割模型構(gòu)造過程,特別是最終概率值的輸出;
? 理解 FCN 的網(wǎng)絡(luò)模型結(jié)構(gòu)和訓(xùn)練過程;
總結(jié)
以上是生活随笔為你收集整理的【天池赛事】零基础入门语义分割-地表建筑物识别 Task3:网络模型结构发展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于SI522替代FM17522和MFR
- 下一篇: mac下virtualenv使用