黃嘉寶, 朱永華, 周霽婷, 高文靖
(1.上海大學(xué)上海電影學(xué)院,上海200072;2.上海大學(xué)計(jì)算機(jī)工程與科學(xué)學(xué)院,上海200444)
細(xì)粒度圖像分類是目前圖像分類中的一個(gè)熱門話題,其目標(biāo)是在一個(gè)大類的數(shù)百數(shù)干個(gè)子類中正確識(shí)別目標(biāo).它在汽車車型、鳥類、貓犬和花的種類識(shí)別等領(lǐng)域有著廣泛的應(yīng)用,其中大部分使用了卷積神經(jīng)網(wǎng)絡(luò).當(dāng)前的研究熱點(diǎn)是雙線性卷積神經(jīng)網(wǎng)絡(luò).本研究選擇了原創(chuàng)數(shù)據(jù)集進(jìn)行細(xì)粒度圖像分類.一方面是利用遷移學(xué)習(xí)這一強(qiáng)大的工具來完成小型數(shù)據(jù)集的訓(xùn)練;另一方面是多肉植物肉眼不易分辨種類,希望通過特征提取和神經(jīng)網(wǎng)絡(luò)訓(xùn)練達(dá)到高識(shí)別率,從而促進(jìn)多肉植物種植的推廣和改善栽培管理.
與粗粒度圖像分類(通用圖像分類)相比,類間的細(xì)微差別使得細(xì)粒度分類非常具有挑戰(zhàn)性.粗粒度和細(xì)粒度圖像分類之間的區(qū)別如表1所示.可以看出,在粗粒度圖像分類中,將4張輸入圖像分類為植物;而在細(xì)粒度圖像分類中,可將其識(shí)別為所屬子類,例如第一張圖的植物名為紫珍珠.由于長相差異較小,除了小部分的多肉植物愛好者,人們很難正確辨別出多肉植物的特定名稱.為了了解這些差異,需要一個(gè)大型的數(shù)據(jù)集來提供學(xué)習(xí),但目前還沒有現(xiàn)成的多肉植物數(shù)據(jù)集.此外,在因不同視角、背景、光效和成長階段導(dǎo)致的視覺復(fù)雜度,有限的時(shí)間和計(jì)算機(jī)運(yùn)算能力等條件限制下,完成這項(xiàng)任務(wù)十分困難.
表1 粗粒度圖像分類和細(xì)粒度圖像分類的區(qū)別Table 1 Basic-level image classification vs.fine-grained image classification
本研究設(shè)計(jì)、實(shí)施和測試了一個(gè)輕量級的端到端系統(tǒng).該系統(tǒng)使用了目前流行的深度學(xué)習(xí)框架Caあe來對預(yù)先訓(xùn)練好的分類器進(jìn)行微調(diào),以便進(jìn)行特定的細(xì)粒度分類測試.本研究基于在ImageNet上訓(xùn)練的深度學(xué)習(xí)模型,具有非常普遍的特征,并且盡可能少地改變以適應(yīng)原創(chuàng)訓(xùn)練數(shù)據(jù).
本研究對包含了20種不同種類多肉植物的原創(chuàng)數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn).由于圖像的自由度,這個(gè)數(shù)據(jù)集非常具有挑戰(zhàn)性.但通過微調(diào)卷積神經(jīng)網(wǎng)絡(luò)后的強(qiáng)監(jiān)督圖像分類,依然獲得了高質(zhì)量的結(jié)果——96.7%的精準(zhǔn)率.
卷積神經(jīng)網(wǎng)絡(luò)是前饋神經(jīng)網(wǎng)絡(luò)中非常經(jīng)典的模型,包括卷積層和池化層等.卷積神經(jīng)網(wǎng)絡(luò)主要用來識(shí)別位移、縮放以及其他形式扭曲不變性的二維圖形.近年來,卷積神經(jīng)網(wǎng)絡(luò)已被用于大量的圖像處理和分類工作,其能力不僅是學(xué)習(xí)特征的權(quán)重,更是學(xué)習(xí)特征本身.由于卷積神經(jīng)網(wǎng)絡(luò)在通用圖像分類[1]上已經(jīng)達(dá)到了非常高的精度,故本研究將廣泛地使用卷積神經(jīng)網(wǎng)絡(luò)作為分類器的主要架構(gòu).
遷移學(xué)習(xí)是一種機(jī)器學(xué)習(xí)技術(shù),側(cè)重于對新任務(wù)的學(xué)習(xí)分類器進(jìn)行重新研究[2].在卷積神經(jīng)網(wǎng)絡(luò)的遷移學(xué)習(xí)中,首先在基礎(chǔ)數(shù)據(jù)集上訓(xùn)練基礎(chǔ)網(wǎng)絡(luò)來創(chuàng)建權(quán)重和特征;然后通過重新訓(xùn)練基礎(chǔ)網(wǎng)絡(luò)已有的權(quán)重和特征的一個(gè)子集,將這個(gè)分類器轉(zhuǎn)移到新的數(shù)據(jù)集.整體效果是適合新數(shù)據(jù)集的分類器,工作量比重新訓(xùn)練新網(wǎng)絡(luò)要少得多.當(dāng)目標(biāo)數(shù)據(jù)集顯著小于基礎(chǔ)數(shù)據(jù)集時(shí),遷移學(xué)習(xí)可以成為一個(gè)強(qiáng)大的工具,使得訓(xùn)練大型目標(biāo)網(wǎng)絡(luò)時(shí),最小化過擬合.在一些任務(wù)中,遷移學(xué)習(xí)展現(xiàn)了極佳的效果[3].
細(xì)粒度圖像分類是計(jì)算機(jī)視覺領(lǐng)域最基本、最具挑戰(zhàn)性的開放性問題之一,在學(xué)術(shù)界和工業(yè)界引起了廣泛關(guān)注.在鳥類[4-10]、植物[11-13]、食物[14]、汽車[15-18]和飛機(jī)[19]等多個(gè)領(lǐng)域進(jìn)行的細(xì)粒度圖像分類調(diào)查發(fā)現(xiàn),大部分方法都使用卷積神經(jīng)網(wǎng)絡(luò).對于大多數(shù)任務(wù)來說,每個(gè)分類的例子數(shù)量通常都相當(dāng)大以允許良好的泛化精度,但本研究的數(shù)據(jù)集相對較小,故而難度相對增加.
本研究將原創(chuàng)多肉植物的數(shù)據(jù)集通過預(yù)處理后作為訓(xùn)練集和測試集,再通過微調(diào)后的卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練,得到可用于圖像分類的模型,具體流程如圖1所示.
圖1 實(shí)驗(yàn)流程圖Fig.1 Experimental flowchart
本研究收集并整理了從百度和谷歌圖庫下載的共20 000張圖片,完成了原創(chuàng)數(shù)據(jù)集.該數(shù)據(jù)集包含了20種不同種類的多肉植物(見圖2),分為10 000個(gè)訓(xùn)練圖像和10 000個(gè)測試圖像.每個(gè)圖像都包含至少一株背景不同、視角不同的多肉植物.由于焦距、照明和攝像機(jī)位置等原因,每個(gè)圖像的質(zhì)量差異大.
表2 多肉數(shù)據(jù)集樣本Table 2 Samples of the succulents’dataset
所謂強(qiáng)監(jiān)督分類是指在模型訓(xùn)練時(shí),為了獲得更好的分類精度,除了圖像的類別標(biāo)簽外,還使用了物體標(biāo)注框和部位標(biāo)注點(diǎn)等額外的人工標(biāo)注信息.弱監(jiān)督分類的思路與強(qiáng)監(jiān)督分類相似,也需要借助全局和局部信息來進(jìn)行細(xì)粒度級別的分類.區(qū)別在于,弱監(jiān)督分類希望在不借助部件標(biāo)注點(diǎn)的情況下,也可以做到較好的局部信息捕捉[20].
步驟1 為數(shù)據(jù)集設(shè)置人工標(biāo)簽,編號為0~19.
步驟2 強(qiáng)監(jiān)督分類和弱監(jiān)督分類的區(qū)別在于數(shù)據(jù)集有無邊界框.為了進(jìn)行強(qiáng)監(jiān)督分類,訓(xùn)練數(shù)據(jù)中的背景噪聲需被排除.因此,使用描述每個(gè)圖像中存在多肉植物正確位置的邊界框來裁剪圖像,其中使用工具LabelImg完成邊界框的繪制,使用Python腳本完成圖像裁剪.為了保留多肉植物周圍的一些背景,邊界框的每條邊都在裁剪之前擴(kuò)大了16個(gè)像素,裁剪前后變化如圖2所示.
圖2 強(qiáng)監(jiān)督分類處理示意圖Fig.2 Preprocessing of supervised classification
步驟3 由于訓(xùn)練集包含各種圖像尺寸和橫縱比,因此需要把每張圖像尺寸調(diào)整為正方形,并且更改分辨率為227×227以配準(zhǔn)模型要求.本研究是在不保留橫縱比的情況下壓縮了圖像,而不是縮放或裁剪.
為了減輕數(shù)據(jù)和運(yùn)算時(shí)長的限制,本研究選擇了一種側(cè)重于遷移學(xué)習(xí)來快速創(chuàng)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方法.為了比較,采用AlexNet和GoogLeNet兩種網(wǎng)絡(luò).
2.4.1 AlexNet
文獻(xiàn)[1]提出的模型是一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò),它在ImageNet大規(guī)模視覺識(shí)別挑戰(zhàn)數(shù)據(jù)集上成功訓(xùn)練了大約120萬個(gè)1 000種不同類別的標(biāo)記圖像.AlexNet架構(gòu)擁有約65萬個(gè)神經(jīng)元和6 000萬個(gè)參數(shù),包括5個(gè)卷積層、2個(gè)標(biāo)準(zhǔn)化層、3個(gè)最大池層、3個(gè)完全連接層和1個(gè)輸出中具有Softmax激活的線性層.
2.4.2 GoogLeNet
GoogLeNet是對AlexNet的改進(jìn),共有22層.由于每個(gè)完全連接的層的權(quán)重較小,GoogLeNet的參數(shù)是AlexNet的1/12,并且更加準(zhǔn)確[21].GoogLeNet在不同深度的每個(gè)輸入都會(huì)產(chǎn)生3個(gè)輸出.但為了簡潔起見,本研究只使用最后一次的輸出結(jié)果.
本研究做了4個(gè)實(shí)驗(yàn):使用微調(diào)網(wǎng)絡(luò)AlexNet和GoogLeNet分別進(jìn)行強(qiáng)監(jiān)督和弱監(jiān)督細(xì)粒度圖像分類,實(shí)驗(yàn)編號為①~④.使用流行的深度學(xué)習(xí)框架Caあe[22]來構(gòu)建、訓(xùn)練和測試這兩個(gè)網(wǎng)絡(luò).每個(gè)模型對原像素?cái)?shù)據(jù)進(jìn)行50 000次迭代,學(xué)習(xí)率為0.001,衰減率為0.9.
在使用ImageNet訓(xùn)練的權(quán)重對每個(gè)網(wǎng)絡(luò)進(jìn)行預(yù)初始化之后,對網(wǎng)絡(luò)的最后3層進(jìn)行了微調(diào):對于AlexNet,在丟失輸出之前調(diào)整最后3個(gè)完全連接層;對于GoogLeNet,在每個(gè)丟失輸出之前立即調(diào)整2個(gè)完全連接層和卷積層.在多次調(diào)整后,選取了最佳的效果.實(shí)驗(yàn)參數(shù)對比如表3所示,網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示.
表3 4個(gè)實(shí)驗(yàn)的參數(shù)對比Table 3 Comparisons of parameters of the four experiments
深度學(xué)習(xí)框架Caあe的核心是用C++編寫的.可以使用Caあe的C++API實(shí)現(xiàn)類似于Python腳本的圖像分類應(yīng)用程序.本研究將網(wǎng)絡(luò)訓(xùn)練后得到的4個(gè)模型結(jié)合官方文檔來完成使用Softmax方式的圖像分類.
圖3 網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure
表4整理了4個(gè)實(shí)驗(yàn)的3項(xiàng)數(shù)據(jù):前1(Top-1)精準(zhǔn)率、前5(Top-5)精準(zhǔn)率和最終損失精度,其中最佳表現(xiàn)用粗體標(biāo)出.可見,微調(diào)GoogLeNet的強(qiáng)監(jiān)督分類達(dá)到了最佳效果,前1精準(zhǔn)率達(dá)到了96.7%.
表4 4個(gè)實(shí)驗(yàn)的前1、前5精準(zhǔn)率和最終損失精度對比Table 4 Comparisons of Top-1 accuracy,Top-5 accuracy and final loss of the four experiments
圖4和5展示了4個(gè)實(shí)驗(yàn)過程中,精準(zhǔn)率和損失率的數(shù)值變化.可以看出:對于AlexNet,迭代15 000次后,強(qiáng)監(jiān)督分類的精準(zhǔn)率在70%上下浮動(dòng),弱監(jiān)督分類的精準(zhǔn)率在60%上下浮動(dòng);對于GoogLeNet,迭代8 000次后,強(qiáng)監(jiān)督分類的精準(zhǔn)率基本穩(wěn)定在97%,弱監(jiān)督分類的精準(zhǔn)率基本穩(wěn)定在92%.
本研究測試了多個(gè)圖像的分類.圖6為測試分類的樣本,表5為7次分類的前1預(yù)測值,表6為模型Ⅳ測試樣本“黃麗”的前5預(yù)測值.結(jié)果表明,微調(diào)GoogLeNet的強(qiáng)監(jiān)督細(xì)粒度圖像分類成果顯著,能有效完成多肉植物分類的任務(wù).
雖然本研究在多肉植物細(xì)粒度圖像分類這一特定任務(wù)中取得了一定的進(jìn)展,但仍有許多方面需要進(jìn)一步探索和改進(jìn).本研究只測試了2個(gè)不同的典型卷積神經(jīng)網(wǎng)絡(luò)模型(AlexNet和GoogLeNet),還可以進(jìn)行更多的遷移學(xué)習(xí),并且這兩種模型都是用ImageNet權(quán)重來設(shè)計(jì)和初始化的,明顯缺乏多樣性.
圖4 微調(diào)AlexNet的弱監(jiān)督分類和強(qiáng)監(jiān)督分類Fig.4 Fine-tuning AlexNet’s weakly supervised classification and supervised classification
圖5 微調(diào)GoogLeNet的弱監(jiān)督分類和強(qiáng)監(jiān)督分類Fig.5 Fine-tuning GoogLeNet’s weakly supervised classification and supervised classification
圖6 測試樣本Fig.6 Test samples
此外,最初的調(diào)查只是針對細(xì)粒度的分類,在原創(chuàng)數(shù)據(jù)集整理完成之后添加了數(shù)據(jù)約束.雖然這讓本研究對稀疏數(shù)據(jù)訓(xùn)練的本質(zhì)有了一些了解,但更豐富的數(shù)據(jù)會(huì)更有助于改進(jìn)本研究.
表5 7次分類的前1預(yù)測值對比Table 5 Comparisons of the Top-1 predictive values of the seven classifications
表6 單次分類的前5預(yù)測值Table 6 Top-5 predictive values of a single classification