首次!用合成人臉資料集訓練的識別模型,效能高於真實資料集

机器之心發表於2024-09-14
圖片

AIxiv專欄是機器之心釋出學術、技術內容的欄目。過去數年,機器之心AIxiv專欄接收報導了2000多篇內容,覆蓋全球各大高校與企業的頂級實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或者聯絡報導。投稿郵箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com


研究動機

一個高質量的人臉識別訓練集要求身份 (ID) 有高的分離度(Inter-class separability)和類內的變化度(Intra-class variation)。然而現有的方法普遍存在兩個缺點:

1)實現了大的 intra-class variation,但是 inter-class separability 很低;
2)實現了較高的 inter-class separability,但是 intra-class variation 需要用額外的模型來提高。

這兩點要麼使得在合成的人臉資料集訓練的模型效能表現不佳,要麼難以合成大型資料集。

因此,我們透過讓提出的 Vec2Face 模型學習如何將特徵向量轉化為對應的圖片,並且在生成時對隨機取樣的向量加以約束,來實現高質量訓練集的生成。這一方法不但可以輕鬆控制 inter-class separability 和 intra-class variation,而且無需額外的模型進行輔助。此外我們還提出了 Attribute Operation algorithm 來定向的生成人臉屬性,這一優勢也可以被用來補足各類人臉任務的資料缺陷。

圖片

  • 論文連結: https://arxiv.org/abs/2409.02979

  • 程式碼連結: https://github.com/HaiyuWu/Vec2Face

  • Demo 連結: https://huggingface.co/spaces/BooBooWu/Vec2Face


本文的亮點可以歸納為:

  1. 此工作提出的 Vec2Face 模型首次實現了從特徵向量生成圖片的功能,並且向量之間的關係,如相似度,和向量包含的資訊,如 ID 和人臉屬性,在生成的圖片上也會得到繼承。
  2. Vec2Face 可以無限生成不同身份 (synthetic ID) 的影像!之前的生成式模型 (GAN, Diffusion model, Stable diffusion model) 最多隻能生成 8 萬個不同身份的影像 [1]。本文利用 Vec2Face 生成了來自於 300K 個人的 15M 張圖片。
  3. 用 Vec2Face 生成的 HSFace10k 訓練的模型,首次在人臉識別的年齡測試集 (CALFW) 上實現了效能超越同尺度的真實資料集 (CASIA-WebFace [2])。另外,當合成資料集的 ID 數量大於 100k 後,訓練的人臉識別模型在毛髮測試集 (Hadrian) 和曝光度測試集 (Eclipse) 上也同樣超越了 CASIA-WebFace。

主要實驗

效能對比

我們在 5 個常用的人臉識別測試集 LFW [3]、CFP-FP [4]、AgeDB [5]、CALFW [6]、CPLFW [7] 上和現有的合成資料集進行了對比。

圖片

表一:對比用 Diffusion models,3D rendering,和 GAN 方法 (從上到下) 生成的合成資料集的效能。

第一:我們在生成的 0.5M 圖片規模的訓練集在上實現了 state-of-the-art 的平均精度(92%),並且在 CALFW 上超越了真實資料集 (CASIA-WebFace) 的精度。這證明了我們方法的有效性。第二:之前的最好的方法 Arc2Face [8] 使用了 Stable Diffusion V1.5 並且在 WebFace42M [9] 上進行微調,而我們的方法僅用了 1M 的資料進行訓練。這足以證明我們方法的高效性和有效性。第三:HSFace 首次實現了 GAN 正規化訓練超過其他正規化。

擴大資料集的有效性

因為 Vec2Face 可以無限生成不同的身份 (ID),所以我們對 Vec2Face 的 scalability 進行了測試。我們分別生成了 1M (20K ID),5M (100K ID),10M (200K ID) 和 15M (300K ID) 的資料集。在這之前最大的人臉合成訓練集僅有 1.2M (60K ID)。

圖片

表二:測試 Vec2Face 在 scalability 上的表現。

從結果上看,當我們透過生成更多的 ID 來擴大資料集後,精度也隨之提高,並且提高的趨勢並未衰減!這證明 Vec2Face 能夠有效的生成不同的身份。

計算資源對比

理論上來說,Arc2Face 也可以實現無限 ID 的生成並且擴大資料集。然而由於 SD 需要大量的計算資源來合成人臉,這在實際應用上並不高效。具體對比如下:

圖片

表三:對比 Arc2Face 和 Vec2Face 的模型大小,推理速度和 FID。對於 Arc2Face,我們使用 LCM-lora [10] 作為 scheduler 來生成圖片。

對比結果顯示,即使使用 4 步的 scheduler,Vec2Face 達到了 Arc2Face 的 311 倍同時保持了更高的與原圖分佈的相似度。

Vec2Face 的訓練和生成方法

Vec2face 的訓練

資料集:從 WebFace4M 中隨機抽取的 5 萬個人的圖片。

方法邏輯:因為人臉識別模型是將人臉影像在高維空間 (512-dim) 聚類來實現 Open-set 的識別,並且由於高維空間的稀疏性,其空間內的身份總數要遠遠大於訓練時所用的個數。因此在高維空間隨機提取向量並且保證較低的相似度,那麼就可以確保身份的獨特性。還因為,人臉識別模型提取出的特徵向量裡不僅包含了身份資訊,還包含了人臉屬性等資訊,所以對身份向量加小幅度的噪聲 圖片就可以在保證身份一致的前提下實現人臉屬性的變化。因此,我們需要訓練一個可以解碼特徵向量裡的資訊並且能夠生成對應圖片的模型。

圖片

Vec2Face 訓練和推理框架。

為了讓模型充分理解特徵向量裡的資訊,我們的輸入僅用預訓練的人臉識別模型提取出來的特徵向量(IM feature)。隨後將由特徵向量擴充套件後的特徵圖(Feature map)輸入到 feature masked autoencoder(fMAE),來獲取能夠解碼成圖片的特徵圖。最後用一個圖片解碼器(Image decoder)來生成圖片。整個訓練目標由 4 個損失函式組成。

圖片用於縮小合成圖圖片和原圖圖片之間的距離:

圖片

圖片用於縮小合成圖和原圖對於人臉識別模型的相似度:

圖片

感知損失圖片[11] 和圖片用於提高合成圖的圖片質量。我們使用 patch-based discriminator [12, 13] 來組成 GAN 正規化訓練。

生成

因為 Vec2Face 僅需輸入特徵向量(512-dim)來生成人臉圖片並且能夠保持 ID 和部分人臉屬性的一致,所以僅需取樣 ID vector 並確保 圖片即可保證生成的資料集的 inter-class separability。至於 intra-class variation,我們僅需在 ID vector 加上輕微的擾動 就能夠在身份一致的情況下實現圖片的多樣性。

然而,由於在訓練集裡的大部分影像的頭部姿態都是朝前的(frontal),這使得增加隨機擾動很難生成大幅度的頭部姿態(profile)。因此,我們提出了 Attribute Operation(AttrOP)演算法,透過梯度下降的方法調整 ID vector 裡的數值來使得生成的人臉擁有特定的屬性。

圖片

Eq.5:

圖片

其他實驗

AttrOP 的影響

圖片

我們透過 AttrOP 來定向提高生成的人臉質量和對應的頭部姿態的變化。這一方法能夠有效的大幅提高最終模型的效能。另外,增加頭部姿態的變化度的同時也提高了在年齡測試集上的表現,從而實現了對真實資料集效能的超越。

衡量現有合成資料集的身份分離度

圖片

身份分離度是衡量資料集質量的重要指標。此實驗衡量了 Vec2Face 和其他現有合成資料集內身份的分離度。具體過程:1)我們透過使用人臉識別模型提取出資料集裡圖片的特徵;2)將他們的圖片特徵取平均來計算出身份特徵;3)計算身份與身份之間的相似度;4)我們統計了所有身份與其他身份相似度相似度小於 0.4 的個數,從而衡量分離度。結果顯示,Vec2Face 能夠實現和真實資料集 WebFace4M 相同的分離度。這一優勢為資料集的質量提供了保障。

Noise 取樣中 σ 對於精度的影響

圖片

在本文中,σ 的大小對於 noise 的取樣起到了直接的影響,從而影響到人臉屬性的變化程度。於是我們對它的大小做了消融實驗。結果顯示,當σ 過小時 (=0.3) 和 σ過大時 (0.3, 0.5, 0.9),效能出現了大幅下降。從生成的結果上來說,過小的 σ 無法提供足夠的人臉屬性變化從而降低模型的泛化能力。過大的 σ 無法保持身份的一致,這會使模型無法學習到好的表達。因此,選擇合適的取樣範圍至關重要。

ID 分離度對於精度的影響 (Avg. ID sim 越大,分離度越小)

圖片

這個實驗研究了身份分離度對於精度的影響。雖然身份分離度的重要性是共識,但是目前為止並未有工作來驗證它的真實性。因此,我們控制了資料集種身份與身份之間的平均相似度來進行消融實驗。結果顯示,高的分離度會大幅降低最終識別模型的效能,而過低的分離度也無法持續對最終效能提供幫助。

在其他識別測試集上 HSFace 和 CASIA-WebFace 的效能對比

圖片

因為前文的 5 個測試集只有對頭部姿態變化和年齡變化的測試,為了更廣泛的對比真實資料集和 HSFace 在其他人臉屬性變化上的表現,我們引入了 Hadrian (面部毛髮),Eclipse (面部光照),SSLFW (相似外表),和 DoppelVer (分身)。在 Hadrian 和 Eclipse 上,我們透過擴大資料集的規模最終超越了真實資料集的效能。然而,在 SSLFW 和 DoppelVer 上,我們並未實現超越。這一表現引出了另一個哲學方面的思考:目前來說,身份 (ID) 是由相似度進行定義。然而對於雙胞胎,分身,近親等,他們之間的人臉相似度會非常高但是他們又是不同的身份。這就暴露出單純的用相似度來定義身份的缺點。因此,如何更好的定義不同的身份對於未來的工作至關重要。

References
[1] DCFace: Synthetic Face Generation with Dual Condition Diffusion Model.
[2] Learning face representation from scratch.
[3] Labeled faces in the wild: A database for studying face recognition in unconstrained environments
[4] Frontal to profile face verification in the wild
[5] AgeDB: The First Manually Collected, In-the-Wild Age Database
[6] Cross-age lfw: A database for studying cross-age face recognition in unconstrained environments
[7] Cross-pose lfw: A database for studying cross-pose face recognition in unconstrained environments
[8] ArcFace: Additive Angular Margin Loss for Deep Face Recognition
[9] Webface260m: A benchmark for million-scale deep face recognition
[10] Lcm-lora: A universal stable-diffusion acceleration module
[11] The unreasonable effectiveness of deep features as a perceptual metric
[12] Image-to-image translation with conditional adversarial networks
[13] Scaling autoregressive models for content rich text-to-image generation.

相關文章