李天平 李功權(quán)



關(guān)鍵詞:鑄體薄片;遷移學(xué)習(xí);孔隙;語義分割
鑄體薄片中孔隙分析是分析儲(chǔ)層孔隙結(jié)構(gòu)的重要方法,薄片中孔隙分割是進(jìn)行孔隙分析的關(guān)鍵一步。傳統(tǒng)做法是利用目測法、計(jì)數(shù)法和圖像處理算法對(duì)孔隙進(jìn)行分割。但是目測法和計(jì)數(shù)法不僅要求研究人員具有專業(yè)的地質(zhì)知識(shí)而且效率低下分割結(jié)果受主觀因素影響。
傳統(tǒng)的圖像處理技術(shù)中用于孔隙分割的方法有閾值法、邊緣檢測法、區(qū)域生長算法、分裂合并法和聚類分割法[1]。但這些傳統(tǒng)方法只依賴顏色特征且需要大量的人工交互,無法實(shí)現(xiàn)自動(dòng)化分割孔隙。
人工神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,為解決鑄體薄片孔隙分割問題提供了新方法。蔡宇恒等人基于Unet模型完成孔隙分割任務(wù),但不足在于模型單一數(shù)據(jù)量少[2]。
鑄體薄片圖像孔隙結(jié)構(gòu)形態(tài)各異,空間分布復(fù)雜,如何獲取更高級(jí)的孔隙抽象特征;受采樣的影響,鑄體薄片圖像數(shù)量并不多,如何提高模型精度;如何縮短深度學(xué)習(xí)模型的訓(xùn)練周期。針對(duì)以上問題,本研究對(duì)比主要的語義分割模型用于鑄體薄片圖像孔隙分割的效果,采取遷移學(xué)習(xí)方法減少訓(xùn)練所需的鑄體薄片數(shù)據(jù)量,并采取召回率、準(zhǔn)確率、精確度和F1值對(duì)各個(gè)模型進(jìn)行評(píng)價(jià),以優(yōu)選鑄體薄片孔隙分割模型。
1 深度學(xué)習(xí)圖像分割原理對(duì)比
1.1 經(jīng)典語義分割模型分析
在語義分割領(lǐng)域內(nèi)常用的卷積網(wǎng)絡(luò)模型是全卷積神經(jīng)網(wǎng)絡(luò)(FCN)、Unet模型、特征金字塔模型(FPN)和SegNet模型。因此本文選擇這四種經(jīng)典的語義分割模型作為孔隙分割模型的基本網(wǎng)絡(luò)結(jié)構(gòu)。
1.1.1 全卷積神經(jīng)網(wǎng)絡(luò)模型
全卷積神經(jīng)網(wǎng)絡(luò)是卷積神經(jīng)網(wǎng)絡(luò)的一種擴(kuò)展,是首個(gè)用于語義分割任務(wù)中的模型,廣泛用于語義分割,特別是用于醫(yī)學(xué)圖像分割[3],該網(wǎng)絡(luò)分為編碼器和解碼器兩部分。編碼器主要用于特征提取,編碼器后擴(kuò)展了一個(gè)解碼器部分,該解碼器采用上采樣層恢復(fù)圖像尺寸得到最后的分割圖。關(guān)于全卷積神經(jīng)網(wǎng)絡(luò)的編碼層和解碼層的示意圖如圖1所示。全卷積網(wǎng)絡(luò)的編碼層用于收集圖像中的各種特征,而解碼層實(shí)現(xiàn)精確定位。為了避免空間信息的丟失,使用跳躍連接保證解碼層可以從編碼層獲得這些空間信息。
1.1.2 Unet 網(wǎng)絡(luò)模型
Unet作為全卷積網(wǎng)絡(luò)的一種重要擴(kuò)展結(jié)構(gòu)如圖2所示,在全卷積層的基礎(chǔ)上增加了上采用層和跳躍連接的數(shù)量,保證模型將特征信息整合到具有更高分辨率的網(wǎng)絡(luò)層[4]。模型的解碼器部分與編碼器部分形成對(duì)稱結(jié)構(gòu),產(chǎn)生了一個(gè)U型結(jié)構(gòu)。Unet的編碼器是多個(gè)卷積塊組成,每個(gè)卷積塊由兩個(gè)3×3卷積層接著進(jìn)行RuLU進(jìn)行非線性化,最后一個(gè)2×2的最大池化層。Unet的解碼器部分,每個(gè)卷積塊后面跟著一個(gè)反卷積層。這個(gè)反卷積層對(duì)圖像進(jìn)行上采樣,這意味著圖像的大小加倍,特征通道的數(shù)量減半。最后一個(gè)反卷積層可以將圖像恢復(fù)到原始圖像的大小。最后,一個(gè)1×1的卷積層并使用sigmoid激活函數(shù)產(chǎn)生圖像每個(gè)像素的最終預(yù)測。Unet網(wǎng)絡(luò)一共有23個(gè)卷積層,編碼器和解碼器之間的同等級(jí)卷積塊通過跳躍連接合并。
1.1.3 FPN 網(wǎng)絡(luò)模型
另一類重要分割模型特征金字塔網(wǎng)絡(luò)模型(FPN) 是2017年提出來的一種網(wǎng)絡(luò)如圖3所示,F(xiàn)PN主要是用來解決物體分割多尺度問題[5]。其主要特征是既不增加模型計(jì)算量又提高小物體分割正確率。FPN構(gòu)建了一個(gè)從下到上模塊、從上到下模塊和橫向連接模塊的特征金字塔。從下到上模塊主要作用是產(chǎn)生一個(gè)由幾個(gè)不同尺度特征圖組成的特征層次結(jié)構(gòu)。從上到下模塊對(duì)特征金字塔更高層的特征圖進(jìn)行反卷積得到分辨率特征圖,特征金字塔越高層的特征圖分辨率越低,語義特征強(qiáng)。這些特征圖與從下到上模塊的特征圖進(jìn)行融合,來自從下到上的特征圖都經(jīng)過1×1的卷積操作以減少特征通道。最后,在橫向連接路徑上對(duì)每個(gè)特征圖進(jìn)行3×3的卷積操作,最后這些特征圖都將進(jìn)行融合產(chǎn)生最后的預(yù)測圖,F(xiàn)PN的結(jié)構(gòu)圖如圖3所示。但是FPN在解碼器中每一階段都會(huì)獨(dú)立產(chǎn)生預(yù)測并且在最后合并這些預(yù)測,Unet只在最后階段產(chǎn)生預(yù)測。
1.1.4 SegNet 網(wǎng)絡(luò)模型
SegNet另一類非常重要的語義分割模型,在模型結(jié)構(gòu)上與Unet非常相似,只是在解碼器部分中的上采樣不同[6]。SegNet的特點(diǎn)是對(duì)解碼器部分的低分辨率特征圖上采樣方式做了改進(jìn)。具體做法是編碼器中每一個(gè)最大池化過程中保存其池化索引即最大值的索引,在解碼器部分利用這些索引做非線性上采樣。這些經(jīng)過上采樣的特征圖是稀疏的,再對(duì)其做可訓(xùn)練的卷積操作產(chǎn)生密集的特征圖。采用這種方法的上采樣可以避免FCN中學(xué)習(xí)上采樣帶來的消耗,再使用卷積操作特征圖,避免保存特征圖產(chǎn)生的額外空間消耗。
1.2 模型融合
為提高孔隙分割效果,要求孔隙分割模型能提取到更抽象的特征用于孔隙分割。為提高孔隙分割模型的特征提取能力,將經(jīng)典的分類模型與語義分割模型進(jìn)行融合。本文選取經(jīng)典的分類模型有Vgg、Mo?bilenet 和ResNet50,這些模型在圖像分類上表現(xiàn)優(yōu)秀,證明了這些模型的特征提取能力很強(qiáng)。各種主流語義分割網(wǎng)絡(luò)模型中的編碼器與分類模型類似,只需將分類模型中的全連接層替換成卷積層就可以作為編碼器使用。這些優(yōu)秀分類模型與經(jīng)典的語義分割模型相結(jié)合,孔隙分割模型的編碼器更容易抽取特征。結(jié)合后的語義分割模型命名就使用下連接線將兩部分模型名稱連接起來,比如VGG_FCN表示FCN 的編碼器部分采用VGG模型。通過分類模型與語義分割模型結(jié)合,得到孔隙分割模型,分別是Vgg_FCN_8、Vgg_FCN_32、Mobilenet_FCN_8、Mobilenet_FCN_32、Vgg_Unet、Resnet50_Unet、Mobilenet_Unet、Vgg_SegNet 和Resnet50_SegNet。
1.3 模型初始化
從零開始訓(xùn)練一個(gè)語義分割模型,需要大量的圖像數(shù)據(jù)和對(duì)應(yīng)的標(biāo)簽數(shù)據(jù)。鑄體薄片中孔隙遍布全圖而且形狀不規(guī)則,在這種情況下進(jìn)行孔隙標(biāo)注效率低下,很難完成大規(guī)模數(shù)據(jù)標(biāo)記工作。遷移學(xué)習(xí)為解決孔隙標(biāo)注提供了一種有效的方法。
遷移學(xué)習(xí)是將已訓(xùn)練的模型運(yùn)用到相關(guān)聯(lián)問題的一種新的機(jī)器學(xué)習(xí)方法,目的是遷移已訓(xùn)練模型來解決目標(biāo)領(lǐng)域中僅有少量甚至沒有標(biāo)簽樣本數(shù)據(jù)的學(xué)習(xí)問題[7]。相對(duì)于隨機(jī)賦值權(quán)重訓(xùn)練模型,利用遷移學(xué)習(xí)微調(diào)模型效率更快。張軍軍等人利用遷移學(xué)習(xí)完成道路提取模型的訓(xùn)練,先在開源大型數(shù)據(jù)庫ImageNet上預(yù)訓(xùn)練模型并保存最優(yōu)模型,再遷移預(yù)訓(xùn)練保存的模型利用道路數(shù)據(jù)集對(duì)模型,進(jìn)行微調(diào)加速模型訓(xùn)練[8]。祝一諾等人利用遷移學(xué)習(xí)方法訓(xùn)練了Inception-V3 模型,用來識(shí)別遙感圖像中的建筑垃圾[9]。上述研究說明,遷移學(xué)習(xí)的可行性和高效性。
使用遷移學(xué)習(xí)的方法將已經(jīng)在ImageNet上完成圖像分類的VGG16、Resnet50和Mobilenet的權(quán)重,作為本文中語義分割模型編碼器參數(shù)的初始化,然后在訓(xùn)練中微調(diào)模型參數(shù)[10]。
2 實(shí)驗(yàn)過程及結(jié)果
2.1 實(shí)驗(yàn)前的準(zhǔn)備工作
2.1.1 模型參數(shù)及孔隙標(biāo)注
模型損失函數(shù)采用分類交叉熵函數(shù)(categori?cal_crossentropy loss) 。模型優(yōu)化函數(shù)采用Adam,經(jīng)過大量的實(shí)踐證明,Adam的工作表現(xiàn)良好,并優(yōu)于其他隨機(jī)優(yōu)化算法[11]。表1是其參數(shù)設(shè)置,模型訓(xùn)練過程中利用tensorflow提供的數(shù)據(jù)增強(qiáng)方法增加數(shù)據(jù)量。
孔隙標(biāo)注采取半人工手段對(duì)鑄體薄片中孔隙進(jìn)行分割。標(biāo)簽數(shù)據(jù)的制作借助ImageJ完成,ImageJ是一款專業(yè)的、開源的圖像處理軟件。利用ImageJ提供的閾值法完成對(duì)大部分孔隙的分割,再利用ImageJ提供的Paintbrush Tool 手動(dòng)選擇閾值法無法識(shí)別的孔隙。將所有的標(biāo)簽數(shù)據(jù)分割成224×224×3作為模型輸入數(shù)據(jù),分割后一共得到圖像1403張。
2.1.2 模型評(píng)價(jià)指標(biāo)
利用準(zhǔn)確率(Accuracy)、精確度(Precision)、召回率(Recall)和F1 分?jǐn)?shù)(F1-score)評(píng)價(jià)分割網(wǎng)絡(luò)模型的優(yōu)劣。有部分鑄體薄片中巖石占了絕大部分,在這種情況下,即使把圖中所有孔隙全部分類為巖石顆粒,此時(shí)的模型準(zhǔn)確率依然會(huì)很高。因此只用準(zhǔn)確率無法客觀評(píng)價(jià)模型的優(yōu)劣,又引入精確度、召回率和F1分?jǐn)?shù)。精確度和召回率是一對(duì)矛盾的性能度量指標(biāo),精確度越高時(shí)召回率往往會(huì)很低。F1-score綜合了Re?call和Precision,對(duì)模型優(yōu)劣進(jìn)行更客觀的評(píng)價(jià)。
2.2 孔隙分割結(jié)果
表2將展示在測試集上表現(xiàn)最優(yōu)的各類模型。在表2 中,F(xiàn)1 分?jǐn)?shù)最高的是由Mobilenet_unet 所獲96.2%,緊隨其后的是Resnet50_unet獲得的96.19%,兩種模型的性能幾乎一樣。在召回率上的表現(xiàn),Mo?bilenet_uent 達(dá)到了96.87%,認(rèn)為該模型正確預(yù)測了96.87% 的孔隙。在精確度上的表現(xiàn),Resnet50_unet 達(dá)到了96.02%,認(rèn)為所有被模型預(yù)測為孔隙的像素中有96.02% 的像素是孔隙。在準(zhǔn)確率上的表現(xiàn),Mo?bilenet_unet 達(dá)到了97.95%,認(rèn)為模型的預(yù)測中有97.95%的像素被正確分類。Mobilenet_Segnet的模型文件是所有模型中最小的,只有63.3M,模型文件小,意味對(duì)計(jì)算機(jī)存儲(chǔ)要求低,模型的加載速度快。模型訓(xùn)練時(shí)間最短的模型是Mobilenet_unet,模型訓(xùn)練時(shí)間越短,對(duì)計(jì)算機(jī)的計(jì)算壓力就越小。
3 討論
由表2可知,Mobilenet_unet 的F1分?jǐn)?shù)最高達(dá)到了96.20%,緊隨其后的便是Resnet50_unet的96.19%。在本部分需要討論Resnet50_unet和Mobilenet_unet這兩種模型哪個(gè)更適合用于對(duì)鑄體薄片孔隙進(jìn)行語義分割。圖4 和圖5 分別展示了Mobilenet_unet 和Resnet50_unet 在驗(yàn)證集上的F1分?jǐn)?shù)、召回率、精確度和準(zhǔn)確率。兩種模型在測試集中各張圖片的分割效果相差不大,Mobilenet_unet在驗(yàn)證集中有14張圖片的F1分?jǐn)?shù)達(dá)到了0.95以上,而Resnet50_unet有15張圖片的F1分?jǐn)?shù)達(dá)到了0.95以上。圖6展示了驗(yàn)證集中幾張圖片、真實(shí)分割圖片以及Mobilenet_unetResnet50_unet兩種模型的預(yù)測圖。圖6可以說明這兩種模型對(duì)鑄體薄片中的大部分孔隙實(shí)現(xiàn)了有效的分割,但是對(duì)于圖6的圖d中粒間孔隙的分割效果不好。從圖6 可以得出一個(gè)結(jié)論:Mobilenet_unet 和Resnet50_unet兩種模型對(duì)粒間孔隙以及溶蝕孔隙分割效果不好,其他類型的孔隙都可以進(jìn)行有效分割。通過對(duì)以上幾種模型預(yù)測結(jié)果的分析,認(rèn)為Mo?bilenet_unet和Resnet50_unet兩種模型對(duì)鑄體薄片孔隙分割的效果幾乎一樣,沒有發(fā)現(xiàn)明顯的差距。但是在模型大小方面,Mobilenet_unet的一個(gè)模型參數(shù)文件才72.1MB,Resnet50_unet 的一個(gè)模型參數(shù)文件已經(jīng)達(dá)到了187MB。在模型參數(shù)文件大小方面,Mo?bilenet_unet相對(duì)Resnet50_unet具有很大的優(yōu)勢。模型越小,在訓(xùn)練過程中對(duì)計(jì)算機(jī)的GPU要求就越低,模型較小不會(huì)占用過多的內(nèi)存資源。一般認(rèn)為,在模型的分割性能差不多的情況下,模型越小越好。Mo?bilenet_unet不僅在模型文件大小方面具有優(yōu)勢,而且在模型訓(xùn)練時(shí)間方面,也比Resnet50_unet更短,Mo?bilenet_unet和Resnet50_unet的模型訓(xùn)練時(shí)間分別是1.6h和6.32h。不管是從模型預(yù)測性能、模型參數(shù)文件大小還是模型訓(xùn)練時(shí)間,Mobilenet_unet是最適合進(jìn)行鑄體薄片孔隙分割的模型。從圖4 觀察,Mo?bilenet_unet對(duì)測試集圖片進(jìn)行預(yù)測,大部分預(yù)測圖的F1值達(dá)到0.95以上,與表1中模型在驗(yàn)證集中平均F1 為0.9620非常接近,證明Mobilenet_unet泛化能力強(qiáng)。
4 結(jié)論
為了實(shí)現(xiàn)鑄體薄片圖像孔隙自動(dòng)分割的目標(biāo),本文對(duì)比了經(jīng)典語義分割模型,利用遷移學(xué)習(xí)解決鑄體薄片數(shù)據(jù)量少,而影響孔隙分割準(zhǔn)確率的問題。實(shí)驗(yàn)結(jié)果表明,Mobilenet_unet和Resnet50_unet兩種模型在準(zhǔn)確率、召回率、精確率和F1分?jǐn)?shù)表現(xiàn)上非常接近,因此認(rèn)為兩個(gè)模型在孔隙分割效果幾乎一樣。但是Mo?bilenet_unet在訓(xùn)練時(shí)間和模型大小上占據(jù)優(yōu)勢,所以Mobilenet_unet更適合用于鑄體薄片孔隙分割。