熊聰聰,趙子健,曹鑒華,湯凌燕
(天津科技大學人工智能學院,天津 300457)
濕地是鳥類重要的棲息地,也是天然的物種基因庫和人類的重要環境之一[1].將計算機視覺技術應用于濕地鳥類識別,利用目標檢測算法對濕地鳥類進行識別,識別的速度更快、結果更準確.該技術能夠有效地對濕地鳥類進行統計、跟蹤,為科研工作者研究濕地鳥類的活動范圍、生活習性以及種群繁衍等提供便利,進一步為濕地鳥類提供更具有針對性的保護措施,對保護濕地的生態平衡和物種多樣性具有重要 意義.
基于深度學習的特征表達具有強大的分層自學能力,能深度挖掘隱含在數據內部的潛在關系,因此適合解決分類、目標檢測、語義分割等計算機視覺問題.然而,深度學習依賴大量有標注數據的支持[2]. 與傳統生物數據集相比,鳥類識別數據集具有不同類別間差距大、同類別內差距小、背景復雜等特點[3]. 與傳統鳥類識別數據集相比,天津大黃堡濕地鳥類數據集存在鳥類樣本數量少、樣本分布不均衡等特點. 針對上述問題,本文提出一種基于生成式對抗網絡(generative adversarial network,GAN)的濕地鳥類識別數據集擴充方法.首先對現有的濕地鳥類數據樣本進行常規的仿射變換處理,如旋轉、縮放、水平翻轉、改變顏色通道、添加隨機噪聲等.在此基礎上,采用生成式對抗網絡樣本擴充方法,將濕地鳥類圖像輸入生成式對抗網絡進行迭代訓練,獲取更多的鳥類圖像樣本,緩解樣本不均衡的問題,提高濕地保護區內鳥類識別檢測的精度.
深度學習在許多場景和任務中已經取得了巨大成功,如圖像分類檢測、機器翻譯、語音識別、視頻處理等[4-7].相比于傳統的有監督機器學習方法,深度學習不僅依賴復雜的網絡模型結構和不斷優化的網絡算法,而且更需要足夠的、大規模的甚至超大規模的訓練樣本,保證模型具有魯棒性和泛化性.當樣本數量少、樣本分布不均衡時,深度網絡模型的精度往往會大打折扣.如何提升樣本數量、提高模型可靠性是亟待解決的問題[2].
近年來,數據擴充(data augmentation)已經成為一個重要的研究領域,它是指通過一定的方法創建額外的合成樣本.在計算機視覺領域,當已有的圖像數量過少時,可以使用傳統的圖像處理方法如平移、旋轉、縮放、改變顏色通道等,增加樣本的數量[8].如AlexNet模型[9]提出時就采用了兩種數據擴充方法,一種是平移和水平翻轉以及在圖像的四角和中心區域進行剪裁;另一種是調整圖像的RGB通道,改變照明的強度和顏色.這兩種方法使得AlexNet模型的準確率提升了1%.SPP-Net、Fast RCNN、Faster RCNN、YOLO等多種目標檢測算法中同樣提出多種仿射變換數據擴充策略[10].使用深度學習模型進行數據擴充的方法受到學術界的關注,例如使用人工神經網絡生成用于文本識別的合成數據集[2]以及可變自動編碼器[11].同時,一些研究者在計算機視覺圖像分類、目標檢測、語義分割領域的多種任務中,使用生成式對抗網絡生成數據樣本提升模型的精度和泛化性能[12-13].
生成式對抗網絡的優勢在于其具有強大的隱式建模能力,不需要真實樣本數據的顯式分布以及假設更多的數學條件,這些優勢使得基于對抗網絡的圖像生成方法可以被應用于很多學術領域和工程領域. Qin等[14]針對醫學皮膚病變圖像數據集,提出基于皮膚病變圖像風格的SL-StyleGAN模型,有效地合成高質量的皮膚病變圖像,并且緩解了類別不平衡的問題.Liu等[15]針對行人檢測數據集,提出屬性保持生成式對抗網絡APGAN模型,以模擬各種比例和遮擋的行人圖像,同時使用風格轉換增加圖像的真實度,實現了數據集的擴充.王金娜等[16]針對輸電線路絕緣子目標檢測數據集,提出一種基于Cycle-GAN的絕緣子圖像生成方法,生成高質量的絕緣子圖像,擴充了數據集并提升了分類網絡的性能.
深度學習作為鳥類識別領域的重要技術在理論和應用等方面已經取得較大進展[17],但目前使用的數據集主要是CUB-200-2011數據集.王光陛[18]提出基于Faster RCNN的語義檢測細粒度識別方法,在CUB-200-2011數據集上取得81.56%的準確率.智緒曄[3]使用強監督目標檢測模型單次多目標框檢測器,實現鳥類目標和關鍵部位的檢測定位,在CUB-200-2011數據集的驗證集上取得89.7%的準確率.翁雨辰[19]選用VGG和ResNet作為特征提取網絡,搭建基于區域建議網絡和深度全卷積的網絡結構實現鳥類圖像分割任務,在CUB-200-2011數據集的訓練集和測試集上取得97.7%的準確率.
天津大黃堡濕地的生境類型多樣,有大面積的蘆葦沼澤、淺灘、水塘、堤岸草叢及防護林帶等,其獨特的地理環境和優良的水質為多種鳥類提供了適宜的棲息環境[20].據調查,大黃堡濕地內有記錄的鳥類有17目44科199種,其中國家一級保護鳥類4種,國家二級保護鳥類34種[20].天津大黃堡濕地內的4種國家一級保護鳥類如圖1所示.

圖1 天津大黃堡濕地內的4種國家一級保護鳥類 Fig. 1 Four species of national first-class protected birds in Dahuangbao wetland in Tianjin
受時間、環境等客觀因素的影響,本次收集到濕地鳥類數據集的種類和樣本均比較有限,基于細粒度方式統計,共包含鳥類121種、圖像樣本6045張,數據樣本明顯不夠,同時各類樣本之間不均衡的特征較為突出.
采用平衡系數Balance評價數據集的均衡程度.平衡系數Balance是一種基于香農熵(H)的平衡度量.當Balance為1時,表示數據集完全平衡,表明每個類別包含的樣本數量相同;當Balance為0時,表示數據集完全不平衡[2].Balance越小說明數據集越不平衡,其計算公式見式(1).

其中:n為數據集樣本數量,K為類別數量,ic表示每個類別包含的樣本數量.
按照上述計算方法計算原始數據集的平衡系數,結果僅為0.8.經過觀察統計,本數據集中大量類別樣本數量小于10,導致數據集嚴重不平衡,因此權衡后僅保留單個類別樣本數量大于100的類別構成初始數據集,共計21類3048張樣本(表1).

表1 濕地鳥類數據集概況 Tab. 1 Overview of wetland bird dataset
生成式對抗網絡[21]自誕生以來,已經成為生成式深度學習技術最顯著的突破之一.生成式對抗網絡模型的基本架構由兩個神經網絡組成,分別稱為生成器和判別器,它們在對抗的過程中同時訓練.生成器的目的是生成一個新的合成樣本,使判別器將之誤判為真實樣本.
為了學習生成器在數據x上的分布,定義輸入噪聲變量 pz(z),然后將數據空間的映射表示為G(z;θg).判別器的目的是判斷輸入樣本是來自真實數據集 pdata還是合成數據集 pg.判別器 D(x;θd)的輸出為一個標量,D(x)表示x來自真實數據集而不是合成數據集的概率.因此,生成器和判別器的過程是相反的,二者在相互競爭中不斷優化函數,即

GAN的損失函數包含網絡模型的兩個相互關聯的部分:一部分涉及真實樣本的識別,其表達式為;另一部分涉及合成樣本的識別,其表達式為.在對抗訓練的過程中最大化 logD(x),提升判別器的判別能力,同時最小化 log(1 ? D( G(z ))),強化生成器模擬真實數據的能力.
如果向生成器和判別器輸入額外的信息y,y作為附加輸入層輸入生成器和判別器,就將生成式對抗網絡擴展為條件對抗網絡[22],y可以是任何種類的輔助信息,例如類別標簽等.在生成器中,輸入噪聲pz(z)和y被組合成聯合隱藏表示,在判別器中,x和y被作為輸入提供給判別函數,優化函數為

圖2為一個簡單的條件對抗網絡結構示意圖.
在深度生成網絡模型中,通過學習一組樣本的數據分布,進而使用學到的分布生成新的樣本.GAN在兩個網絡之間產生對抗,一個網絡(生成器)學習真實數據的分布并生成新的合成數據,試圖欺騙另一個網絡;另一個網絡(判別器)負責辨別其接收到的數據是來自真實的數據集還是生成器生成的合成數據. 兩個網絡在不斷對抗學習中逐漸提升合成和鑒別的能力,最后能夠生成可以使人類專家都無法分辨真偽的 合成圖像[21].
首先,基于卷積神經網絡的平移旋轉不變性,對所有鳥類圖像樣本進行旋轉變換.考慮到盡量不引起檢測框長寬比的較大變化,旋轉角度設定為-5°~5°.然后,進行縮放變換、水平翻轉變換,考慮到盡量控制位于圖像邊緣附近的鳥類圖像在放大后不越界,避免細節丟失,縮放尺度設定為90%~110%.最后,為了增加模型的魯棒性,使用了添加高斯噪聲的方法,其中μ=10、σ=1.將圖像RGB的3個通道與三維高斯噪聲相加,使用clamp函數處理越界的數值.

圖3為仿射變換前后的效果對比.由圖3可以觀察到:經過仿射變換,鳥類圖像得到初步擴充,并且對邊界框的長寬比、鳥類圖像的細節沒有產生較大改變,對后續任務的精度不會產生較大影響.

圖3 仿射變換前后的效果對比 Fig. 3 Comparison of effects before and after affine transformation
條件對抗網絡模型輸入需要具有標注的樣本,因此首先對數據集已有的樣本進行標注處理.每個樣本的標簽由一個列表構成,包括5個元素c、x、y、w、h,其中:c為檢測框內目標的類別,x、y分別為檢測框中心的橫坐標和縱坐標,w、h分別為檢測框的寬度和高度.對于每個鳥類圖像樣本,可以根據標簽信息提取目標檢測框內的鳥類圖像.為了避免拉伸造成的形變對模型分類精度的影響,以檢測框的長邊為邊長繪制一個灰色的正方形,然后將目標放置在正方形的中心,將正方形壓縮至128像素×128像素,最后保存每個目標的類別(圖4).

圖4 提取鳥類目標 Fig. 4 Extracting bird targets
將上述操作得到的鳥類圖像輸入條件對抗網絡進行迭代訓練.當條件對抗網絡模型訓練結束后,使用模型的生成器生成合成數據.
當數據集中每個類別所包含的樣本數量不同甚至差距較大,即數據的分布不平衡時,將生成式對抗網絡模型直接應用于合成數據的生成,會出現分類模型崩塌的現象.為了避免這種問題,針對具有不同數量樣本的類別,采用不同擴充比例的擴充方法,讓生成式對抗網絡模型更好地適應所有類別的樣本分布. 可以使用式(5)確定某類樣本擴充后的總數量N.

其中:i為合成數據的類別,iN為第i類生成合成數據的個數,x為第i類所包含的樣本數量占數據集中所有樣本數量的比例,n為數據集中包含的類別數,N為希望生成的合成數據的總數.
基于初始數據集的特點,在條件對抗網絡模型中設置參數.生成器的輸入為256維的隨機噪聲,結構包括反卷積層、批處理歸一化層、ReLU激活層.判別器的結構包括卷積層、批處理歸一化層、ReLU激活層、λ=0.5的隨機失活層以及全連接層,輸出長度為21的向量.批處理大小設置為256,生成器和判別器的學習率為1×10-5,訓練次數為10000次.判別器網絡和生成器網絡結構示意圖如圖5所示.

圖5 判別器網絡和生成器網絡結構示意圖 Fig. 5 Structure diagram of discriminator network and generator network
本實驗平臺的硬件為GPU-RTX3090,顯存為24GB,算法基于Keras 2.4.3,編程語言為Python 3.8.5,總訓練時間為31.2h.訓練完成后,使用生成器進行各類別鳥類圖像的生成并加入數據集.濕地鳥類原始圖像和對抗網絡生成圖像的對比如圖6所示,圖6即為條件對抗網絡生成樣本效果.經過仿射變換和對抗網絡生成圖像的擴充,數據集平衡系數大幅提升,達到了0.99.

圖6 濕地鳥類原始圖像和對抗網絡生成圖像的對比(上圖為原圖,下圖為生成圖) 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)
針對初始數據集存在樣本數量少的問題,綜合使用仿射變換、對抗網絡模型生成方法實現鳥類數據集的擴充,基本保證后續目標檢測任務的效率和精度.
將仿射變換和對抗網絡生成的圖像加入數據集,并按8﹕2的比例劃分訓練集和測試集.數據集擴充前后不同算法評價指標的對比見表2.表2展示了原始數據集、仿射變換擴充數據集以及對抗網絡擴充數據集分別在SSD、YOLOv3-SPP-Net、RetinaNet算法上訓練100次的效果.3種算法均為單階段目標檢測的經典算法,且都可以進行多尺度訓練以及接受任意大小的圖片作為輸入,評價指標為AP、mAP、AR,其中AP為將IoU設置為0.5或0.75時的平均精度,mAP為將IoU分別設置為[0.5,0.55,0.6,…,0.95]時AP的平均值,AR為將IoU分別設置為[0.5,0.55,0.6,…,0.95]時的平均召回率.

表2 數據集擴充前后不同算法評價指標的對比 Tab. 2 Comparison of evaluation indicators of different algorithms before and after data set expansion %
由表2可知,原始數據集的樣本數量有限,導致SSD算法和RetinaNet算法并不能充分學習各類樣本的特征,精度僅為20%左右,只有YOLOv3-SPP-Net算法的mAP達到了40%,但其AR不足50%.在仿射變換擴充后,3種算法的mAP均超過了55%.而在使用本文提出的數據集擴充方法之后,3種算法的mAP均超過了60%,AR也明顯提升.這表明針對天津大黃堡濕地場景中的鳥類識別,基于對抗網絡模型擴充樣本的方法具有一定的有效性.
在擴充樣本初始數據集時,已經將同類別內樣本數量小于50的目標過濾.然而,在研究過程中嘗試對所有類別的樣本使用上述擴充方法,在經典目標檢測算法中識別的精度并不是很理想,同時耗時更長,明顯受到了不同類別間樣本不均衡、擴充樣本質量不高等因素的影響.
針對樣本數量不足且類別分布不均衡的天津大黃堡濕地鳥類數據集,提出一種基于對抗網絡的濕地鳥類數據集擴充方法,通過該方法將數據集規模進行擴充并且緩解了樣本分布不均衡的問題.通過在SSD、YOLOv3-SPP-Net、RetinaNet目標檢測算法上進行測試,使用擴充后的數據集,基于3種經典算法的精度均超過90%.由此可見,本文提出的擴充方法得到的數據集能夠顯著提升算法的精度,為后續更多的鳥類識別研究提供技術支持.當后續采集的鳥類數據集中種類變多時,樣本分布不均衡的問題會更突出,如何獲取更多質量更高的訓練集樣本是下一步需要研究的問題.同時,選擇適合區內最佳的目標檢測算法、適當改進現有經典算法滿足目標精確識別要求,也是需要深入思考的方向.