首次!用合成人臉數(shù)據(jù)集訓練的識別模型,性能高于真實數(shù)據(jù)集
研究動機
一個高質(zhì)量的人臉識別訓練集要求身份 (ID) 有高的分離度(Inter-class separability)和類內(nèi)的變化度(Intra-class variation)。然而現(xiàn)有的方法普遍存在兩個缺點:
1)實現(xiàn)了大的 intra-class variation,但是 inter-class separability 很低;
2)實現(xiàn)了較高的 inter-class separability,但是 intra-class variation 需要用額外的模型來提高。
這兩點要么使得在合成的人臉數(shù)據(jù)集訓練的模型性能表現(xiàn)不佳,要么難以合成大型數(shù)據(jù)集。
因此,我們通過讓提出的 Vec2Face 模型學習如何將特征向量轉(zhuǎn)化為對應的圖片,并且在生成時對隨機采樣的向量加以約束,來實現(xiàn)高質(zhì)量訓練集的生成。這一方法不但可以輕松控制 inter-class separability 和 intra-class variation,而且無需額外的模型進行輔助。此外我們還提出了 Attribute Operation algorithm 來定向的生成人臉屬性,這一優(yōu)勢也可以被用來補足各類人臉任務的數(shù)據(jù)缺陷。
- 論文鏈接: https://arxiv.org/abs/2409.02979
- 代碼鏈接: https://github.com/HaiyuWu/Vec2Face
- Demo 鏈接: https://huggingface.co/spaces/BooBooWu/Vec2Face
本文的亮點可以歸納為:
- 此工作提出的 Vec2Face 模型首次實現(xiàn)了從特征向量生成圖片的功能,并且向量之間的關系,如相似度,和向量包含的信息,如 ID 和人臉屬性,在生成的圖片上也會得到繼承。
- Vec2Face 可以無限生成不同身份 (synthetic ID) 的圖像!之前的生成式模型 (GAN, Diffusion model, Stable diffusion model) 最多只能生成 8 萬個不同身份的圖像 [1]。本文利用 Vec2Face 生成了來自于 300K 個人的 15M 張圖片。
- 用 Vec2Face 生成的 HSFace10k 訓練的模型,首次在人臉識別的年齡測試集 (CALFW) 上實現(xiàn)了性能超越同尺度的真實數(shù)據(jù)集 (CASIA-WebFace [2])。另外,當合成數(shù)據(jù)集的 ID 數(shù)量大于 100k 后,訓練的人臉識別模型在毛發(fā)測試集 (Hadrian) 和曝光度測試集 (Eclipse) 上也同樣超越了 CASIA-WebFace。
主要實驗
性能對比
我們在 5 個常用的人臉識別測試集 LFW [3]、CFP-FP [4]、AgeDB [5]、CALFW [6]、CPLFW [7] 上和現(xiàn)有的合成數(shù)據(jù)集進行了對比。
表一:對比用 Diffusion models,3D rendering,和 GAN 方法 (從上到下) 生成的合成數(shù)據(jù)集的性能。
第一:我們在生成的 0.5M 圖片規(guī)模的訓練集在上實現(xiàn)了 state-of-the-art 的平均精度(92%),并且在 CALFW 上超越了真實數(shù)據(jù)集 (CASIA-WebFace) 的精度。這證明了我們方法的有效性。第二:之前的最好的方法 Arc2Face [8] 使用了 Stable Diffusion V1.5 并且在 WebFace42M [9] 上進行微調(diào),而我們的方法僅用了 1M 的數(shù)據(jù)進行訓練。這足以證明我們方法的高效性和有效性。第三:HSFace 首次實現(xiàn)了 GAN 范式訓練超過其他范式。
擴大數(shù)據(jù)集的有效性
因為 Vec2Face 可以無限生成不同的身份 (ID),所以我們對 Vec2Face 的 scalability 進行了測試。我們分別生成了 1M (20K ID),5M (100K ID),10M (200K ID) 和 15M (300K ID) 的數(shù)據(jù)集。在這之前最大的人臉合成訓練集僅有 1.2M (60K ID)。
表二:測試 Vec2Face 在 scalability 上的表現(xiàn)。
從結果上看,當我們通過生成更多的 ID 來擴大數(shù)據(jù)集后,精度也隨之提高,并且提高的趨勢并未衰減!這證明 Vec2Face 能夠有效的生成不同的身份。
計算資源對比
理論上來說,Arc2Face 也可以實現(xiàn)無限 ID 的生成并且擴大數(shù)據(jù)集。然而由于 SD 需要大量的計算資源來合成人臉,這在實際應用上并不高效。具體對比如下:
表三:對比 Arc2Face 和 Vec2Face 的模型大小,推理速度和 FID。對于 Arc2Face,我們使用 LCM-lora [10] 作為 scheduler 來生成圖片。
對比結果顯示,即使使用 4 步的 scheduler,Vec2Face 達到了 Arc2Face 的 311 倍同時保持了更高的與原圖分布的相似度。
Vec2Face 的訓練和生成方法
Vec2face 的訓練
數(shù)據(jù)集:從 WebFace4M 中隨機抽取的 5 萬個人的圖片。
方法邏輯:因為人臉識別模型是將人臉圖像在高維空間 (512-dim) 聚類來實現(xiàn) Open-set 的識別,并且由于高維空間的稀疏性,其空間內(nèi)的身份總數(shù)要遠遠大于訓練時所用的個數(shù)。因此在高維空間隨機提取向量并且保證較低的相似度,那么就可以確保身份的獨特性。還因為,人臉識別模型提取出的特征向量里不僅包含了身份信息,還包含了人臉屬性等信息,所以對身份向量加小幅度的噪聲 就可以在保證身份一致的前提下實現(xiàn)人臉屬性的變化。因此,我們需要訓練一個可以解碼特征向量里的信息并且能夠生成對應圖片的模型。
Vec2Face 訓練和推理框架。
為了讓模型充分理解特征向量里的信息,我們的輸入僅用預訓練的人臉識別模型提取出來的特征向量(IM feature)。隨后將由特征向量擴展后的特征圖(Feature map)輸入到 feature masked autoencoder(fMAE),來獲取能夠解碼成圖片的特征圖。最后用一個圖片解碼器(Image decoder)來生成圖片。整個訓練目標由 4 個損失函數(shù)組成。
用于縮小合成圖
和原圖
之間的距離:
用于縮小合成圖和原圖對于人臉識別模型的相似度:
感知損失[11] 和
用于提高合成圖的圖片質(zhì)量。我們使用 patch-based discriminator [12, 13] 來組成 GAN 范式訓練。
生成
因為 Vec2Face 僅需輸入特征向量(512-dim)來生成人臉圖片并且能夠保持 ID 和部分人臉屬性的一致,所以僅需采樣 ID vector 并確保 即可保證生成的數(shù)據(jù)集的 inter-class separability。至于 intra-class variation,我們僅需在 ID vector 加上輕微的擾動 就能夠在身份一致的情況下實現(xiàn)圖片的多樣性。
然而,由于在訓練集里的大部分圖像的頭部姿態(tài)都是朝前的(frontal),這使得增加隨機擾動很難生成大幅度的頭部姿態(tài)(profile)。因此,我們提出了 Attribute Operation(AttrOP)算法,通過梯度下降的方法調(diào)整 ID vector 里的數(shù)值來使得生成的人臉擁有特定的屬性。
Eq.5:
其他實驗
AttrOP 的影響
我們通過 AttrOP 來定向提高生成的人臉質(zhì)量和對應的頭部姿態(tài)的變化。這一方法能夠有效的大幅提高最終模型的性能。另外,增加頭部姿態(tài)的變化度的同時也提高了在年齡測試集上的表現(xiàn),從而實現(xiàn)了對真實數(shù)據(jù)集性能的超越。
衡量現(xiàn)有合成數(shù)據(jù)集的身份分離度
身份分離度是衡量數(shù)據(jù)集質(zhì)量的重要指標。此實驗衡量了 Vec2Face 和其他現(xiàn)有合成數(shù)據(jù)集內(nèi)身份的分離度。具體過程:1)我們通過使用人臉識別模型提取出數(shù)據(jù)集里圖片的特征;2)將他們的圖片特征取平均來計算出身份特征;3)計算身份與身份之間的相似度;4)我們統(tǒng)計了所有身份與其他身份相似度相似度小于 0.4 的個數(shù),從而衡量分離度。結果顯示,Vec2Face 能夠?qū)崿F(xiàn)和真實數(shù)據(jù)集 WebFace4M 相同的分離度。這一優(yōu)勢為數(shù)據(jù)集的質(zhì)量提供了保障。
Noise 采樣中 σ 對于精度的影響
在本文中,σ 的大小對于 noise 的采樣起到了直接的影響,從而影響到人臉屬性的變化程度。于是我們對它的大小做了消融實驗。結果顯示,當σ 過小時 (=0.3) 和 σ過大時 (0.3, 0.5, 0.9),性能出現(xiàn)了大幅下降。從生成的結果上來說,過小的 σ 無法提供足夠的人臉屬性變化從而降低模型的泛化能力。過大的 σ 無法保持身份的一致,這會使模型無法學習到好的表達。因此,選擇合適的采樣范圍至關重要。
ID 分離度對于精度的影響 (Avg. ID sim 越大,分離度越小)
這個實驗研究了身份分離度對于精度的影響。雖然身份分離度的重要性是共識,但是目前為止并未有工作來驗證它的真實性。因此,我們控制了數(shù)據(jù)集種身份與身份之間的平均相似度來進行消融實驗。結果顯示,高的分離度會大幅降低最終識別模型的性能,而過低的分離度也無法持續(xù)對最終性能提供幫助。
在其他識別測試集上 HSFace 和 CASIA-WebFace 的性能對比
因為前文的 5 個測試集只有對頭部姿態(tài)變化和年齡變化的測試,為了更廣泛的對比真實數(shù)據(jù)集和 HSFace 在其他人臉屬性變化上的表現(xiàn),我們引入了 Hadrian (面部毛發(fā)),Eclipse (面部光照),SSLFW (相似外表),和 DoppelVer (分身)。在 Hadrian 和 Eclipse 上,我們通過擴大數(shù)據(jù)集的規(guī)模最終超越了真實數(shù)據(jù)集的性能。然而,在 SSLFW 和 DoppelVer 上,我們并未實現(xiàn)超越。這一表現(xiàn)引出了另一個哲學方面的思考:目前來說,身份 (ID) 是由相似度進行定義。然而對于雙胞胎,分身,近親等,他們之間的人臉相似度會非常高但是他們又是不同的身份。這就暴露出單純的用相似度來定義身份的缺點。因此,如何更好的定義不同的身份對于未來的工作至關重要。