趙陳 劉小鋒 劉樹參
摘 要:本文基于現(xiàn)代自動識別技術(shù),利用深度學(xué)習(xí)的開源框架TensorFlow訓(xùn)練識別模型,建立數(shù)據(jù)集,對花綠、灰瑪瑙、白鉛礦、輝銻礦、天青石、瑪瑙晶洞、菱鐵礦、藍(lán)金砂、條紋瑪瑙、油頁巖、鋁土礦以及普通輝石等十二種礦物進(jìn)行圖像識別并對礦物性質(zhì)進(jìn)行介紹。訓(xùn)練模型有利于向社會大眾推廣地質(zhì)知識以及有利于高校地質(zhì)相關(guān)專業(yè)學(xué)生學(xué)習(xí)。模型訓(xùn)練完成后,可以對模型準(zhǔn)確率進(jìn)行驗證,在本文中識別的十二種巖石類型中,每次識別后輸出識別概率最大的兩種巖石類別,其中TOP2的識別準(zhǔn)確率為95.6%,達(dá)到預(yù)期效果。模型訓(xùn)練完成后,便可部署訓(xùn)練好的模型對拍攝所得圖片進(jìn)行識別。
關(guān)鍵詞:巖石;自動識別;Inception v3
1模型介紹
Inception v3這種更深的網(wǎng)絡(luò)結(jié)構(gòu)是基于Inception module子網(wǎng)構(gòu)建的,該結(jié)構(gòu)使GoogLeNet能夠更有效地利用參數(shù),因此,相對于AlexNet少了10倍的參數(shù)。針對每個Inception module,其輸入被拷貝四份供不同的層使用,即圖中三個1*1+1(S)卷積層和一個3*3+1(S)最大池化層。第二層的三個卷積層為1*1+1(S),3*3+1(S),5*5+1(S),能夠獲取到不同尺度的特征模式。該結(jié)構(gòu)中所有的卷積層都使用ReLU激活函數(shù)。
Inception module中,所有層的步長均為1,并且使用了SAME填充,因此,各個層的輸出具有相同的尺寸(深度可以不同)。由于各個輸出具有相同的尺寸,可以將其沿深度方向疊加,構(gòu)成深度疊加層(depth concat layer),該層可以通過TensorFlow中的concat函數(shù)實現(xiàn),其中axis=3(axis 3為深度方向)。Inception module中使用了1*1+1(S)的過濾器(卷積核),其作用如下:相比輸入,其輸出更少的特征圖,起到了降維的作用,因此稱為瓶頸層。當(dāng)在3*3和5*5等計算量巨大的卷積層之前使用時,其作用尤其明顯。1*1,3*3和1*1,5*5的結(jié)構(gòu),構(gòu)成了更有效的卷積層,能夠獲取更復(fù)雜的特征模式。實際上,在對輸入圖像進(jìn)行遍歷掃描時,這種卷積層組合相當(dāng)于一個兩層神經(jīng)網(wǎng)絡(luò),而不是簡單的線性分類。綜上,可以將一個Inception module視為一個卷積層,能夠輸出具有不同尺度的復(fù)雜特征模式的特征圖。
2數(shù)據(jù)增強(qiáng)及處理
識別模型的深度學(xué)習(xí)需要擁有充足數(shù)量的訓(xùn)練樣本。訓(xùn)練樣本越多,訓(xùn)練得到的模型效果就會越好,準(zhǔn)確率越高。本研究中對花綠、灰瑪瑙、白鉛礦、輝銻礦、天青石、瑪瑙晶洞、菱鐵礦、藍(lán)金砂、條紋瑪瑙、油頁巖、鋁土礦以及普通輝石等十二種礦物進(jìn)行訓(xùn)練識別。在圖像任務(wù)中,對輸入的圖像進(jìn)行一些簡單的平移、縮放、顏色變換,可以獲得更充足的訓(xùn)練數(shù)據(jù),而不會改變圖像的原有標(biāo)簽。
PIL是一個函式庫,提供了幾個操作圖像的標(biāo)準(zhǔn)程序,包括了基礎(chǔ)的圖像處理函數(shù)。PIL庫同樣支持圖像的大小轉(zhuǎn)換,圖像旋轉(zhuǎn),以及任意的仿射變換。PIL還有一些直方圖的方法,可以展示圖像的一些統(tǒng)計特性。這個功能可以用來實現(xiàn)圖像的自動增強(qiáng)對比度,還有全局的統(tǒng)計分析等。通過PIL庫對于收集到的12種巖石的原始圖片進(jìn)行拉伸、剪切、翻轉(zhuǎn)等操作以獲得更充足的訓(xùn)練數(shù)據(jù),擴(kuò)充原始數(shù)據(jù)集,使模型訓(xùn)練的效果更好。
3巖石圖像識別功能實現(xiàn)
當(dāng)在自己的數(shù)據(jù)集上訓(xùn)練一個新的深度學(xué)習(xí)模型時,一般采取在預(yù)訓(xùn)練ImageNet上進(jìn)行微調(diào)的方法,借助微調(diào),可以從預(yù)訓(xùn)練模型出發(fā),將神經(jīng)網(wǎng)絡(luò)應(yīng)用到自己的數(shù)據(jù)集上。在數(shù)據(jù)集準(zhǔn)備完成之后,需要將數(shù)據(jù)集切分為訓(xùn)練集和驗證集,其中訓(xùn)練集用于訓(xùn)練模型,驗證集用來驗證模型的準(zhǔn)確率。在數(shù)據(jù)保存時將圖片分別保存在訓(xùn)練與驗證兩個目錄下,分別表示訓(xùn)練使用的圖片和驗證使用的數(shù)據(jù)。TensorFlow Slim是Google公司發(fā)布的一個圖像分類工具包,它不僅定義了一些方便的接口,還提供了很多ImageNet數(shù)據(jù)集上常用的網(wǎng)絡(luò)結(jié)構(gòu)和預(yù)訓(xùn)練模型。Slim提供了本文使用的IncepitonV3的模型結(jié)構(gòu),下載Slim的源代碼之后,將模型代碼做適當(dāng)修改以及對數(shù)據(jù)集進(jìn)行定義并建立訓(xùn)練文件夾。在模型中對Inceotion V3/Logits,Inceotion V3/AuxLofits兩個變量進(jìn)行微調(diào),因為只有他們作為Inceotion V3結(jié)構(gòu)的fc8部分是需要調(diào)整的[1]。模型訓(xùn)練完成之后,可以對模型準(zhǔn)確率進(jìn)行驗證。在本文中識別的十二種巖石類型中,每次識別過后輸出識別概率最大的兩種類別,TOP2的識別準(zhǔn)確率為95.6%。模型訓(xùn)練完成后,便可部署訓(xùn)練好的模型對拍攝圖片做種類識別。對于Inception V3模型進(jìn)行遷移學(xué)習(xí)得到12種巖石識別模型的訓(xùn)練一共進(jìn)行了2783步,訓(xùn)練過程中的TOP2準(zhǔn)確率的變化過程如圖3.1所示,準(zhǔn)確率穩(wěn)步上升,最后準(zhǔn)確率穩(wěn)定在95%左右,當(dāng)TOP2準(zhǔn)確率達(dá)到95.6%時停止訓(xùn)練。
4結(jié)果展示
識別時將拍照取得圖片輸入對于Inception V3進(jìn)行遷移學(xué)習(xí)得到的模型中,模型將識別可能性最高的2種巖石類型進(jìn)行展示,顯示對識別結(jié)果的評分,得分越高則為正確結(jié)果的可能性越大。如圖4.1所示為白鉛礦的輸入圖片與識別結(jié)果展示,可見識別結(jié)果為白鉛礦的評分約為9.6,為天青石的結(jié)果僅為1.4,識別結(jié)果準(zhǔn)確。
參考文獻(xiàn):
[1]何之源.21個項目玩轉(zhuǎn)深度學(xué)習(xí)[M].北京:電子工業(yè)出版社,2018:49-67.