袁培森,黎 薇,任守綱,2,徐煥良,2※
菊花是中國(guó)十大傳統(tǒng)名花之一,具有重要的觀賞價(jià)值和經(jīng)濟(jì)價(jià)值[1]。菊花具有種類多、花樣瓣形繁多等特點(diǎn)。目前,對(duì)于菊花花型的識(shí)別和管理主要靠人工進(jìn)行,效率不高且對(duì)于一般的非專業(yè)人員容易出錯(cuò)。另一方面圖像的識(shí)別應(yīng)用和相關(guān)的理論研究發(fā)展迅速,圖像的智能識(shí)別成為人工智能領(lǐng)域最重要的發(fā)展和應(yīng)用目標(biāo)之一[2]。其中,基于圖像分析的植物識(shí)別分類技術(shù)已成為國(guó)內(nèi)外植物信息學(xué)領(lǐng)域研究的熱點(diǎn)[3]。比較有影響是由 CLEF Initiative實(shí)驗(yàn)室[4]組織的植物信息識(shí)別競(jìng)賽,其中LifeCLEF[5]包含了植物、鳥(niǎo)、海洋生物和基于位置的生物數(shù)據(jù)分析。例如,Backes A R等[6]采用復(fù)雜網(wǎng)絡(luò)算法(complex network method)分析葉片特征并進(jìn)行識(shí)別,實(shí)現(xiàn)了對(duì)不同分辨率以及存在采樣噪聲的葉片圖像識(shí)別,取得了較好的識(shí)別效果。
近年來(lái)國(guó)內(nèi)研究機(jī)構(gòu)基于機(jī)器學(xué)習(xí)等相關(guān)的技術(shù)基礎(chǔ)上,在植物葉片、花朵的識(shí)別方面的研究和系統(tǒng)實(shí)現(xiàn)方面也取得了較大進(jìn)展。龔丁禧等[7]提出了基于卷積神經(jīng)網(wǎng)絡(luò)的植物葉片分類。翟傳敏等[8]研究了基于葉緣與葉脈分?jǐn)?shù)維特征的植物葉識(shí)別方法。王麗君等[9]研究了基于葉片圖像多特征融合的觀葉植物種類識(shí)別,文獻(xiàn)[10]研究了采用深度學(xué)習(xí)針對(duì)ImageNet數(shù)據(jù)庫(kù)中的80類花卉進(jìn)行了識(shí)別測(cè)試。
目前關(guān)于花的識(shí)別研究主要有以下系統(tǒng):1)微軟識(shí)花[11],是微軟亞洲研究院與中科院植物所推出一款“微軟識(shí)花”應(yīng)用軟件,它通過(guò)拍攝花的照片或選取手機(jī)圖庫(kù)中花的圖片,能夠快速、準(zhǔn)確地識(shí)別花的種類。2)形色[12],是一款在移動(dòng)環(huán)境使用識(shí)花應(yīng)用軟件,通過(guò)將植物拍照上傳,能夠在1~5 s左右給出植物的名字和寓意等信息。目前形色支持識(shí)別多達(dá) 4 000種植物,準(zhǔn)確率92%左右[12]。3)看圖識(shí)花[13],又稱為花伴侶或拍照識(shí)花,是中國(guó)科學(xué)院植物研究所研發(fā)的識(shí)花系統(tǒng),可以鑒別花卉植物的品類,目前已可以識(shí)別上千種常見(jiàn)花卉植物。4)文獻(xiàn)[14]提供植物識(shí)別及病蟲(chóng)害識(shí)別應(yīng)用,通過(guò)植物照片就能識(shí)別出來(lái)植物種類。
研究發(fā)現(xiàn),上述幾個(gè)系統(tǒng)都不具有地針對(duì)菊花花型進(jìn)行精準(zhǔn)識(shí)別的能力,不能識(shí)別菊花的花型并給出更加詳細(xì)的菊花種類信息,其中文獻(xiàn)[12]對(duì)菊花的種類識(shí)別方面準(zhǔn)確率相對(duì)較高,但不能針對(duì)菊花花型提供更詳細(xì)的信息,因此不能滿足對(duì)菊花的智能識(shí)別和管理需要。所以非常有必要設(shè)計(jì)針對(duì)菊花花型的智能化管理和識(shí)別系統(tǒng)。
當(dāng)前,受益于大數(shù)據(jù)、分布式計(jì)算及GPU計(jì)算等關(guān)鍵技術(shù)的快速發(fā)展,深度學(xué)習(xí)(deep learning)作為當(dāng)前機(jī)器學(xué)習(xí)領(lǐng)域的重要技術(shù)在理論和應(yīng)用等方面取得了巨大進(jìn)展,尤其在圖像識(shí)別、語(yǔ)音識(shí)別等領(lǐng)域[15]。例如,Krizhevsky等[16]使用卷積神經(jīng)網(wǎng)絡(luò)在ImageNet數(shù)據(jù)集上的識(shí)別取得了突破性進(jìn)展。目前,文獻(xiàn)[17]指出基于深度學(xué)習(xí)的圖像識(shí)別技術(shù)可以與人類專家的識(shí)別能力相媲美,甚至超過(guò)專家的識(shí)別能力。當(dāng)前,深度學(xué)習(xí)已經(jīng)成為機(jī)器學(xué)習(xí)領(lǐng)域最富活力的研究方向之一。
基于端到端的深度學(xué)習(xí)使得圖像的識(shí)別不再局限于基于人工規(guī)則的中間步驟,基于端對(duì)端的處理方式與傳統(tǒng)方式對(duì)比[18]:傳統(tǒng)的圖像分類方法首先需要經(jīng)過(guò)特征工程提取圖像特征和特征選取。特征提取方法往往跟數(shù)據(jù)集和應(yīng)用相關(guān),使得這種方式具有很大局限性。深度學(xué)習(xí)的分類方式[19]根據(jù)深度學(xué)習(xí)覆蓋的范圍,劃分為3類:1、深度學(xué)習(xí)技術(shù)使用在后端的深度學(xué)習(xí)的分類器;2、深度學(xué)習(xí)使用在前端的深度特征生成器;3涵蓋了從前端到后端的端到端(end-to-end)的深度學(xué)習(xí)[20]?;诙说蕉说姆椒ㄒ韵袼貫閱挝惠斎雸D像數(shù)據(jù),經(jīng)過(guò)深層神經(jīng)網(wǎng)絡(luò)建模,涵蓋了特征工程和預(yù)測(cè),可以涵蓋數(shù)據(jù)分類的全階段,可以更為直接的對(duì)圖像分類。
本文在基于端到端的卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上,研究并實(shí)現(xiàn)了菊花花型識(shí)別系統(tǒng) ChryRegNN。端到端的方法通過(guò)縮減人工預(yù)處理和后續(xù)處理,模型從原始數(shù)據(jù)輸入到最終輸出,模型根據(jù)數(shù)據(jù)自動(dòng)調(diào)節(jié),提高了模型的適應(yīng)性[21-22]。此外,細(xì)粒度可視分類(fine-grained visual classification,F(xiàn)GVC)[23]技術(shù)可以更好的區(qū)分對(duì)象之間的細(xì)微差別,為了更好地區(qū)分菊花花型之間的差別,系統(tǒng)優(yōu)化目標(biāo)采用pair confusion loss函數(shù)[23]。
系統(tǒng)處理的步驟分為3步:1)收集并標(biāo)注菊花圖像,把這些圖像和對(duì)應(yīng)的標(biāo)簽以二進(jìn)制文件的形式存儲(chǔ);2)對(duì)輸入的圖像進(jìn)行預(yù)處理。為了提高模型的泛化能力,對(duì)訓(xùn)練圖像數(shù)據(jù)集進(jìn)行隨機(jī)剪裁、隨機(jī)反轉(zhuǎn)、隨機(jī)亮度變換、隨機(jī)對(duì)比度變換、圖像的白化、均值與方差的均衡等處理,降低圖像因明暗、光照差異引起的影響;3)采用端到端的卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)模型。在云計(jì)算環(huán)境下,為了便于ChryRegNN 系統(tǒng)使用,系統(tǒng)的離線模型托管到云端,以便于模型的更新和移植,實(shí)現(xiàn)基于移動(dòng)環(huán)境下的模型菊花圖像識(shí)別。
本文首先收集大量的菊花圖像數(shù)據(jù), 并根據(jù)菊花花型進(jìn)行人工標(biāo)注和分類,在此基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了基于端到端卷積神經(jīng)網(wǎng)絡(luò)的菊花花型和品種識(shí)別和分類系統(tǒng)。系統(tǒng)對(duì)不同花型實(shí)現(xiàn)智能識(shí)別和分類并給出該花型對(duì)應(yīng)的菊花品種及概率值。
反向傳播算法(back propagation,BP)是人工神經(jīng)網(wǎng)絡(luò)中常用且有效的方法,它為多層前向神經(jīng)網(wǎng)絡(luò)的權(quán)值優(yōu)化提供解決方案,適用于訓(xùn)練前向型神經(jīng)網(wǎng)絡(luò)[24]。
設(shè) nl表示神經(jīng)網(wǎng)絡(luò)的層數(shù), Ll表示第l層,整個(gè)網(wǎng)絡(luò)的輸入層為 L1,輸出層為 Lnl。神經(jīng)網(wǎng)絡(luò)參數(shù)可以表示為其中 W i j(l)表示第l層的第j個(gè)節(jié)點(diǎn)與第 l +1層的第i個(gè)節(jié)點(diǎn)之間的連接參數(shù),表示第 l +1層的第i個(gè)節(jié)點(diǎn)的偏置項(xiàng),偏置項(xiàng)只有輸出沒(méi)有輸入。該神經(jīng)網(wǎng)絡(luò)模型可以用公式(1)~(4)計(jì)算。
式中 a i(l)表示第l層的第i個(gè)節(jié)點(diǎn)的激活值,當(dāng) l =1時(shí),則第i個(gè)節(jié)點(diǎn)的輸出值為輸入值。神經(jīng)網(wǎng)絡(luò)的最終輸出結(jié)果使用公式(4)表示。其中W表示網(wǎng)絡(luò)參數(shù)權(quán)重,b表示偏移量。
為了更新公式(5)中的網(wǎng)絡(luò)權(quán)重參數(shù),BP使用公式(6)和(7)批量梯度下降法來(lái)更新相關(guān)參數(shù)。
卷積網(wǎng)絡(luò)(convolutional neural network,CNN)是一種局部連接、權(quán)值共享的前饋式多層神經(jīng)網(wǎng)絡(luò),是為識(shí)別二維形狀而特殊設(shè)計(jì)的一種多層感知器,具有對(duì)平移、比例縮放、傾斜或其他形式的變形不變性的特點(diǎn)[16]。典型的CNN網(wǎng)絡(luò)采用BP算法通過(guò)最小化訓(xùn)練結(jié)果和真實(shí)值之間的代價(jià)函數(shù),如公式(8)所示。
卷積神經(jīng)網(wǎng)絡(luò)的基本架構(gòu)可分為4層:第1層為Input輸入層,第2層是Conv卷積層,第3層是Full全連接層,第4層是Output輸出層。CNN通過(guò)用已知模式訓(xùn)練卷積網(wǎng)絡(luò),是一種從輸入到輸出的非線性關(guān)系映射,它有效地在輸入與輸出之間的建立非線性映射關(guān)系。CNN因具有位移、畸變魯棒性和并行性等而受到廣泛關(guān)注[16]。
1)輸入層(input layer):卷積神經(jīng)網(wǎng)絡(luò)的輸入層可以直接輸入原始數(shù)據(jù),當(dāng)輸入為圖像時(shí),輸入數(shù)據(jù)為圖像的像素值。
2)卷積層(convolutional layer):卷積神經(jīng)網(wǎng)絡(luò)的卷積層也叫做特征提取層,包括 2個(gè)部分,第一部分是真正的卷積層,用于提取輸入數(shù)據(jù)的特征,每個(gè)不同的卷積核提取的特征都不同,卷積層的卷積核數(shù)量越多,提取的特征就越多。第二部分為pooling下采樣層,該層在保證有效信息的基礎(chǔ)上減少數(shù)據(jù)處理量,提升訓(xùn)練速度。卷積層數(shù)越多,模型提取特征的能力更強(qiáng)。
3)全連接層(fully connected layer):可以包含多個(gè)全連接層,實(shí)際上就是普通神經(jīng)網(wǎng)絡(luò)層的隱藏層部分,全連接層的每個(gè)神經(jīng)節(jié)點(diǎn)都和前一層的每個(gè)神經(jīng)節(jié)點(diǎn)連接,同一層的神經(jīng)節(jié)點(diǎn)沒(méi)有連接,每一層的神經(jīng)節(jié)點(diǎn)通過(guò)連接線上的權(quán)值進(jìn)行前向傳播加權(quán)和計(jì)算得到下一層神經(jīng)節(jié)點(diǎn)的輸入。
4)輸出層(output layer):輸出層的節(jié)點(diǎn)數(shù)目是根據(jù)具體任務(wù)類設(shè)定的。例如文中使用菊花數(shù)據(jù)集進(jìn)行圖像識(shí)別分類,則輸出層就是一個(gè)分類器,其節(jié)點(diǎn)數(shù)目等于菊花種類數(shù)目。
數(shù)據(jù)表示分為向量表示與張量表示 2類[25]。張量是多向陣列,可看作向量、矩陣的高階擴(kuò),是一種多維數(shù)據(jù)數(shù)組。
根據(jù)張量的定義,可以定義張量矩陣展開(kāi)、模乘(mode product)、張量積(tensor product)和張量分解等運(yùn)算[26]。張量進(jìn)行數(shù)據(jù)分析具有以下優(yōu)點(diǎn):1)張量結(jié)構(gòu)易于表示高維數(shù)據(jù);2)提取特征,張量可以有效保存原始數(shù)據(jù)樣本的結(jié)構(gòu)特征,尤其是對(duì)圖像數(shù)據(jù);3)易于表示高階關(guān)系。ChryRegNN 系統(tǒng)的菊花圖像數(shù)據(jù)輸入采用張量表示,實(shí)現(xiàn)了圖像數(shù)據(jù)采用原始像素直接到識(shí)別結(jié)果的輸出。
ChryRegNN 系統(tǒng)的處理流程如圖1所示。首先加載圖像,并對(duì)圖像進(jìn)行縮放和裁剪,接著把圖像轉(zhuǎn)為RGB三通道張量表示形式并輸入到訓(xùn)練模型中,最后根據(jù)模型的輸出,返回概率值Top3的類別。
圖1 系統(tǒng)處理流程圖Fig.1 Processing procedure of system
針對(duì)云環(huán)境下的使用,可以分為 3步:首先用戶輸入的數(shù)據(jù),ChryRegNN 系統(tǒng)在使用的過(guò)程中,接著經(jīng)過(guò)ClassifyImage把圖像轉(zhuǎn)換為Tensor,最后Tensor交給Pretrained model計(jì)算得出最可信的結(jié)果再傳回ChryRegNNApp和 ClassifyImage,最后返回給用戶識(shí)別的結(jié)果,模型在云環(huán)境[27]下的托管如圖2所示。
圖2 ChryRegNN在云環(huán)境下的托管Fig.2 ChryRegNN hosting in cloud environment
在圖像預(yù)處理方面,本文采用了一系列隨機(jī)變換的方法來(lái)增加數(shù)據(jù)集的大小。預(yù)處理方法包括:隨機(jī)剪裁、隨機(jī)反轉(zhuǎn)、隨機(jī)亮度變換、隨機(jī)對(duì)比度變換、圖像的白化、均值與方差的均衡,前 4種是為了增加訓(xùn)練數(shù)據(jù)集數(shù)量,圖像的白化是為了降低圖像明暗、光照差異引起的影響。圖像預(yù)處理的結(jié)果示例如圖 3所示,預(yù)處理后圖像大小為48*48像素。
圖3 菊花圖像預(yù)處理示例Fig.3 Illustration of chrysanthemum image preprocessing
系統(tǒng)采用6層卷積神經(jīng)網(wǎng)絡(luò),模型如圖4所示。首先是Input數(shù)據(jù)輸入層,用于直接輸入圖像,接著是Conv1卷積層,其中分為C1卷積層、S1下采樣層和L1歸一化層,這里的L層為L(zhǎng)RN層(local response normalization,LRN),即局部響應(yīng)歸一化,它的作用是對(duì)于每個(gè)元素按照給定的系數(shù)逐一進(jìn)行規(guī)范化處理,以提高神經(jīng)網(wǎng)絡(luò)分類精確度。第三層是Conv2卷積層,其中分為C2卷積層、S2下采樣層和L2歸一化層,接著是F3和F4全連接層,最后是Output數(shù)據(jù)輸出層。
圖4 ChryRegNN系統(tǒng)網(wǎng)絡(luò)架構(gòu)Fig.4 Neural network framework of ChryRegNN
2.2.1 卷積層設(shè)計(jì)
系統(tǒng)中輸入菊花圖像數(shù)據(jù)經(jīng)過(guò)輸入層、Conv1卷積層和pooling層最后實(shí)現(xiàn)歸一化的數(shù)據(jù)傳遞。為了充分利用菊花圖像數(shù)據(jù)的特征信息,系統(tǒng)采用RGB三色圖像,采用3D張量。系統(tǒng)的卷積層Conv1和Conv2設(shè)計(jì)如圖5所示,卷積層使用的神經(jīng)元激活函數(shù)為ReLU函數(shù),見(jiàn)公式(10)。
本文的數(shù)據(jù)集圖像經(jīng)過(guò)預(yù)處理后大小為48*48*3,以此Conv1層為輸入圖像。Conv1卷積層的卷積核數(shù)目為64個(gè),卷積核的大小為5*5,卷積核的移動(dòng)切片step步長(zhǎng)為1。數(shù)據(jù)經(jīng)過(guò)Conv1卷積后得到的數(shù)據(jù)為44*44*64,輸出的數(shù)據(jù)維數(shù)是64維。
Conv1層的pooling層的卷積核大小為3*3,移動(dòng)step步長(zhǎng)為 2。數(shù)據(jù)經(jīng)過(guò) pooling層后,獲得的數(shù)據(jù)大小為24*24*64,維度為64維。最后經(jīng)過(guò)歸一化規(guī)范數(shù)據(jù),輸出大小為24*24*64,此輸出作為Conv2層的輸入。
Conv2層以 Conv1層的輸出數(shù)據(jù)作為輸入,Conv2層的卷積核的數(shù)量為 64,卷積核大小為 5*5,卷積核的移動(dòng)切片step步長(zhǎng)為1。數(shù)據(jù)經(jīng)過(guò)Conv2卷積后得到的數(shù)據(jù)為20*20*64,輸出的數(shù)據(jù)維數(shù)是64維。
圖5 Conv卷積層設(shè)計(jì)Fig.5 Convolutional layer of Conv
Conv2層的pooling層的卷積核大小為3*3,移動(dòng)步長(zhǎng)為 2。數(shù)據(jù)經(jīng)過(guò) pooling層后,獲得的數(shù)據(jù)大小為12*12*64,維度為64維。Conv2層經(jīng)過(guò)歸一化規(guī)范數(shù)據(jù),以此作為Fc3全連接層的輸入。
2.2.2 全連接層設(shè)計(jì)
ChryRegNN 系統(tǒng)全連接層Fc3和Fc4設(shè)計(jì)如圖6所示,全連接激活函數(shù)采用 ReLU函數(shù)。Fc3層與 Conv2卷積層輸出數(shù)據(jù)大小相同,F(xiàn)c3層神經(jīng)元個(gè)數(shù)設(shè)為384個(gè),F(xiàn)c4輸出神經(jīng)元個(gè)數(shù)為192個(gè)。
圖6 全連接層設(shè)計(jì)Fig.6 Full connect layer design
2.2.3 輸出分類層設(shè)計(jì)
輸出分類層的神經(jīng)節(jié)點(diǎn)數(shù)根據(jù)實(shí)際的訓(xùn)練集來(lái)確定softmax,如公式(9)所示。
ChryRegNN 系統(tǒng)中使用的訓(xùn)練樣本的類別為5個(gè),所以神經(jīng)元節(jié)點(diǎn)數(shù)為5個(gè)。輸入神經(jīng)元個(gè)數(shù)為F4全連接層的輸出神經(jīng)元個(gè)數(shù),即 192個(gè),經(jīng)過(guò)輸出層,最后輸出神經(jīng)元個(gè)數(shù)為5個(gè),即可進(jìn)行分類識(shí)別。ChryRegNN 系統(tǒng)各層模型預(yù)測(cè)的總結(jié)如表1所示。
表1 CNN的組織層次總結(jié)Table 1 Layers summarization of CNN model
2.3.1 優(yōu)化網(wǎng)絡(luò)參數(shù)
對(duì)于激活函數(shù),系統(tǒng)采用ReLU激活函數(shù),其表達(dá)式為公式(10)。ReLU激活函數(shù)具有收斂速度快和稀疏激活性的優(yōu)點(diǎn)[28]。2
.3.2 局部響應(yīng)歸一化
局部響應(yīng)歸一化(local response normalization, LRN)作用是對(duì)于每個(gè)元素按照給定的系數(shù)逐一進(jìn)行規(guī)范化處理,以提高神經(jīng)網(wǎng)絡(luò)分類精確度,如公式(11)所示。
式中 aix, y 表示第i個(gè)卷積核在位置(x, y)的輸出,bix, y是局部響應(yīng)歸一化后的輸出,N為卷積核的數(shù)量,k、α、n、β為常量。
2.3.3 Dropout優(yōu)化
為了解決過(guò)擬合問(wèn)題,系統(tǒng)采用dropout 策略,它是一種為防止神經(jīng)網(wǎng)絡(luò)過(guò)擬合的正則化方式[29]。dropout是一種提高泛化能力,降低過(guò)擬合的方法。為了避免過(guò)擬合現(xiàn)象,在神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過(guò)程中隨機(jī)拋棄隱藏層神經(jīng)節(jié)點(diǎn)的輸出值,物理意義相當(dāng)于斷開(kāi)該網(wǎng)絡(luò)連接,因此在反向傳播更新權(quán)值參數(shù)時(shí),不需要更新與該節(jié)點(diǎn)相連的權(quán)值。本系統(tǒng)在卷積層采用了 dropout策略,dropout參數(shù)設(shè)置為0.25。
2.3.4 損失函數(shù)
針對(duì)細(xì)粒度圖像分類,系統(tǒng)采用了文獻(xiàn)[23]提出的pairwise confusion loss函數(shù)。該函數(shù)可以對(duì)細(xì)粒度圖像為端到端的 CNN網(wǎng)絡(luò)訓(xùn)練提供更為有效的懲罰目標(biāo)函數(shù),使得訓(xùn)練模型具有更好的泛化能力。對(duì)于包含N類的數(shù)據(jù)集上的一個(gè)神經(jīng)網(wǎng)絡(luò)和其參數(shù)θ,數(shù)據(jù)x的條件概率pθ(y| x),pairwise confusion loss如公式(12)所示。
式中 x1、 x2為訓(xùn)練集合中的隨機(jī)采樣。對(duì)包含κ個(gè)樣本S = [ S1, S2]優(yōu)化的目標(biāo)如公式(13)所示。
式中 LCE為S上的交叉熵[30], Lp是對(duì)象對(duì) ( s1i, s2i)在[S1, S2]上計(jì)算結(jié)果,λ*參數(shù)為權(quán)重。根據(jù)文獻(xiàn)[23]試驗(yàn)結(jié)果,λ*設(shè)置為0.1。
系統(tǒng)對(duì)神經(jīng)網(wǎng)絡(luò)用 Mini-batch SGD[31]進(jìn)行訓(xùn)練。Mini-batch SGD方法從數(shù)據(jù)集中每次取出mini-batch的數(shù)據(jù)進(jìn)行訓(xùn)練。該方法綜合了Batch Gradient Descent能夠保證收斂到全局最優(yōu)值(凸函數(shù))/局部最優(yōu)值(非凸函數(shù))和Stochastic Gradient Descent的在線更新優(yōu)點(diǎn)。每次從全部數(shù)據(jù)中取1個(gè) mini-batch 的數(shù)據(jù)計(jì)算。具體的訓(xùn)練過(guò)程如圖7所示。
系統(tǒng)訓(xùn)練過(guò)程步驟如下:
1)使用從截?cái)嗟恼龖B(tài)分布中輸出隨機(jī)值的方法初始化網(wǎng)絡(luò)的權(quán)值 W,生成的值服從具有指定平均值和標(biāo)準(zhǔn)偏差的正態(tài)分布,如果生成的值大于平均值 2個(gè)標(biāo)準(zhǔn)偏差的值則丟棄重新選擇。其中偏置量b設(shè)定為常量。
2)從訓(xùn)練集中隨機(jī)選取一個(gè)batch的訓(xùn)練樣本,系統(tǒng)設(shè)定batch為15,對(duì)訓(xùn)練樣本進(jìn)行圖像預(yù)處理后輸入到卷積神經(jīng)網(wǎng)絡(luò)中。
3)訓(xùn)練樣本通過(guò)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行前向傳播,計(jì)算得到輸出值。
4)計(jì)算實(shí)際的輸出值與預(yù)測(cè)的輸出值之間的誤差值。如果迭代次數(shù)達(dá)到預(yù)定值,則停止訓(xùn)練,否則繼續(xù)進(jìn)行訓(xùn)練。
5)按照極小化的方式將誤差進(jìn)行反向傳播,逐步更新卷積神經(jīng)網(wǎng)絡(luò)的權(quán)值參數(shù)。
6)返回步驟(2),循環(huán)訓(xùn)練。
圖7 ChryRegNN的訓(xùn)練流程圖Fig.7 Training flow chart of ChryRegNN
系統(tǒng)采用Java和Python 3.5實(shí)現(xiàn),可以在Android4.0+環(huán)境下使用,離線模型可以托管在亞馬遜 AWS 等云平臺(tái)。CNN的計(jì)算實(shí)現(xiàn)采用了tensorflow V1.0[32]框架。
本文采用的數(shù)據(jù)集共6 300張菊花圖像,共分為5種類型:翻卷型、雛菊型、飛舞型、球型和蓮座型。其中6 000張作為訓(xùn)練圖片,300張作為測(cè)試圖片,即每種類型包含訓(xùn)練圖片1 200張和60張測(cè)試圖片。
系統(tǒng)中的參數(shù)設(shè)置k=2,n=5,α=0.001/9.0,β=0.75。系統(tǒng)設(shè)置的迭代次數(shù)為30 000次,batch為15,每 1 000步在檢查點(diǎn)文件中保存模型中的所有參數(shù),pairwise confusion loss函數(shù)的參數(shù)*λ采用文獻(xiàn)[23]推薦設(shè)置為0.1。
ChryRegNN系統(tǒng)在移動(dòng)終端上的測(cè)試如所圖8所示。圖8a是輸入一個(gè)翻轉(zhuǎn)型菊花圖片系統(tǒng)經(jīng)過(guò)識(shí)別輸出的結(jié)果,使用中括號(hào)表示該花型的在數(shù)據(jù)庫(kù)中的索引值,括號(hào)里面的值為計(jì)算的概率值。該系統(tǒng)不僅可以計(jì)算菊花類型的概率值,并可以給出該花型可能的品種歸屬。圖8b是根據(jù)花型識(shí)別系統(tǒng)輸入的該花型包括的菊花品種,比較直觀地展示了該類型涵蓋的不同品種。
圖8 ChryRegNN 系統(tǒng)在移動(dòng)終端測(cè)試示例Fig.8 Illustration of ChryRegNN systerm on MT
為了評(píng)價(jià)系統(tǒng)的識(shí)別效果,系統(tǒng)采用了平均識(shí)別精度和識(shí)別準(zhǔn)確率進(jìn)行評(píng)測(cè),分別如公式(14)和(15)所示。對(duì)于第i種花型的平均識(shí)別精度采用公式(14)所示。
識(shí)別精度結(jié)果如表2所示。表2結(jié)果表明,系統(tǒng)在5種不同花型的菊花上,平均識(shí)別精度為0.959。對(duì)于翻轉(zhuǎn)型菊花,由于其外觀與其它類型區(qū)別較大,平均識(shí)別率達(dá)到0.98。試驗(yàn)表明系統(tǒng)能夠滿足實(shí)際使用要求。
表2 不同菊花形狀的識(shí)別精度Table 2 Recognition precision of different patterns type
為了對(duì)比不同系統(tǒng)的識(shí)別準(zhǔn)確率,在手機(jī)上安裝了3個(gè)系統(tǒng):微軟識(shí)花[11]、花伴侶[13]和行色[12]。對(duì) 5種花型分別采用50個(gè)圖像做測(cè)試,通過(guò)拍照進(jìn)行識(shí)別。表3是識(shí)別準(zhǔn)確率對(duì)比,每種花型的準(zhǔn)確率計(jì)算如公式(15)所示。
式中ip為 1表示系統(tǒng)識(shí)別出圖像為菊花,否則記為 0,M表示測(cè)試的次數(shù)。
表3表明,ChryRegNN系統(tǒng)在菊花的識(shí)別準(zhǔn)確率方面超過(guò)了現(xiàn)有的微軟識(shí)花[11]、花伴侶[13]和行色[12]識(shí)別系統(tǒng),4個(gè)系統(tǒng)的平均識(shí)別準(zhǔn)確率比較見(jiàn)表3,系統(tǒng)對(duì)5種花型的平均識(shí)別準(zhǔn)確率通過(guò)公式表明,行色[12]和花伴侶[13]對(duì)菊花的識(shí)別準(zhǔn)確率相對(duì)較高,計(jì)算。結(jié)果但是以上系統(tǒng)都不能識(shí)別出菊花的花型。需要說(shuō)明的是,本系統(tǒng)只針對(duì)菊花進(jìn)行識(shí)別,目前的系統(tǒng)假定識(shí)別的結(jié)果都是菊花,因此系統(tǒng)的準(zhǔn)確率輸出是菊花的對(duì)于非菊花圖像,存在誤判的可能性,在此普適性方面,與 3個(gè)的系統(tǒng)具有一定的差距。
表3 4個(gè)系統(tǒng)識(shí)別準(zhǔn)確率Θ對(duì)比Table 3 Recognition accuracy rate Θ comparison of 4 systems
本文采集并標(biāo)注了菊花花型和類別數(shù)據(jù)集,根據(jù)菊花花型,采用端到端的卷積神經(jīng)網(wǎng)絡(luò),初步研究和構(gòu)建了一個(gè) 6層網(wǎng)絡(luò)的菊花花型和品種識(shí)別系統(tǒng)。系統(tǒng)數(shù)據(jù)輸入和結(jié)果輸出采用端到端的方式,數(shù)據(jù)的表示采用張量作為輸出,針對(duì)不同的菊花花型設(shè)計(jì)了菊花識(shí)別系統(tǒng),為了在細(xì)粒度級(jí)別區(qū)分不同菊花之間的差異和相似性,采用了pairwise confusion loss函數(shù)。系統(tǒng)分為離線和在線2個(gè)階段,為了便于模型更新、移植和使用,其中離線模型可以在云環(huán)境中托管部署,系統(tǒng)模型能夠在線通過(guò)云端的計(jì)算實(shí)現(xiàn)在移動(dòng)環(huán)境普適計(jì)算。
本文收集并使用了真實(shí)的菊花圖像數(shù)據(jù), 為了訓(xùn)練模型根據(jù)菊花花型進(jìn)行了人工標(biāo)注和分類,通過(guò)與相關(guān)、典型的識(shí)別系統(tǒng)進(jìn)行試驗(yàn)對(duì)比,識(shí)別準(zhǔn)確率較現(xiàn)有系統(tǒng)具有很大的提升。在識(shí)別精度方面,系統(tǒng)平均識(shí)別精度達(dá)到0.95左右,部分花型平均識(shí)別率達(dá)到0.98。
本系統(tǒng)尚有不足之處,把菊花的識(shí)別作為一個(gè)封閉的系統(tǒng),假設(shè)所有的結(jié)果都是菊花,在其它花卉的識(shí)別可能會(huì)造成錯(cuò)誤的輸出。后期將根據(jù)不同的菊花品種。后期的工作將圍繞意下各方面進(jìn)行研究:1)在數(shù)據(jù)集方面,由于手工分類的困難,后期一方面引入半監(jiān)督方法來(lái)彌補(bǔ)效率低的問(wèn)題,另一方面加入通用的花卉植物庫(kù)的數(shù)據(jù)來(lái)驗(yàn)證和提升計(jì)算效果;2)設(shè)計(jì)特征融合框架,引入更多特征,在細(xì)粒度方面提升差異識(shí)別精度;3)除了花型識(shí)別,實(shí)現(xiàn)根據(jù)花型多層的分類識(shí)別框架,提供菊花品種更加精細(xì)化識(shí)別能力。
[1] 付為琳,孫桂菊. 菊花的有效成分、功效、提取工藝及開(kāi)發(fā)前景[J]. 食品工業(yè)科技,2008,29(3):296-299.Fu Weilin Sun Guiju. The composition, effect, extraction and utilization of Chrysanthemum[J]. Science and Technology of Food Industry, 2008, 29(3): 296-299. (in Chinese with English abstract)
[2] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.
[3] 張 帥,淮永建. 基于分層卷積深度學(xué)習(xí)系統(tǒng)的植物葉片識(shí)別研究[J]. 北京林業(yè)大學(xué)學(xué)報(bào),2016,38(9):108-115.Zhang Shuai, Huai Yongjian. Study on plant leaf recognition based on stratified convolution depth learning system[J].Journal of Beijing Forestry University, 2016, 38 (9): 108-115. (in Chinese with English abstract)
[4] CLEF Initiative[N/OL]. 2017[2017-07-25]. http://www.clefinitiative.eu/.
[5] LifeCLEF 2017[N/OL]. 2017[2017-07-25]. http://www.imageclef.org/lifeclef/2017.
[6] Backes A R, Casanova D, Bruno O M. A complex networkbased approach for boundary shape analysis[J]. Pattern Recognition, 2009, 42(1): 54-67.
[7] 龔丁禧,曹長(zhǎng)榮. 基于卷積神經(jīng)網(wǎng)絡(luò)的植物葉片分類[J].計(jì)算機(jī)與現(xiàn)代化,2014,2014(4):12-15.Gong Dingxi, Cao Changrong. Plant leaf classification based on CNN[J] .Computer & Modern, 2014, 2014(4): 12-15.(in Chinese with English abstract)
[8] 翟傳敏,汪青萍,杜吉祥. 基于葉緣與葉脈分?jǐn)?shù)維特征的植物葉識(shí)別方法研究[J]. 計(jì)算機(jī)科學(xué),2014,41(2):170-173.Zhai Chuanmin, Wang Qingping, Du Jixiang. Plant leaf recognition method based on fractai dimension Feature of outline and venation[J]. Computer Science, 2014, 41(2): 170-173. (in Chinese with English abstract)
[9] 王麗君,淮永建,彭月橙. 基于葉片圖像多特征融合的觀葉植物種類識(shí)別[J]. 北京林業(yè)大學(xué)學(xué)報(bào),2015,37(1):55-61.Wang Lijun, Huai Yongjian, Peng Yuecheng. Leaf image recognition based on layered convolutions neural network deep learning[J]. Journal of Beijing Forestry University, 2015,37(1): 55-61. (in Chinese with English abstract)
[10] 沈 萍,趙 備. 基于深度學(xué)習(xí)模型的花卉種類識(shí)別[J]. 科技通報(bào),2017,33(3):115-119.Shen Ping, Zhao Bei. Automatic classification of flowers based on deep learning model[J]. Bulletin of Science and Technology, 2017, 33(3): 115-119. (in Chinese with English abstract)
[11] 微軟識(shí)花[N/OL]. 2017 [2017-07-01]. https://www.microsoft.com/en-us/research/project/flowerreco-cn/.
[12] 形色[N/OL].2017 [2017-06-10]. http://www.xingseapp.com/.
[13] 看圖識(shí)花[N/OL].2017 [2017-05-20]. http://stu.iplant.cn/web.
[14] Garden Answers[N/OL]. 2017[2017-07-20]. http://www.gardenanswers.com/.
[15] 孫志遠(yuǎn),魯成祥,史忠植,等. 深度學(xué)習(xí)研究與進(jìn)展[J]. 計(jì)算機(jī)科學(xué),2016,43(2):1-8.Sun Zhiyuan, Lu Chengxiang, Shi Zhongzhi. et al. Research and advances on deep learning[J]. Computer Science. 2016,43(2): 1-8. (in Chinese with English abstract)
[16] Krizhevsky A, Sutskever I, Hinton G E. Image Net classification with deep convolutional neural networks[C]//International Conference on Neural Information Processing Systems. 2012:1097-1105.
[17] Neural Nets[DB/OL]. 2017[2017-07-28]. http://jhirniak.github.io/neural_nets/.
[18] Yoon S, Yoon S. DeepCCI: End-to-end deep learning for chemical-chemical interaction prediction[C]//ACM International Conference on Bioinformatics, Computational Biology,and Health Informatics. 2017: 203-212.
[19] Ren S, He K, Girshick R, et al. Object detection networks on convolutional feature maps[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 39(7): 1476-1481.
[20] Trigeorgis G, Ringeval F, Brueckner R, et al. Adieu features?End-to-end speech emotion recognition using a deep convolutional recurrent network[C]//IEEE International Conference on Acoustics, Speech and Signal Processing. 2016: 5200-5204.
[21] Tang H, Wang W, Gimpel K, et al. End-to-end training approaches for discriminative segmental models[C]//Spoken Language Technology Workshop. 2016: 496-502.
[22] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[C]//IEEE Conference on Computer Vision and Pattern Recognition. 2015: 3431-3440.
[23] Dubey A, Gupta O, Guo P, et al. Training with confusion for fine-grained visual classification[J/OL]. 2017. https://arxiv.org/abs/1705.08016.
[24] Hecht-Nielsen R. Theory of the backpropagation neural network[J]. Neural Networks, 1988, 1(Supplement-1): 445-448.
[25] 楊琬琪,高 陽(yáng),周新民,等. 多模態(tài)張量數(shù)據(jù)挖掘算法及應(yīng)用[J]. 計(jì)算機(jī)科學(xué),2012,39(1):9-13.Yang Wanqi, Gao Yang, Zhou Xinmin, et al. Multi- modal tensor data mining algorithms and applications[J]. Computer Science., 2012, 39(1): 9-13. (in Chinese with English abstract)
[26] Hassani S. Analysis of Tensors[M]//Switzerland: Springer International Publishing, 2013: 859-911.
[27] AWS 云服務(wù)[EB/OL]. 2017[2017-05-10]. https://aws.amazon.com/cn.
[28] Xu B, Wang N, Chen T, et al. Empirical evaluation of rectified activations in convolutional network[J/OL]. 2015. https://arxiv.org/abs/1505.00853.
[29] Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science, 2012, 3(4): 212-223.
[30] Cai D, Chen K, Qian Y, et al. Convolutional low-resolution fine-grained classification[J/OL]. 2017. https://arxiv.org/abs/1703.05393.
[31] Li M, Zhang T, Chen Y, et al. Efficient mini-batch training for stochastic optimization[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 661-670.
[32] tensorflow[EB/OL].2017 [2017-06-15]. https://www.tensorflow.org/.