?

應用于擴容小樣本量YOLO人臉數據集的imgaug圖像增廣方法

2024-01-15 05:44蔡藝軍卓建明鄒建航
廈門理工學院學報 2023年5期
關鍵詞:人臉樣本圖像

尤 鑫,蔡藝軍,林 云*,唐 凱,卓建明,鄒建航

(1. 廈門理工學院光電與通信工程學院,福建 廈門 361024;2. 廈門唯識信息科技有限公司,福建 廈門 361024;3. 廈門藍海環科儀器有限公司,福建 廈門 361024)

人臉識別能通過采集的單幅人臉圖像或序列分析確定對象的身份信息和生物特征,它是一門基于概率論、優化技術、計算機視覺和深度學習的高度實用的分支學科[1]。隨著目標檢測和分類技術的不斷發展,圖像增強方法已經越來越廣泛地應用到人臉識別上。近幾年比較流行的算法可以分為兩類:一類是基于圖像區域劃分的區域卷積神經網絡(region-convolutional neural network,R-CNN)算法,它們首先通過選擇性搜索來產生錨框標定區域,然后再做分類與回歸,屬于雙階段預測方法;另一類是單次預測算法,如單發多框檢測器(single shot multiBox detector,SSD)、RetinaNet 都是直接使用一個卷積神經網絡(convolutional neural networks,CNN)檢驗不同種類與方位的目標[2],二者的劃分依據在于有無候選框的生成步驟。到目前為止,效果比較好的人臉識別算法基本上都是運用CNN 實現的。為了達到對二維輸入的最佳處理結果,CNN被設計成深層前饋神經網絡[3]。相比之下,基于YOLO 框架的圖像檢測技術識別更快,其主要原理是先把一整幅圖像放置于實例中,然后預測框的邊緣坐標及具體的類別概率,而當遇到光線遮擋等復雜多變的識別場景時,通過預先訓練完成的YOLOv3和YOLOv5s網絡模型來提取人臉特征,能夠達到比傳統CNN更好的人臉識別效果。

眾所周知,許多深度學習的計算機視覺研究都需要大量的數據,因為大數據可以有效地防止過擬合。對此,文獻[4]在幾個公開的數據集上分別做鏡像、對稱變換,然后把生成的樣本和原始數據融合起來以擴充訓練容量,其錯誤識別率有所下降;文獻[5]將隨機噪聲添加到訓練樣本中來增廣訓練數據;文獻[6]基于3D人臉模型和單幅圖片產生不同的神態,以及戴眼鏡的人臉圖像,對有限的訓練樣本進行擴充來增廣數據。2019 年,Shorten 等[7]給出了更全面的數據增廣,根據復雜度將常用的增廣技術劃分為基本圖像處理和基于深度學習兩種。雖然深度模型的過擬合問題得到了解決,但這些檢測算法使用的人臉圖像,普遍還是在亮度分布均勻、對象姿態單一、無特殊表情,以及規定圖像分辨率的條件下采集的,所以識別系統才可以達到較高的識別精度。而實際場景中經常存在各種干擾且無約束因素,導致原始圖像的攝影環境不受控,識別效果無疑會受到影響。除了上述問題外,所制作的訓練數據集還會由于某類樣本圖像較少導致模型欠缺相應的先驗知識,降低平均檢測精度。因此,本文在訓練過程中對圖片采取像素級變換等數據增廣操作,通過擴充測試集里部分類別缺乏的相關樣本來提升總體的識別準確率。同時,為盡量還原真實情景,利用imgaug 庫生成不同的增廣圖像,以調整圖像亮度,豐富樣本,增強YOLO系列網絡模型的泛化能力。

1 數據增廣方案

1.1 在線增廣

YOLOv5的python訓練文件自帶了數據增廣的選項,可以在原有的數據集上進行相關的增廣操作。除此之外,Mosaic數據增廣作為YOLOv5最大的創新點則是拼接隨機縮放或者裁剪后的任意4張圖片。

Cutmix增廣方式、隨機裁剪與填充類似,它可以看作是Cutout,僅裁剪圖片不改變標簽的局部融合思想和Mixup,混合標簽的結合,該區域的一部分被剪切,但未填充 0 像素。即通過權重參數λ隨機讓2張圖像Ii、Ij,以及它們的語義標簽xi、xj執行加權的求和運算,產生另一張圖像與標簽[8],計算公式為

相反,Cutmix 隨機填充訓練集中其他標簽像素值也有明顯的優點,比如不包括信息的像素將不在訓練的時候顯示,因此效率也就得到了提升。向修剪區域添加其他樣本的信息,提高了模型的目標位置,滿足了模型從局部視圖識別目標的要求,且Cutmix 處理的圖像更符合人的視覺感受,模型分類的效果也得到了優化,而且訓練和推理的復雜度并沒有改變[9]。

以上的增廣技術常常是嵌入通用文件夾底層代碼的數據加載器內部,因此在訓練每張圖片的過程中都會做數據增廣的操作。一般情況下,YOLOv5官方訓練代碼的數據增廣方法是利用數據集進行反復多次的訓練。由于每次數據增廣都是隨機的,因此與原先訓練的數據集又有所區別,這樣就相當于增加了數據集的樣本數量,即在線增廣,在線增廣的效果示例如圖1所示。本文的在線增廣就是一邊訓練一邊進行數據增廣,本地保存的數據集文件不會發生改變。

圖1 在線增廣示例Fig.1 Online augmentation example

1.2 本地增廣imgaug庫

非在線數據增廣就是對數據集進行增廣并保存在本地,形成一個新的數據集,利用這個新數據集進行訓練的同時,本地保存的數據也發生了改變。

imgaug是最實用的python圖像增強庫之一,常常被推薦用于深度學習領域內的分類問題,還有檢測任務等多種要求的數據增強應用程序之中[10]。假設在基于深度學習應對實際的機器視覺工程項目的情景下,很多像人臉遮擋這樣的問題是無法避免的。而各種現實環境又導致所制作的數據無法真實還原,所以數據增廣操作非常有必要[11]。imgaug 庫其實就是在人臉圖像訓練集中以提高特征識別的精度為前提,實現多尺度的圖像變換等增廣手段。該方法解決了數據樣本不足時訓練的網絡模型泛化能力不足的問題,例如,通過仿射方法的rotate 參數讓圖像旋轉-90°~90°區間范圍內的隨機角度。需要注意的是,當運用imgaug 自帶的圖像增廣功能時,應該先傳參生成某類含有增廣數據的實例后,再通過它進行圖像處理。其他的增廣方法有水平翻轉(Fliplr)、垂直翻轉(Flipud)、取圖片像素值的相反數(Invert)、從每個圖像(Crop)裁剪0%~20%來產生增廣圖像,而且Crop 函數剪切圖片后,默認會保持輸入圖像的尺寸不變,非原圖區域用黑色填充。更改圖像大小可以修改為Crop(…,keep_size=False)的形式;實現裁剪并設置填充模式為“邊緣”,形如CropAndPad(percent= (-0.2,0.2),pad_mode="edge")能夠達到先刪除圖像任意20%的區域,然后在邊界填充圖形到原先大小的目標,還有更改并調整空間飽和度(AddToHueAndSaturation)等。原始訓練樣本和不同增廣方法生成的圖像見圖2。

圖2 原始訓練樣本及相應的增廣圖像Fig.2 Original training samples and corresponding augmented images

除此之外,為適應不斷變化的外部條件,往往需要同時使用多種圖像增廣技術搭配實際的深度學習模型來進行訓練。在此情形下,可以使用imgaug 中符合keras 和Pytorch 框架中的Sequential 方法,將不同的增廣器組合到一個管道中,然后將它們全部應用到單個增廣調用中,以實現多種增廣技術拼接在一起的功能,詳細調用形式為iaa.Sequential([ … ])。假如要使用每項增廣方法并隨機排序,將random_order 設置成True 即可。SomeOf 子項增廣器和生成增廣序列的Sequential 方法同樣可以組合使用多圖像增廣方法,但只能選用不超過子項中所用增廣方法總數的其中幾種。

處理邊界框最常見的方法是計算交并比(intersection over union,IoU),相交處區域可以使用imgaug 提供的BoundingBox.intersection(other_bounding_box)方法進行估算,然后返回另一個邊框。如果遇到需要把一個圖像的邊界框映射到其他圖像的情況時,可以通過調用BoundingBox. project(from_shape,to_shape)和BoundingBoxesImage. on(new_image)。如果必須補償填充,應使用Boundingbox. shift([top]、[right]、[bottom]、[left])或相同的BoundingBoxesImage 方法,同時更新.shape屬性對應填充后生成的圖像。

2 網絡模型結構和數據集

2.1 網絡模型

相較于早期版本的YOLO 算法,2018年改進之后的YOLOv3訓練出了更加龐雜的網絡模型。但其推理速度更快,識別更為準確,并且當以COCO數據集進行測試時,各類別平均檢測精度的均值能達到57.9%[12]。對比不同網絡模型結構的mAP 值(表1)可以得出,與大多數的ResNet-101 系列網絡相比,Darknet-53更精確。

表1 不同網絡模型結構的mAP值對比表Table 1 mAP values for network model structures compared

YOLOv3 在IoU=0.50 的情況下具有不錯的識別結果,但隨著交并比的增大,性能出現顯著下滑,說明YOLOv3 在檢測框回歸的準確性問題上還有進一步提高的空間,其主干網絡結構如圖3所示。

圖3 DarkNet-53架構Fig.3 Architecture of DarkNet-53

YOLOv3 訓練圖像樣本通常需要調用特定的程序算出錨框的初始坐標,而YOLOv5 對此做了改進,把這個過程寫進了主函數代碼里,并在每個單獨的訓練epoch 中自動計算出不同數據集所屬最佳錨框的值[14]。

2.2 數據集的訓練和預測

本文的原始數據是從互聯網爬取的面部圖片,利用fer2013 表情數據集和YALE 人臉數據庫訓練得到的模型進行預測,篩選出符合不同表情、不同角度與光照條件即正確率較高的部分圖像制作成訓練集。數據包含了18 類國內外知名人士共350 張圖像,而驗證集源自CelebA 分類完成后對應訓練集所選人士的180張圖像。圖4為原始數據的部分圖像。

圖4 訓練數據集部分圖像Fig.4 Some images of the training dataset

只有訓練數據集的圖像豐富多樣,才能保證識別或認證更有實際意義。為了有更大的幾率使樣本包含真實情形中的圖片,并在測試集內擴充容量不足的那些類別,因此,選擇節1.2中的imgaug本地增廣方式所生成的旋轉和裁剪圖像、鏡像和色彩反相圖像、刪除并填充和飽和度轉換圖像擴展源數據集,以研究圖像增廣方式在訓練過程中對模型識別準確率的提升性能。增廣后的數據容量由原來的350 張面部圖片擴大了5 倍,然后將圖像按9∶1 的比例分成了訓練集和驗證集[15]。圖像增廣的流程圖如圖5所示。

圖5 圖像增廣流程圖Fig.5 Flowchart of image augmentation

3 實驗結果與分析

在之前提出的增廣理論的基礎上,為檢驗其實現預期的效果,首先通過已預訓練的YOLOv3網絡模型對人臉特征進行提取,測試時再根據標簽的置信度分析具體所屬類別,以達到識別人臉身份的目標。分別選取不同結構的特征提取主干網絡,在訓練過程中隨機地對樣本圖片進行數據增廣處理,總共訓練了100輪epoch后再開始預測。

3.1 實驗環境

實驗部署于Xshell 終端模擬器,由Pycharm 專業版通過添加遠程SSH 解釋器環境運行,操作系統為ubuntu18.04;極鏈AI云平臺提供算力供網絡訓練使用。

3.2 實驗設計

驗證階段分別設計了多組對照實驗,采用的網絡模型是YOLOv3和YOLOv5s,然后在不同增廣技術處理下的小樣本數據集中對它們開始訓練。實驗組的設置分為兩類:一類是邊訓練邊隨機生成增廣圖像,另一類是不使用圖像增廣。為了防止其他因素對測試效果產生影響,除了設置不同的增廣方法和網絡模型之外[16],具體參數也都大部分保持一致,如訓練集所采用的訓練batchsize 都是8,訓練epoch數都是100輪次。

3.3 不同增廣方式對識別精度的提升效果

在YOLOv3 的Pytorch 版本中,本文利用imgaug 圖像增廣庫的Invert 和Fliplr 方式將源數據增廣成新的數據集。在IoU=0.5 的情形下,圖像增廣前后模型的預測準確性與效果見圖6。由圖6 可見,利用imgaug數據增廣庫可以明顯提高YOLOv3檢測人臉的準確性。

圖6 基于YOLOv3的增廣效果對比實驗結果Fig.6 Experimental results of augmentation effect based on YOLOv3 conpared

在YOLOv5的網絡框架下,源數據也通過imgaug庫組合使用幾種圖像增廣方法將數據集的樣本容量擴充了5倍。圖7給出了模型在增廣前后測試集上 IoU=0.5和IoU=0.5~0.95的準確率及預測效果。

圖7 基于YOLOv5的增廣效果對比實驗結果Fig.7 Experimental results of augmentation effect based on YOLOv5 compared

由實驗組的4 幅圖可知,在imgaug 數據增廣庫的作用下,CropAndPad 組合AddToHueAnd Saturation 技術在性能改進方面比其他增廣技術更顯著。但因為局部裁剪導致人臉部分有所損失,Crop加Rotate這種組合增廣方法可能識別不出人臉身份,因此性能并不理想。

3.4 結果分析

不同增廣方式下,YOLO 系列網絡平均精度的實驗結果如表2 所示。由表2 可見,根據圖像增廣方案的不同,YOLO 系列網絡的預測精度都有不同程度的提高。由于訓練時的在線隨機增廣處理并不能有效增強網絡模型的泛化能力,因此,組合使用imgaug 庫的多種本地增廣方式,可以在不過多增加計算復雜度的基礎上較好地優化識別準確率。

表2 不同增廣方式下YOLO網絡平均精度Table 2 Average Precision of YOLO network under different augmentation methods

4 結論

本文針對小樣本數據集神經網絡模型可能出現訓練不足的問題,通過imgaug 圖像增廣庫來增加樣本容量,使所訓練的網絡模型的泛化能力得以提高,由增廣的對照實驗結果可見,效果比較理想。其中,對于很深的YOLOv3主干特征提取網絡,其平均檢測精度提高了38%左右;對于多種結構復雜的YOLOv5網絡模型,其效果也很明顯??梢?,imgaug庫普遍適用于小規模數據樣本訓練過程中的神經網絡。另外,與其他增廣方式相比,采用CropAndPad 和AddToHueAndSaturation 的組合增廣方式,能表現出更好的效果,提升了約0.5%。

猜你喜歡
人臉樣本圖像
改進的LapSRN遙感圖像超分辨重建
有特點的人臉
用樣本估計總體復習點撥
有趣的圖像詩
三國漫——人臉解鎖
推動醫改的“直銷樣本”
隨機微分方程的樣本Lyapunov二次型估計
村企共贏的樣本
馬面部與人臉相似度驚人
長得象人臉的十種動物
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合