熊聰聰,趙子健,曹鑒華,湯凌燕
(天津科技大學(xué)人工智能學(xué)院,天津 300457)
濕地是鳥類重要的棲息地,也是天然的物種基因庫和人類的重要環(huán)境之一[1].將計算機(jī)視覺技術(shù)應(yīng)用于濕地鳥類識別,利用目標(biāo)檢測算法對濕地鳥類進(jìn)行識別,識別的速度更快、結(jié)果更準(zhǔn)確.該技術(shù)能夠有效地對濕地鳥類進(jìn)行統(tǒng)計、跟蹤,為科研工作者研究濕地鳥類的活動范圍、生活習(xí)性以及種群繁衍等提供便利,進(jìn)一步為濕地鳥類提供更具有針對性的保護(hù)措施,對保護(hù)濕地的生態(tài)平衡和物種多樣性具有重要 意義.
基于深度學(xué)習(xí)的特征表達(dá)具有強(qiáng)大的分層自學(xué)能力,能深度挖掘隱含在數(shù)據(jù)內(nèi)部的潛在關(guān)系,因此適合解決分類、目標(biāo)檢測、語義分割等計算機(jī)視覺問題.然而,深度學(xué)習(xí)依賴大量有標(biāo)注數(shù)據(jù)的支持[2]. 與傳統(tǒng)生物數(shù)據(jù)集相比,鳥類識別數(shù)據(jù)集具有不同類別間差距大、同類別內(nèi)差距小、背景復(fù)雜等特點[3]. 與傳統(tǒng)鳥類識別數(shù)據(jù)集相比,天津大黃堡濕地鳥類數(shù)據(jù)集存在鳥類樣本數(shù)量少、樣本分布不均衡等特點. 針對上述問題,本文提出一種基于生成式對抗網(wǎng)絡(luò)(generative adversarial network,GAN)的濕地鳥類識別數(shù)據(jù)集擴(kuò)充方法.首先對現(xiàn)有的濕地鳥類數(shù)據(jù)樣本進(jìn)行常規(guī)的仿射變換處理,如旋轉(zhuǎn)、縮放、水平翻轉(zhuǎn)、改變顏色通道、添加隨機(jī)噪聲等.在此基礎(chǔ)上,采用生成式對抗網(wǎng)絡(luò)樣本擴(kuò)充方法,將濕地鳥類圖像輸入生成式對抗網(wǎng)絡(luò)進(jìn)行迭代訓(xùn)練,獲取更多的鳥類圖像樣本,緩解樣本不均衡的問題,提高濕地保護(hù)區(qū)內(nèi)鳥類識別檢測的精度.
深度學(xué)習(xí)在許多場景和任務(wù)中已經(jīng)取得了巨大成功,如圖像分類檢測、機(jī)器翻譯、語音識別、視頻處理等[4-7].相比于傳統(tǒng)的有監(jiān)督機(jī)器學(xué)習(xí)方法,深度學(xué)習(xí)不僅依賴復(fù)雜的網(wǎng)絡(luò)模型結(jié)構(gòu)和不斷優(yōu)化的網(wǎng)絡(luò)算法,而且更需要足夠的、大規(guī)模的甚至超大規(guī)模的訓(xùn)練樣本,保證模型具有魯棒性和泛化性.當(dāng)樣本數(shù)量少、樣本分布不均衡時,深度網(wǎng)絡(luò)模型的精度往往會大打折扣.如何提升樣本數(shù)量、提高模型可靠性是亟待解決的問題[2].
近年來,數(shù)據(jù)擴(kuò)充(data augmentation)已經(jīng)成為一個重要的研究領(lǐng)域,它是指通過一定的方法創(chuàng)建額外的合成樣本.在計算機(jī)視覺領(lǐng)域,當(dāng)已有的圖像數(shù)量過少時,可以使用傳統(tǒng)的圖像處理方法如平移、旋轉(zhuǎn)、縮放、改變顏色通道等,增加樣本的數(shù)量[8].如AlexNet模型[9]提出時就采用了兩種數(shù)據(jù)擴(kuò)充方法,一種是平移和水平翻轉(zhuǎn)以及在圖像的四角和中心區(qū)域進(jìn)行剪裁;另一種是調(diào)整圖像的RGB通道,改變照明的強(qiáng)度和顏色.這兩種方法使得AlexNet模型的準(zhǔn)確率提升了1%.SPP-Net、Fast RCNN、Faster RCNN、YOLO等多種目標(biāo)檢測算法中同樣提出多種仿射變換數(shù)據(jù)擴(kuò)充策略[10].使用深度學(xué)習(xí)模型進(jìn)行數(shù)據(jù)擴(kuò)充的方法受到學(xué)術(shù)界的關(guān)注,例如使用人工神經(jīng)網(wǎng)絡(luò)生成用于文本識別的合成數(shù)據(jù)集[2]以及可變自動編碼器[11].同時,一些研究者在計算機(jī)視覺圖像分類、目標(biāo)檢測、語義分割領(lǐng)域的多種任務(wù)中,使用生成式對抗網(wǎng)絡(luò)生成數(shù)據(jù)樣本提升模型的精度和泛化性能[12-13].
生成式對抗網(wǎng)絡(luò)的優(yōu)勢在于其具有強(qiáng)大的隱式建模能力,不需要真實樣本數(shù)據(jù)的顯式分布以及假設(shè)更多的數(shù)學(xué)條件,這些優(yōu)勢使得基于對抗網(wǎng)絡(luò)的圖像生成方法可以被應(yīng)用于很多學(xué)術(shù)領(lǐng)域和工程領(lǐng)域. Qin等[14]針對醫(yī)學(xué)皮膚病變圖像數(shù)據(jù)集,提出基于皮膚病變圖像風(fēng)格的SL-StyleGAN模型,有效地合成高質(zhì)量的皮膚病變圖像,并且緩解了類別不平衡的問題.Liu等[15]針對行人檢測數(shù)據(jù)集,提出屬性保持生成式對抗網(wǎng)絡(luò)APGAN模型,以模擬各種比例和遮擋的行人圖像,同時使用風(fēng)格轉(zhuǎn)換增加圖像的真實度,實現(xiàn)了數(shù)據(jù)集的擴(kuò)充.王金娜等[16]針對輸電線路絕緣子目標(biāo)檢測數(shù)據(jù)集,提出一種基于Cycle-GAN的絕緣子圖像生成方法,生成高質(zhì)量的絕緣子圖像,擴(kuò)充了數(shù)據(jù)集并提升了分類網(wǎng)絡(luò)的性能.
深度學(xué)習(xí)作為鳥類識別領(lǐng)域的重要技術(shù)在理論和應(yīng)用等方面已經(jīng)取得較大進(jìn)展[17],但目前使用的數(shù)據(jù)集主要是CUB-200-2011數(shù)據(jù)集.王光陛[18]提出基于Faster RCNN的語義檢測細(xì)粒度識別方法,在CUB-200-2011數(shù)據(jù)集上取得81.56%的準(zhǔn)確率.智緒曄[3]使用強(qiáng)監(jiān)督目標(biāo)檢測模型單次多目標(biāo)框檢測器,實現(xiàn)鳥類目標(biāo)和關(guān)鍵部位的檢測定位,在CUB-200-2011數(shù)據(jù)集的驗證集上取得89.7%的準(zhǔn)確率.翁雨辰[19]選用VGG和ResNet作為特征提取網(wǎng)絡(luò),搭建基于區(qū)域建議網(wǎng)絡(luò)和深度全卷積的網(wǎng)絡(luò)結(jié)構(gòu)實現(xiàn)鳥類圖像分割任務(wù),在CUB-200-2011數(shù)據(jù)集的訓(xùn)練集和測試集上取得97.7%的準(zhǔn)確率.
天津大黃堡濕地的生境類型多樣,有大面積的蘆葦沼澤、淺灘、水塘、堤岸草叢及防護(hù)林帶等,其獨特的地理環(huán)境和優(yōu)良的水質(zhì)為多種鳥類提供了適宜的棲息環(huán)境[20].據(jù)調(diào)查,大黃堡濕地內(nèi)有記錄的鳥類有17目44科199種,其中國家一級保護(hù)鳥類4種,國家二級保護(hù)鳥類34種[20].天津大黃堡濕地內(nèi)的4種國家一級保護(hù)鳥類如圖1所示.
圖1 天津大黃堡濕地內(nèi)的4種國家一級保護(hù)鳥類 Fig. 1 Four species of national first-class protected birds in Dahuangbao wetland in Tianjin
受時間、環(huán)境等客觀因素的影響,本次收集到濕地鳥類數(shù)據(jù)集的種類和樣本均比較有限,基于細(xì)粒度方式統(tǒng)計,共包含鳥類121種、圖像樣本6045張,數(shù)據(jù)樣本明顯不夠,同時各類樣本之間不均衡的特征較為突出.
采用平衡系數(shù)Balance評價數(shù)據(jù)集的均衡程度.平衡系數(shù)Balance是一種基于香農(nóng)熵(H)的平衡度量.當(dāng)Balance為1時,表示數(shù)據(jù)集完全平衡,表明每個類別包含的樣本數(shù)量相同;當(dāng)Balance為0時,表示數(shù)據(jù)集完全不平衡[2].Balance越小說明數(shù)據(jù)集越不平衡,其計算公式見式(1).
其中:n為數(shù)據(jù)集樣本數(shù)量,K為類別數(shù)量,ic表示每個類別包含的樣本數(shù)量.
按照上述計算方法計算原始數(shù)據(jù)集的平衡系數(shù),結(jié)果僅為0.8.經(jīng)過觀察統(tǒng)計,本數(shù)據(jù)集中大量類別樣本數(shù)量小于10,導(dǎo)致數(shù)據(jù)集嚴(yán)重不平衡,因此權(quán)衡后僅保留單個類別樣本數(shù)量大于100的類別構(gòu)成初始數(shù)據(jù)集,共計21類3048張樣本(表1).
表1 濕地鳥類數(shù)據(jù)集概況 Tab. 1 Overview of wetland bird dataset
生成式對抗網(wǎng)絡(luò)[21]自誕生以來,已經(jīng)成為生成式深度學(xué)習(xí)技術(shù)最顯著的突破之一.生成式對抗網(wǎng)絡(luò)模型的基本架構(gòu)由兩個神經(jīng)網(wǎng)絡(luò)組成,分別稱為生成器和判別器,它們在對抗的過程中同時訓(xùn)練.生成器的目的是生成一個新的合成樣本,使判別器將之誤判為真實樣本.
為了學(xué)習(xí)生成器在數(shù)據(jù)x上的分布,定義輸入噪聲變量 pz(z),然后將數(shù)據(jù)空間的映射表示為G(z;θg).判別器的目的是判斷輸入樣本是來自真實數(shù)據(jù)集 pdata還是合成數(shù)據(jù)集 pg.判別器 D(x;θd)的輸出為一個標(biāo)量,D(x)表示x來自真實數(shù)據(jù)集而不是合成數(shù)據(jù)集的概率.因此,生成器和判別器的過程是相反的,二者在相互競爭中不斷優(yōu)化函數(shù),即
GAN的損失函數(shù)包含網(wǎng)絡(luò)模型的兩個相互關(guān)聯(lián)的部分:一部分涉及真實樣本的識別,其表達(dá)式為;另一部分涉及合成樣本的識別,其表達(dá)式為.在對抗訓(xùn)練的過程中最大化 logD(x),提升判別器的判別能力,同時最小化 log(1 ? D( G(z ))),強(qiáng)化生成器模擬真實數(shù)據(jù)的能力.
如果向生成器和判別器輸入額外的信息y,y作為附加輸入層輸入生成器和判別器,就將生成式對抗網(wǎng)絡(luò)擴(kuò)展為條件對抗網(wǎng)絡(luò)[22],y可以是任何種類的輔助信息,例如類別標(biāo)簽等.在生成器中,輸入噪聲pz(z)和y被組合成聯(lián)合隱藏表示,在判別器中,x和y被作為輸入提供給判別函數(shù),優(yōu)化函數(shù)為
圖2為一個簡單的條件對抗網(wǎng)絡(luò)結(jié)構(gòu)示意圖.
在深度生成網(wǎng)絡(luò)模型中,通過學(xué)習(xí)一組樣本的數(shù)據(jù)分布,進(jìn)而使用學(xué)到的分布生成新的樣本.GAN在兩個網(wǎng)絡(luò)之間產(chǎn)生對抗,一個網(wǎng)絡(luò)(生成器)學(xué)習(xí)真實數(shù)據(jù)的分布并生成新的合成數(shù)據(jù),試圖欺騙另一個網(wǎng)絡(luò);另一個網(wǎng)絡(luò)(判別器)負(fù)責(zé)辨別其接收到的數(shù)據(jù)是來自真實的數(shù)據(jù)集還是生成器生成的合成數(shù)據(jù). 兩個網(wǎng)絡(luò)在不斷對抗學(xué)習(xí)中逐漸提升合成和鑒別的能力,最后能夠生成可以使人類專家都無法分辨真?zhèn)蔚?合成圖像[21].
首先,基于卷積神經(jīng)網(wǎng)絡(luò)的平移旋轉(zhuǎn)不變性,對所有鳥類圖像樣本進(jìn)行旋轉(zhuǎn)變換.考慮到盡量不引起檢測框長寬比的較大變化,旋轉(zhuǎn)角度設(shè)定為-5°~5°.然后,進(jìn)行縮放變換、水平翻轉(zhuǎn)變換,考慮到盡量控制位于圖像邊緣附近的鳥類圖像在放大后不越界,避免細(xì)節(jié)丟失,縮放尺度設(shè)定為90%~110%.最后,為了增加模型的魯棒性,使用了添加高斯噪聲的方法,其中μ=10、σ=1.將圖像RGB的3個通道與三維高斯噪聲相加,使用clamp函數(shù)處理越界的數(shù)值.
圖3為仿射變換前后的效果對比.由圖3可以觀察到:經(jīng)過仿射變換,鳥類圖像得到初步擴(kuò)充,并且對邊界框的長寬比、鳥類圖像的細(xì)節(jié)沒有產(chǎn)生較大改變,對后續(xù)任務(wù)的精度不會產(chǎn)生較大影響.
圖3 仿射變換前后的效果對比 Fig. 3 Comparison of effects before and after affine transformation
條件對抗網(wǎng)絡(luò)模型輸入需要具有標(biāo)注的樣本,因此首先對數(shù)據(jù)集已有的樣本進(jìn)行標(biāo)注處理.每個樣本的標(biāo)簽由一個列表構(gòu)成,包括5個元素c、x、y、w、h,其中:c為檢測框內(nèi)目標(biāo)的類別,x、y分別為檢測框中心的橫坐標(biāo)和縱坐標(biāo),w、h分別為檢測框的寬度和高度.對于每個鳥類圖像樣本,可以根據(jù)標(biāo)簽信息提取目標(biāo)檢測框內(nèi)的鳥類圖像.為了避免拉伸造成的形變對模型分類精度的影響,以檢測框的長邊為邊長繪制一個灰色的正方形,然后將目標(biāo)放置在正方形的中心,將正方形壓縮至128像素×128像素,最后保存每個目標(biāo)的類別(圖4).
圖4 提取鳥類目標(biāo) Fig. 4 Extracting bird targets
將上述操作得到的鳥類圖像輸入條件對抗網(wǎng)絡(luò)進(jìn)行迭代訓(xùn)練.當(dāng)條件對抗網(wǎng)絡(luò)模型訓(xùn)練結(jié)束后,使用模型的生成器生成合成數(shù)據(jù).
當(dāng)數(shù)據(jù)集中每個類別所包含的樣本數(shù)量不同甚至差距較大,即數(shù)據(jù)的分布不平衡時,將生成式對抗網(wǎng)絡(luò)模型直接應(yīng)用于合成數(shù)據(jù)的生成,會出現(xiàn)分類模型崩塌的現(xiàn)象.為了避免這種問題,針對具有不同數(shù)量樣本的類別,采用不同擴(kuò)充比例的擴(kuò)充方法,讓生成式對抗網(wǎng)絡(luò)模型更好地適應(yīng)所有類別的樣本分布. 可以使用式(5)確定某類樣本擴(kuò)充后的總數(shù)量N.
其中:i為合成數(shù)據(jù)的類別,iN為第i類生成合成數(shù)據(jù)的個數(shù),x為第i類所包含的樣本數(shù)量占數(shù)據(jù)集中所有樣本數(shù)量的比例,n為數(shù)據(jù)集中包含的類別數(shù),N為希望生成的合成數(shù)據(jù)的總數(shù).
基于初始數(shù)據(jù)集的特點,在條件對抗網(wǎng)絡(luò)模型中設(shè)置參數(shù).生成器的輸入為256維的隨機(jī)噪聲,結(jié)構(gòu)包括反卷積層、批處理歸一化層、ReLU激活層.判別器的結(jié)構(gòu)包括卷積層、批處理歸一化層、ReLU激活層、λ=0.5的隨機(jī)失活層以及全連接層,輸出長度為21的向量.批處理大小設(shè)置為256,生成器和判別器的學(xué)習(xí)率為1×10-5,訓(xùn)練次數(shù)為10000次.判別器網(wǎng)絡(luò)和生成器網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖5所示.
圖5 判別器網(wǎng)絡(luò)和生成器網(wǎng)絡(luò)結(jié)構(gòu)示意圖 Fig. 5 Structure diagram of discriminator network and generator network
本實驗平臺的硬件為GPU-RTX3090,顯存為24GB,算法基于Keras 2.4.3,編程語言為Python 3.8.5,總訓(xùn)練時間為31.2h.訓(xùn)練完成后,使用生成器進(jìn)行各類別鳥類圖像的生成并加入數(shù)據(jù)集.濕地鳥類原始圖像和對抗網(wǎng)絡(luò)生成圖像的對比如圖6所示,圖6即為條件對抗網(wǎng)絡(luò)生成樣本效果.經(jīng)過仿射變換和對抗網(wǎng)絡(luò)生成圖像的擴(kuò)充,數(shù)據(jù)集平衡系數(shù)大幅提升,達(dá)到了0.99.
圖6 濕地鳥類原始圖像和對抗網(wǎng)絡(luò)生成圖像的對比(上圖為原圖,下圖為生成圖) Fig. 6 Comparison between the original image of wetland birds and the image generated by the adversarial network(the upper figure is the original image and the lower figure is the generated image)
針對初始數(shù)據(jù)集存在樣本數(shù)量少的問題,綜合使用仿射變換、對抗網(wǎng)絡(luò)模型生成方法實現(xiàn)鳥類數(shù)據(jù)集的擴(kuò)充,基本保證后續(xù)目標(biāo)檢測任務(wù)的效率和精度.
將仿射變換和對抗網(wǎng)絡(luò)生成的圖像加入數(shù)據(jù)集,并按8﹕2的比例劃分訓(xùn)練集和測試集.?dāng)?shù)據(jù)集擴(kuò)充前后不同算法評價指標(biāo)的對比見表2.表2展示了原始數(shù)據(jù)集、仿射變換擴(kuò)充數(shù)據(jù)集以及對抗網(wǎng)絡(luò)擴(kuò)充數(shù)據(jù)集分別在SSD、YOLOv3-SPP-Net、RetinaNet算法上訓(xùn)練100次的效果.3種算法均為單階段目標(biāo)檢測的經(jīng)典算法,且都可以進(jìn)行多尺度訓(xùn)練以及接受任意大小的圖片作為輸入,評價指標(biāo)為AP、mAP、AR,其中AP為將IoU設(shè)置為0.5或0.75時的平均精度,mAP為將IoU分別設(shè)置為[0.5,0.55,0.6,…,0.95]時AP的平均值,AR為將IoU分別設(shè)置為[0.5,0.55,0.6,…,0.95]時的平均召回率.
表2 數(shù)據(jù)集擴(kuò)充前后不同算法評價指標(biāo)的對比 Tab. 2 Comparison of evaluation indicators of different algorithms before and after data set expansion %
由表2可知,原始數(shù)據(jù)集的樣本數(shù)量有限,導(dǎo)致SSD算法和RetinaNet算法并不能充分學(xué)習(xí)各類樣本的特征,精度僅為20%左右,只有YOLOv3-SPP-Net算法的mAP達(dá)到了40%,但其AR不足50%.在仿射變換擴(kuò)充后,3種算法的mAP均超過了55%.而在使用本文提出的數(shù)據(jù)集擴(kuò)充方法之后,3種算法的mAP均超過了60%,AR也明顯提升.這表明針對天津大黃堡濕地場景中的鳥類識別,基于對抗網(wǎng)絡(luò)模型擴(kuò)充樣本的方法具有一定的有效性.
在擴(kuò)充樣本初始數(shù)據(jù)集時,已經(jīng)將同類別內(nèi)樣本數(shù)量小于50的目標(biāo)過濾.然而,在研究過程中嘗試對所有類別的樣本使用上述擴(kuò)充方法,在經(jīng)典目標(biāo)檢測算法中識別的精度并不是很理想,同時耗時更長,明顯受到了不同類別間樣本不均衡、擴(kuò)充樣本質(zhì)量不高等因素的影響.
針對樣本數(shù)量不足且類別分布不均衡的天津大黃堡濕地鳥類數(shù)據(jù)集,提出一種基于對抗網(wǎng)絡(luò)的濕地鳥類數(shù)據(jù)集擴(kuò)充方法,通過該方法將數(shù)據(jù)集規(guī)模進(jìn)行擴(kuò)充并且緩解了樣本分布不均衡的問題.通過在SSD、YOLOv3-SPP-Net、RetinaNet目標(biāo)檢測算法上進(jìn)行測試,使用擴(kuò)充后的數(shù)據(jù)集,基于3種經(jīng)典算法的精度均超過90%.由此可見,本文提出的擴(kuò)充方法得到的數(shù)據(jù)集能夠顯著提升算法的精度,為后續(xù)更多的鳥類識別研究提供技術(shù)支持.當(dāng)后續(xù)采集的鳥類數(shù)據(jù)集中種類變多時,樣本分布不均衡的問題會更突出,如何獲取更多質(zhì)量更高的訓(xùn)練集樣本是下一步需要研究的問題.同時,選擇適合區(qū)內(nèi)最佳的目標(biāo)檢測算法、適當(dāng)改進(jìn)現(xiàn)有經(jīng)典算法滿足目標(biāo)精確識別要求,也是需要深入思考的方向.