楊米娜
(山西工程科技職業(yè)大學(xué),山西 晉中 030619)
隨著計(jì)算機(jī)算力的提高,圖像識(shí)別技術(shù)也逐漸在各個(gè)領(lǐng)域得到了廣泛應(yīng)用。所謂圖像識(shí)別,簡(jiǎn)單來(lái)講就是對(duì)圖像的屬性特征進(jìn)行劃分和提取,并通過(guò)特征分析實(shí)現(xiàn)對(duì)圖像的智能分類(lèi)[1]。其中傳統(tǒng)的圖像特征提取方式會(huì)消耗大量的算力資源,并要依據(jù)一定的先驗(yàn)知識(shí)才能達(dá)到較好的處理效果,這大大限制了圖像識(shí)別技術(shù)的發(fā)展和應(yīng)用。為了改善這一現(xiàn)狀,利用深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像特征的提取、分類(lèi)進(jìn)行模型訓(xùn)練,以實(shí)現(xiàn)圖像自動(dòng)識(shí)別是目前最佳的一種解決方案。
深度學(xué)習(xí)是在機(jī)器學(xué)習(xí)的基礎(chǔ)上通過(guò)多層神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)特征進(jìn)行分類(lèi)的一種算法模型。深度學(xué)習(xí)可以分為有監(jiān)督學(xué)習(xí)與無(wú)監(jiān)督學(xué)習(xí)兩種[2]。有監(jiān)督學(xué)習(xí)是指在先驗(yàn)信息的指導(dǎo)下,對(duì)已知數(shù)據(jù)特征標(biāo)識(shí)的數(shù)據(jù)集進(jìn)行分類(lèi)模型的學(xué)習(xí)與訓(xùn)練,并依據(jù)該模型實(shí)現(xiàn)對(duì)未知數(shù)據(jù)的分類(lèi)預(yù)測(cè),常用的學(xué)習(xí)方法包括:深度前饋網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等;無(wú)監(jiān)督學(xué)習(xí)是指在沒(méi)有先驗(yàn)知識(shí)的監(jiān)督下,對(duì)未知數(shù)據(jù)依據(jù)其潛在規(guī)律或特征的挖掘與分析結(jié)果對(duì)數(shù)據(jù)實(shí)現(xiàn)自動(dòng)分類(lèi),也就是基于數(shù)據(jù)的潛在相似性進(jìn)行分類(lèi),以使同一類(lèi)簇內(nèi)的數(shù)據(jù)相似性盡可能大,不同類(lèi)簇的數(shù)據(jù)差異性也盡可能大,常用的學(xué)習(xí)方法有深度信念網(wǎng)等。
卷積神經(jīng)網(wǎng)絡(luò)是一種基于深度學(xué)習(xí)的多層神經(jīng)網(wǎng)絡(luò),由輸入層、卷積層、池化層和輸出層構(gòu)成[3]。輸入層用于采集二維圖像的原始數(shù)據(jù);卷積層通過(guò)卷積核對(duì)圖像特征進(jìn)行卷積,每個(gè)卷積核可以得到一種圖像特征,使用多個(gè)卷積核可以得到圖像的多種特征圖;池化層對(duì)卷積層輸出的特征圖進(jìn)行網(wǎng)格劃分與特征映射處理后,可以有效減少特征參數(shù)的復(fù)雜度,提高學(xué)習(xí)模型的泛化能力。在卷積神經(jīng)網(wǎng)絡(luò)中,卷積層與池化層交替部署,并可依據(jù)圖像的特征維度設(shè)置卷積層數(shù),共同構(gòu)成隱含層,圖像信息原樣輸入后,經(jīng)過(guò)隱含層的多層卷積,再由輸出層輸出一個(gè)最終的預(yù)測(cè)結(jié)果。
圖像識(shí)別是人工智能領(lǐng)域的一個(gè)主要研究方向,它集合了計(jì)算機(jī)、數(shù)據(jù)挖掘、電子信息等多門(mén)專(zhuān)業(yè)學(xué)科技術(shù),目的是利用計(jì)算機(jī)對(duì)大量圖像中的指定特征或?qū)傩赃M(jìn)行提取、分析,并從中找到待識(shí)別的目標(biāo)、對(duì)象。圖像識(shí)別的應(yīng)用主要設(shè)計(jì)三類(lèi)場(chǎng)景:圖像分類(lèi)、目標(biāo)檢測(cè)和語(yǔ)義分割。
◆圖像分類(lèi),是通過(guò)對(duì)圖像特征的提取和分析,將圖像基于一定的特征規(guī)則進(jìn)行自動(dòng)分類(lèi)的過(guò)程。圖像分類(lèi)僅需要解決圖像中提取的特征目標(biāo)屬于哪一個(gè)類(lèi)別,而不需要考慮其位置信息。
◆目標(biāo)檢測(cè),是在圖像分類(lèi)的基礎(chǔ)上,還需要標(biāo)識(shí)出圖像中目標(biāo)特征的位置信息,以便于場(chǎng)景理解、對(duì)象跟蹤、活動(dòng)識(shí)別等更加復(fù)雜的場(chǎng)景應(yīng)用。
◆語(yǔ)義分割,是為圖像的每一個(gè)像素點(diǎn)定義了對(duì)應(yīng)的語(yǔ)義類(lèi)別標(biāo)識(shí),以實(shí)現(xiàn)像素級(jí)別的特征分類(lèi),并能夠?qū)D像信息進(jìn)行完整解釋。
圖像識(shí)別系統(tǒng)的架構(gòu)設(shè)計(jì)主要包括三個(gè)功能模塊:深度學(xué)習(xí)圖像識(shí)別模塊、圖形化操作模塊、網(wǎng)絡(luò)服務(wù)模塊。如圖1所示。
圖1 深度學(xué)習(xí)圖像識(shí)別系統(tǒng)架構(gòu)設(shè)計(jì)
◆深度學(xué)習(xí)圖像識(shí)別模塊是系統(tǒng)的核心模塊,采用有監(jiān)督學(xué)習(xí)模式,以卷積神經(jīng)網(wǎng)絡(luò)為核心構(gòu)建了圖像識(shí)別算法模型。并通過(guò)訓(xùn)練數(shù)據(jù)集與測(cè)試數(shù)據(jù)集對(duì)模型分別進(jìn)行學(xué)習(xí)訓(xùn)練和可靠性評(píng)估。
◆圖形化操作模塊,是將系統(tǒng)操作由控制臺(tái)模式轉(zhuǎn)換為了圖形化模式,該模塊主要設(shè)計(jì)了系統(tǒng)初始化、過(guò)程控制、結(jié)果顯示三類(lèi)內(nèi)容的圖形化操作程序。系統(tǒng)初始化用于實(shí)現(xiàn)深度學(xué)習(xí)模型的參數(shù)配置,過(guò)程控制用于反映學(xué)習(xí)模型的訓(xùn)練過(guò)程與測(cè)試過(guò)程,結(jié)果顯示用于輸出最終的圖像分類(lèi)結(jié)果。
◆網(wǎng)絡(luò)服務(wù)模塊,是通過(guò)網(wǎng)站搭建,將上述功能模塊以網(wǎng)絡(luò)服務(wù)的形式提供給用戶(hù)。該模塊提供的網(wǎng)絡(luò)服務(wù)包括前端服務(wù)與后端服務(wù),前端服務(wù)提供網(wǎng)站頁(yè)面的動(dòng)態(tài)顯示、交互等功能;后端服務(wù)用于實(shí)現(xiàn)業(yè)務(wù)的邏輯處理、數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)等。
深度學(xué)習(xí)圖像識(shí)別模塊主要用于實(shí)現(xiàn)圖像分類(lèi)功能,通過(guò)對(duì)圖像中指定目標(biāo)特征的提取、識(shí)別,達(dá)到對(duì)圖像分類(lèi)的目的。其實(shí)現(xiàn)過(guò)程主要包括三個(gè)步驟:
步驟一:數(shù)據(jù)集的劃分,按照一定的規(guī)則將數(shù)據(jù)集隨機(jī)劃分為訓(xùn)練集與測(cè)試集。
步驟二:進(jìn)行圖像識(shí)別的深度學(xué)習(xí)模型訓(xùn)練,采用有監(jiān)督學(xué)習(xí)方式,對(duì)帶有標(biāo)識(shí)的數(shù)據(jù)集進(jìn)行前向?qū)W習(xí)和反向優(yōu)化,以達(dá)到最佳的分類(lèi)效果。
步驟三:對(duì)訓(xùn)練好的模型進(jìn)行測(cè)試,以評(píng)估模型的可靠性。
數(shù)據(jù)集的劃分,訓(xùn)練集與測(cè)試集的劃分應(yīng)遵循兩個(gè)原則,一是盡可能位于同一分布區(qū)內(nèi),二是數(shù)據(jù)量的比例應(yīng)設(shè)置恰當(dāng),通常情況下訓(xùn)練集所需數(shù)據(jù)量相對(duì)較大。數(shù)據(jù)集劃分核心代碼示例如下:
random.shuffle(x)
set_split(src_folder,target_folder,
train_box=0.7,test_box=0.3,x)
random.shuffle方法用于打散數(shù)據(jù)集x的區(qū)域分布,使得數(shù)據(jù)集的區(qū)域分布更加均勻,set_split方法用于實(shí)現(xiàn)數(shù)據(jù)集的劃分,src_folder參數(shù)指向源數(shù)據(jù)的存放路徑;target_folder參數(shù)指向數(shù)據(jù)存儲(chǔ)的目的路徑;train_box為訓(xùn)練集的劃分比例,設(shè)置為70%;test_box為測(cè)試集的劃分比例,設(shè)置為30%。
圖像識(shí)別模型訓(xùn)練,模型訓(xùn)練流程如圖2所示。
圖2 圖像識(shí)別深度學(xué)習(xí)模型訓(xùn)練
前向傳遞,是指將帶有標(biāo)識(shí)的數(shù)據(jù)集通過(guò)前向傳遞,輸入卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行圖像分類(lèi)結(jié)果的預(yù)測(cè),具體的實(shí)現(xiàn)過(guò)程包括:
構(gòu)建卷積核,利用卷積算法對(duì)圖像特征進(jìn)行卷積并輸出特征圖,卷積公式如下所示:
(1)
Wout、Hout分別表示輸出特征圖的寬度與高度,Wput、Hput表示輸入原圖的寬度與高度,Wfil、Hfil表示卷積核的寬度與高度,P表示卷積核的填充圈數(shù),S是卷積核每次滑動(dòng)的步長(zhǎng)。
池化,采用了最大值池化法,將卷積核區(qū)域內(nèi)最大的特征值做為局部池化的輸出結(jié)果,通過(guò)該方法可以快速剔除小權(quán)值的特征參數(shù),僅保留主要特征,運(yùn)行效率較高。
分類(lèi)輸出,采用了Softmax分類(lèi)器對(duì)圖像特征進(jìn)行分類(lèi)預(yù)測(cè),Softmax函數(shù)的每個(gè)輸出結(jié)果都映射在[0,1]的區(qū)間內(nèi),所有輸出總和為1,該方法以概率的方式反映圖像特征的分類(lèi)結(jié)果,更加直觀(guān)。
誤差計(jì)算,是通過(guò)損失函數(shù)來(lái)評(píng)價(jià)模型的預(yù)測(cè)結(jié)果與實(shí)際結(jié)果的誤差,誤差越大,結(jié)果的準(zhǔn)確性就越差。
反向傳播,是針對(duì)損失函數(shù)逐層反向計(jì)算偏導(dǎo)數(shù)的一個(gè)過(guò)程,其目的是通過(guò)偏導(dǎo)數(shù)的計(jì)算逐層優(yōu)化特征權(quán)重,以盡可能減小模型的計(jì)算誤差,從而使其達(dá)到最佳。
梯度下降、優(yōu)化權(quán)值,梯度下降算法主要用于計(jì)算凸函數(shù)的偏導(dǎo)數(shù),而損失函數(shù)就是一個(gè)凸函數(shù)。計(jì)算出偏導(dǎo)數(shù)后,利用偏導(dǎo)數(shù)更新權(quán)值的公式如下所示:
W’=w-r*dw.
(2)
W’表示最新的權(quán)值,w為上一次更新后的權(quán)值,d為偏導(dǎo)數(shù),r表示學(xué)習(xí)率。其中r的值越大,梯度下降的跨度也就越大,容易出現(xiàn)過(guò)擬合現(xiàn)象。
測(cè)試模型,進(jìn)行可靠性評(píng)估,模型訓(xùn)練好之后,就需要借助測(cè)試集對(duì)模型進(jìn)行檢測(cè)了。測(cè)試過(guò)程與訓(xùn)練過(guò)程類(lèi)似,最后仍需通過(guò)損失函數(shù)進(jìn)行結(jié)果的評(píng)估,損失函數(shù)值越大,則模型的可靠性也越差。
本研究針對(duì)深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)、圖像識(shí)別等技術(shù)進(jìn)行了深入研究,提出了深度學(xué)習(xí)在圖像識(shí)別系統(tǒng)中應(yīng)用的解決方案,以實(shí)現(xiàn)圖像分類(lèi)的智能化處理為主要目的,利用卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建了分類(lèi)模型,并通過(guò)訓(xùn)練集的前向?qū)W習(xí)與反向傳導(dǎo)對(duì)模型進(jìn)行了權(quán)值優(yōu)化,通過(guò)測(cè)試集對(duì)模型的可靠性進(jìn)行評(píng)估,為相關(guān)領(lǐng)域研究提供了實(shí)踐參考經(jīng)驗(yàn)。