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