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