◆林 杰 李如意
(中國電子科技集團第28研究所 江蘇 210001)
基于深度學(xué)習的圖像識別處理
◆林 杰 李如意
(中國電子科技集團第28研究所 江蘇 210001)
近年來,人工智能已經(jīng)成為了計算機視覺與信息語言交互中的重要研究對象和熱點話題,通過深度學(xué)習方法的學(xué)習和實踐,來進行對圖像的處理和描述是十分具有挑戰(zhàn)性的。在這個過程中首先需要構(gòu)建神經(jīng)網(wǎng)絡(luò),從一端的編碼解碼結(jié)構(gòu)到另一端的編碼解碼結(jié)構(gòu)的深度學(xué)習模型,并且融合了圖像目標點檢測的識別研究和深度卷積網(wǎng)絡(luò)相關(guān)的記憶模型,從中進行信息提取和學(xué)習處理。這種研究方式更加關(guān)注原始圖像區(qū)域的特征顯示與其他的多種信息處理模塊區(qū)域的結(jié)合,有助于防止丟失處理信息和主題部分操作過程。在實驗過程中通過調(diào)取數(shù)據(jù)集進行實驗,通過實驗操作成功生成了圖像描述系統(tǒng),依次來對目標進行描述。其結(jié)果顯示也超出了綜合預(yù)期水平。最后再通過多種機器評估的方式來顯示該模塊處理結(jié)果的綜合性能。
深度學(xué)習;圖像識別;CNN;LSTM;SSD
近年來,隨著計算機技術(shù)的不斷發(fā)展,人工智能技術(shù)的不斷提高,深度學(xué)習以及人工智能的需求也日益增大。而支撐其發(fā)展的大量的計算機資源的研究。計算機通過對圖像的“觀察”和“思考”形成自己的認知,通過一套類似于人類的描述語言來進行描述。隨著圖片的不斷革新,圖像識別遇到的問題也日益增多,所以圖像的描述成為了對計算機算法要求更為高級的組成部分。圖像描述也是對圖像識別的進一步認識。這也就是所謂的“多模態(tài)”學(xué)習過程。
早在1999年就有Y.Mori對計算機圖像識別和描述進行了嘗試,只不過建立方法頗為簡單,而且自然語言與計算機語言結(jié)合不是很完備的條件下無法像正常情況下來建立完整的計算機對圖像的描述。
A.Farhadi等人于2010年提出了模塊映射法,其本身是對空間中圖像描述的映射算法,而在2014年Vinyals等人突出了端到端的圖像描述NIC模型,通過CNN提取圖像特征基于長短記憶語言的生成模型。針對這種生成結(jié)構(gòu)最后進行篩選然后得到較為切合實際的圖像識別及后續(xù)描述過程。近幾年來圖像識別技術(shù)在不斷的發(fā)展,而更多的重心轉(zhuǎn)移到了對圖像描述的精確度和自然語言熟悉度的算法研究之中。在語言生成中通過對LSTM現(xiàn)有系統(tǒng)的改進強化了文本可讀性,從而有了一些新的進展。
本文通過NIC模型進行改進實驗,結(jié)合目標檢測SSD的方法,提取區(qū)域信息,對結(jié)構(gòu)語言進行生成化描述。并且在描述區(qū)域借鑒了ATAE-LSTM模型用以實踐。
模型圖像處理以一個卷積神經(jīng)網(wǎng)絡(luò)來作為圖像處理的主要學(xué)習對象使用Incption結(jié)構(gòu)的cnn模型。在這個過程中通過SSD提取盡可能多的圖像區(qū)域,然后產(chǎn)生一系列的圖像集合,在這個過程中選取圖片之中的有效信息。模型框圖如圖1所示。
圖1 模型框圖
模型對輸入圖像進行特征提取,然后通過SSD來進行圖像特征檢測,在輸出部分來完善工作信息,同樣的再次進行特征提取直到最終的自然語言描述能夠生成結(jié)果。語言生成部分是一個很復(fù)雜的環(huán)節(jié),首先生成詞匯編碼并嵌入模塊運行中,然后通過LSTM作為運行核心,輸入圖像元素后進行綜合狀態(tài)評估,然后對語句進行鏈接,鏈接的同時載入到LSTM生成器之中。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)在近年來以一個非常高的發(fā)展速度在推動著科學(xué)研究,并且應(yīng)用于計算機視覺之中產(chǎn)生了良好的進展。卷積神經(jīng)網(wǎng)路主要以層級網(wǎng)絡(luò)形式展開,從卷積層,到池化層,到全連接層等等各部分聯(lián)系在一起,由于人工神經(jīng)元的層級劃分可以分為提取信息的接收部分和數(shù)據(jù)中樞的數(shù)據(jù)特征庫,這種方式在圖像處理方面應(yīng)用表現(xiàn)的極為出色。
2012年起CNN開發(fā)并推廣了多種卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),各個結(jié)構(gòu)部分都有其對應(yīng)關(guān)系和使用維度,輸入輸出也隨之變化。
卷積神經(jīng)網(wǎng)絡(luò)首先在圖像預(yù)處理數(shù)據(jù)集上進行預(yù)訓(xùn)練,以保證提取特征的準確度和具備預(yù)備習慣。在這個過程中為了避免語言模型的初始訓(xùn)練會對卷積神經(jīng)網(wǎng)絡(luò)機構(gòu)形成破壞,導(dǎo)致神經(jīng)網(wǎng)絡(luò)的權(quán)重部分無法修復(fù)還原,在預(yù)學(xué)習過程中會選取固定權(quán)重的方法來得到一個較好的權(quán)重訓(xùn)練結(jié)果。而后會根據(jù)預(yù)訓(xùn)練狀況進行一部分調(diào)整,這部分被稱作細節(jié)訓(xùn)練。
在處理圖像的過程中,對圖像中關(guān)鍵信息的處理是尤為重要的,在圖像所呈現(xiàn)的信息中將關(guān)鍵信息提取出來是對處理過程中必不可少的部分,相應(yīng)的對關(guān)鍵部分的信息做出語言生成是描述過程的一部分,這樣描述過程才會有明確的主次關(guān)系,在語言生成的時候涵蓋了圖像中全部的內(nèi)容。
在我們所了解的區(qū)域圖像提取中存在著多種提取方式,目前比較常見的是RCNN和兩種RCNN算法的衍生算法,是2015年由Girshick等人連續(xù)提出的。經(jīng)過長期的實驗,在2016年又有了新的突破,通過SSD的方式將信息高效提取,并且形成成熟的目標檢測方式。
由于SSD和RCNN是兩種完全不同的方式,SSD通過多層卷積來得到最終輸出結(jié)果區(qū)域,所以SSD作為圖像區(qū)域處理部分選取aspect區(qū)域的圖像之后再送入inception中進行特征提取。其圖像提取算法結(jié)構(gòu)如圖2所示。
圖2 圖像提取算法結(jié)構(gòu)
生成候選區(qū)域后會通過摘除背景,得到真正的關(guān)鍵詞生成部分,作為aspect,進行歸一化圖像尺寸處理后通過卷積神經(jīng)網(wǎng)絡(luò)進行特征提取,并生成最終的語言模型。由于卷積神經(jīng)網(wǎng)絡(luò)的維度很高,這個過程中會使得語言輸入模型的維度也變成可調(diào)節(jié)維度,使得圖像嵌入向量的維度達到匹配,將Inception中的輸出映射到512維的圖像嵌入空間之中進行處理。
在數(shù)據(jù)庫編寫的過程中語言選取為python,模型通過擬定的Keras作為最初的深度學(xué)習構(gòu)建板塊,基于 Keras的高度集成化和模塊化系統(tǒng)來進行下一步的構(gòu)建,但是可能會導(dǎo)致構(gòu)建不夠靈活,自由度沒有預(yù)期的那樣高。所以在定義LSTM的時候可能會遇到一些比較僵硬的結(jié)構(gòu)性問題。在這個過程中選擇增加編碼量的方式來解決問題。模型中依舊使用SSD結(jié)構(gòu)以及其附屬的一些區(qū)域圖像識別部分。由于Keras可選擇使用tensorflow作為后端使用,因此其本身可以作為tensorflow的簡明接口。在tensorflow中會對其余的數(shù)據(jù)預(yù)處理,語言生成模型,樣本構(gòu)建,Inception等步驟進行控制和完成。
在數(shù)據(jù)庫建立的過程中使用了 MSCOCO數(shù)據(jù)集,MSCOCO數(shù)據(jù)集是一個標準化的圖片數(shù)據(jù)集,其中擁有82783張訓(xùn)練圖像數(shù)據(jù)集和40504張驗證圖片數(shù)據(jù)集,并且針對每一個圖片你有5個描述語句。在圖片描述上做到比較完善的程度。
在確定了數(shù)據(jù)集后便是要進行數(shù)據(jù)預(yù)處理,針對龐大的數(shù)據(jù)量使用tensorflow進行維護大量數(shù)據(jù)輸入的方法來將訓(xùn)練過程,驗證過程的數(shù)據(jù)轉(zhuǎn)化成有標準輸入輸出格式的數(shù)據(jù)文件,然后及逆行多線程讀取和操作。
根據(jù) GPU的顯存大小來確定訓(xùn)練容量,生成的訓(xùn)練結(jié)果由SSD進行提取操作,保證所有圖像的維度完全一致,然后通過Inception對 SSD接收到的數(shù)據(jù)進行預(yù)處理,作為輸入數(shù)據(jù)。在SSD訓(xùn)練結(jié)束前設(shè)置目標檢測模塊,對單張圖像的目標檢測進行歸一化處理,在最后生成單元訓(xùn)練數(shù)據(jù)。
由于使用Inception和SSD模型在其他的使用模型上進行了一些預(yù)訓(xùn)練處理,所以兩個模塊的輸入圖像大小和維度應(yīng)該與其他輸入和訓(xùn)練部分保持一致。在使用Inception輸入圖像的時候保證圖像的維度并且在相互轉(zhuǎn)換的時候要進行 resize操作。由于SSD和Inception的輸入數(shù)值范圍有所差別,使用歸一化操作的時候還需要進行嚴謹?shù)臄?shù)據(jù)處理以避免訓(xùn)練數(shù)據(jù)集和驗證數(shù)據(jù)不一致。
嵌入過程分為詞語嵌入和語言模擬生成開發(fā)兩個部分,兩個部分中由于模擬詞庫的大小為12000,所以在同樣長度不同大小的詞語在被調(diào)用的時候要加入pad標簽,通過添加相應(yīng)的指示標簽來決定語句的起始和終止。詞語嵌入模型服從固定的編碼集合和映射,在512維度的詞向量空間中與之對應(yīng)提取,使用表達,生成最終的自然語言描述。
而語言生成部分的模擬是通過LSTM現(xiàn)有模塊來進行,其本身擁有512層隱退狀態(tài),因素個號詞庫通過概率輸出,在避免過擬合的過程中在詞向量外部包裹aspect特征進行初始化。這兩部分的主要目的都是對圖像進行預(yù)處理。
訓(xùn)練過程是對卷積神經(jīng)網(wǎng)絡(luò)使用的最重要的過程,在訓(xùn)練之前需要對整個數(shù)據(jù)庫中的訓(xùn)練數(shù)據(jù)集進行預(yù)處理,并且在之后輸入數(shù)據(jù)的時候要使得輸入數(shù)據(jù)和訓(xùn)練數(shù)據(jù)預(yù)處理的過程一致,維度,大小匹配才不會出現(xiàn)錯誤。訓(xùn)練過程的參數(shù)如表1所示。
表1 訓(xùn)練過程參數(shù)
根據(jù)如上參數(shù)進行對卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,在完成了基礎(chǔ)訓(xùn)練之后可以加入一些微調(diào)訓(xùn)練,使得整個參數(shù)模型得到改善,并且針對Inception和SSD的權(quán)重進行訓(xùn)練,起到適應(yīng)MSCOCO數(shù)據(jù)庫的特性。
從訓(xùn)練的角度來看訓(xùn)練分為三個部分,一個是訓(xùn)練時期,一個是訓(xùn)練方式,一個是訓(xùn)練的預(yù)期結(jié)果。在時間成本上參考了NIC模型,在訓(xùn)練過程中進行了1000000個batch的訓(xùn)練內(nèi)容,并且通過2000000個batch的訓(xùn)練內(nèi)容來對其數(shù)據(jù)處理能力進行了微調(diào),以此來達到最好的訓(xùn)練效果。訓(xùn)練過程中加大訓(xùn)練量和微調(diào)部分的數(shù)據(jù)輸入可以更好的實現(xiàn)結(jié)果中的精確程度和模型最優(yōu)。在評估過程中依舊需要進行大量的訓(xùn)練來進行參考,這次參照的模型NIC模型也是國內(nèi)最優(yōu)模型。
在評估過程中采取最好的辦法就是人為評估,由于機器評估的局限性和理想劃分效果的不可變性,因此很難達到我們所謂的人工智能效果。但是由于工作量的緣故更多的數(shù)據(jù)由計算機來進行聘雇和測試。由于選取的 NIC模型是一種目前較為完善的模型,并且在此基礎(chǔ)上進行了改進,所以大多數(shù)實驗結(jié)果都是優(yōu)于常規(guī)NIC模型的,不過NIC模型是一個經(jīng)過了完整訓(xùn)練的模型參考,所以其輸出結(jié)果在一些其他方面依舊是有著很高的評價。
由神經(jīng)框架來進行學(xué)習最終實現(xiàn)完整的生成數(shù)是一個十分強大的序列模型,通過定制化輸入給出最大化的語句輸入學(xué)習環(huán)境,從結(jié)果上來看較為先進。
首先我們根據(jù)實驗過程來對圖像進行一系列的描述部分,在使用卷積神經(jīng)網(wǎng)絡(luò)的時候我們調(diào)整變量長度,給出確切形式,作為輸入和輸出來進行進一步的處理。
而另一部分關(guān)于描述圖像的過程就是語句生成器的部分,在設(shè)計了訓(xùn)練過程后要根據(jù)設(shè)計的訓(xùn)練步驟進行語句的生產(chǎn)和挖掘,在一個圖像的描述過程中,語句生成無疑是一個很重要的部分,關(guān)系到整個圖像的描述完整性和輸出結(jié)果的準確性,直接反饋到卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練成果。語言生成引用LSTM結(jié)構(gòu),是一種遞歸方式,通過遞歸網(wǎng)路來實現(xiàn)最終輸出。
圖3 LSTM結(jié)構(gòu)
如圖3所示,在LSTM中包含了三個門控制單眼,藍色線條顯示了遞歸的連接和運算過程,在時刻t-1的時候輸出m通過三個門在時刻t反饋到儲存器之中。
之后對 LSTM進行多次遞歸實踐,通過多次實踐來增加對LSTM的魯棒訓(xùn)練,以消除其本身可能具有的消失和過載等情況。其訓(xùn)練過程如圖4所示。
圖4 LSTM的訓(xùn)練過程
在本文中我們得到了一些實驗結(jié)果作為示例來給出結(jié)論,在本文的模型中生成了一些同步訓(xùn)練樣本,樣本的掃描得益于aspect的特征提取,這些圖中的文本識別可以識別出nic模型中未識別出的信息,具體的描述結(jié)果如圖5所示。
圖5 圖像描述結(jié)果
在對比了nic模塊后發(fā)現(xiàn)其中尚且包含著一些未被識別的信息出現(xiàn),但是其信息量已經(jīng)很小了,而且由于訓(xùn)練步驟有限的問題仍然會導(dǎo)致一些不可避免的事情發(fā)生,但是其結(jié)果的誤差在可控范圍之內(nèi)。
在上述案例中,雖然在一些圖片中識別出了圖片中的有效信息,但是信息還是存在重復(fù)出現(xiàn)隨機生成結(jié)果不準確的問題存在著,這其中的nic模型結(jié)果就是在不斷實踐后的訓(xùn)練下得到的,進行了重復(fù)訓(xùn)練有助于緩解這些不完全信息的產(chǎn)生。
在描述和檢測過程中檢測應(yīng)用在圖像之中應(yīng)用 SSD提取圖像區(qū)域信息作為aspect信息提供生成模型來作為保險可以避免數(shù)據(jù)丟失和關(guān)鍵信息造成的損失,在最終結(jié)果中得到了結(jié)論性驗證。由于本文中選取的SSD是集成模塊,所以在關(guān)鍵區(qū)域提取的正確性上沒有做很完善的檢驗工作,在人眼手動檢查了一些圖像之后會在其中發(fā)現(xiàn)一些小的錯誤,在提取圖像關(guān)鍵信息的過程中提取了一些圖片中的明顯因素但是這不是圖片中的關(guān)鍵點。
在相比較 NIC數(shù)據(jù)庫模型的時候會發(fā)現(xiàn)由于訓(xùn)練不足的情況會出現(xiàn)不完全呈現(xiàn)的狀況,那么隨著技術(shù)的革新和發(fā)展,訓(xùn)練速度也一定會得到提升,進而使得圖像識別描述模塊有所提升。
在設(shè)計基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別處理中將自然語言描述作為一個重要的組成部分進行梳理和研究,將該工作提升到端到端的層次,依此建立了由端到端的深度模型,在模型搭載過程中使用 inceptionV3,SSD,LSTM 等神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),這些結(jié)構(gòu)有一部分是經(jīng)過借鑒和改良的結(jié)構(gòu)網(wǎng),其效果要超過本身的結(jié)構(gòu)。并且借鑒了aspect的設(shè)計思路來對卷積神經(jīng)網(wǎng)絡(luò)的語言描述學(xué)習進行了優(yōu)化和設(shè)計。在實驗中也是得到了一些較為具有競爭力的結(jié)果。這些結(jié)果本身是以模塊化的形式出現(xiàn),同樣的以模塊化的形式作為搭載依據(jù),并且根據(jù)其模塊的特殊性和卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程來制定了統(tǒng)一規(guī)格的輸入維度和大小,這些都是在模塊建立中必不可少的部分。
實驗中采取訓(xùn)練,監(jiān)察訓(xùn)練,輸入測試數(shù)據(jù)然后輸出,最后首先由機器進行只能誤差分析,然后再由人工進行手動誤差分析。在分析過程中對nic結(jié)構(gòu)的借鑒進行了改進,加速了訓(xùn)練時間,在進一步的檢驗環(huán)境中打下了基礎(chǔ)。
在之后的模塊設(shè)計和實驗過程中,首先要做到的是減少信息的重復(fù)錄入與不正確輸出的產(chǎn)生,其次要轉(zhuǎn)換設(shè)計思路,讓訓(xùn)練過程加速。在將這些問題克服了之后基于深度學(xué)習的卷積神經(jīng)網(wǎng)絡(luò)處理上對于圖像描述部分一定會有一個顯著提高。
[1] 余永維,殷國富,殷鷹,杜柳青.基于深度學(xué)習網(wǎng)絡(luò)的射線圖像缺陷識別方法.儀器儀表學(xué)報,2012.
[2] 豐曉霞.基于深度學(xué)習的圖像識別算法研究. (Doctoral dissertation.太原理工大學(xué),2015.
[3] 王標.基于深度學(xué)習的圖像識別與搜索系統(tǒng). (Doctoral dissertation.中國科學(xué)院大學(xué),2016.
[4] 呂國豪,羅四維,黃雅平,蔣欣蘭.基于卷積神經(jīng)網(wǎng)絡(luò)的正則化方法.計算機研究與發(fā)展,2014.
[5] 盧宏濤,張秦川.深度卷積神經(jīng)網(wǎng)絡(luò)在計算機視覺中的應(yīng)用研究綜述.數(shù)據(jù)采集與處理,2016.
[6] 許可.卷積神經(jīng)網(wǎng)絡(luò)在圖像識別上的應(yīng)用的研究.浙江大學(xué),2012.
[7] 王振,高茂庭.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別算法設(shè)計與實現(xiàn).現(xiàn)代計算機:普及版,2015.
[8] 余萍,趙繼生,張潔.基于非線性修正函數(shù)的卷積神經(jīng)網(wǎng)絡(luò)圖像識別研究.科學(xué)技術(shù)與工程,2015.
[9] 龔震霆.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別和檢索方法研究.桂林電子科技大學(xué),2016.