最近兩個(gè)月,格靈深瞳首席科學(xué)家&算法部負(fù)責(zé)人張德兵與算法團(tuán)隊(duì)參加了全球人臉識別算法測試(FRVT、Face Recognition Vendor Test)。雖然是第一次參加此比賽,格靈深瞳還是取得了不錯(cuò)的成績,排名世界前五,在國內(nèi)領(lǐng)先,且具體的成績接近世界最好水平(見表一)。
賽后,張德兵回憶了競賽的準(zhǔn)備過程并記錄下來,希望激勵(lì)團(tuán)隊(duì)在不久的將來能夠更上一層樓,以下為參賽記錄:
表一:FRVT 1:1 最新排名的前20名(基于第四列的跨14歲嫌疑人識別結(jié)果排序)
先介紹一下 FRVT。FRVT 由美國國家標(biāo)準(zhǔn)與技術(shù)研究院主辦,號稱是當(dāng)今全球規(guī)模最大、標(biāo)準(zhǔn)最嚴(yán)、競爭最激烈、最權(quán)威的人臉識別算法競賽,到目前為止,全球已經(jīng)有近百家公司和研究機(jī)構(gòu)參與了此項(xiàng)測試,包括VisionLabs(俄羅斯)、Ever AI(美國)、Vocord(俄羅斯)、 依圖、商湯、曠視、海康、大華、騰訊等等。關(guān)于這個(gè)比賽,網(wǎng)上也能找到很多介紹,我大概總結(jié)一下我覺得比較重要的幾個(gè)點(diǎn):
獨(dú)特的測試模式。在FRVT評測中,測試集是完全不公開的,只有簡略的幾段話描述。這意味著FRVT用的不是傳統(tǒng)那種通過在本地跑一遍測試集,然后提交結(jié)果的評測方式(在傳統(tǒng)評測中,大家往往不太考慮模型的計(jì)算效率,為了獲得更好的成績,經(jīng)常會(huì)通過大幅提升模型容量的方法來提高效果,而且往往還會(huì)采用更加耗時(shí)的多模型甚至多尺度預(yù)測的融合策略。
所以,很多比賽中排名靠前的算法,它們的實(shí)用價(jià)值有可能并不高)。但在FRVT的測試中,官方要求每個(gè)廠商或者研究機(jī)構(gòu)都要提供完整的預(yù)測代碼,并且由主辦方在同一個(gè)平臺上來運(yùn)行所有提交,得到最終各個(gè)測試集上的結(jié)果。而且,該測試對于算法的運(yùn)行時(shí)間也有著很嚴(yán)格的限制,所有提交都只能使用不超過CPU單線程1秒的計(jì)算資源來處理一張圖片從人臉檢測、人臉對齊到人臉特征提取和識別的所有功能。這些特點(diǎn)使得FRVT非常客觀且直接面向?qū)嶋H應(yīng)用。
最嚴(yán)格的提交頻率限制。為了避免測試廠商通過反復(fù)提交來過擬合測試集,2019年6月以前的規(guī)定是,每個(gè)廠商每次只能提交一個(gè)算法版本,且兩次提交之間相隔至少要3個(gè)月,其中第一次提交的時(shí)候?yàn)榱吮苊獯蠹页煽兲睿俜皆试S同時(shí)提交兩個(gè)算法版本。但在2019年6月以后,規(guī)則變得更加嚴(yán)格了一些,每個(gè)廠商的兩次提交間隔變成了4個(gè)月,而且不管是不是第一次提交,每次都只能提交一個(gè)算法版本。這也就是說我們只有一次提交機(jī)會(huì),風(fēng)險(xiǎn)還是挺大的。
豐富多樣的測試場景。FRVT主要覆蓋了四種類型的測試場景照片,分別是簽證照片(Visa),嫌疑人照片(Mugshot),自然場景照片(Wild)和兒童照片(Child),下面簡單介紹一下:
簽證照片(如圖一(a))。簽證照片是非常清晰、正面、無遮擋的一種受控測試場景,成像質(zhì)量很高,且覆蓋了多達(dá)上百個(gè)國家的人臉數(shù)據(jù)。
嫌疑人照片(如圖1(b))。嫌疑人照片也是比較高清的,跟簽證照片相比,嫌疑人兩張照片間的年齡跨度一般會(huì)更大,有很多都超過了十年的年齡間隔。這個(gè)測試又分為兩個(gè)場景,一個(gè)是混合的測試,一個(gè)是基于專門挑出來年齡跨度達(dá)14年以上的照片進(jìn)行的更有挑戰(zhàn)的評測。
自然場景照片(如圖1(c))。自然場景的照片是在非限制場景下采集的,各種光照,角度,遮擋,模糊,低分辨率的情況都可能會(huì)出現(xiàn),是難度非常大的一種場景,某種意義上也更接近安防場景的實(shí)際應(yīng)用。
兒童照片。兒童照片也是在非限制場景下采集的,因?yàn)槟挲g分布跟大家的訓(xùn)練集可能差別比較大,所以也是非常難的一個(gè)任務(wù)。很多廠商提供的算法,完全無法支持這個(gè)場景,以至于得分都沒有顯示(成績差于某個(gè)數(shù)值就不會(huì)顯示了)。
圖一,簽證照片,嫌疑人照片和自然場景的拍攝照片
FRVT對以上每種場景都會(huì)進(jìn)行單獨(dú)的評測,然后給出一個(gè)最終的排名表。在早期的排名表中,是以簽證照片識別結(jié)果的優(yōu)劣對大家進(jìn)行排名的,最近幾次的評測則改成了以跨年齡嫌疑人照片的識別結(jié)果優(yōu)劣進(jìn)行排名。我個(gè)人認(rèn)為,所有這些場景都是挺重要的,在實(shí)際應(yīng)用中都會(huì)用到,都不能有短板。且隨著人臉識別技術(shù)的不斷提升,非配合式的自然場景識別肯定是未來需求的大趨勢,只有真正做好非配合且無場景限制下的識別才能支持解鎖更多的、更廣泛的、更大規(guī)模的各行各業(yè)應(yīng)用。
比賽前:
一直以來,我們對于刷LFW或者M(jìn)egaFace之類數(shù)據(jù)集的就沒有太大的興趣,因?yàn)榇蠹叶贾溃@里面的各種排名其實(shí)也都有不公平或者不合理的地方。FRVT則非常專業(yè)(看看它上百頁的測試報(bào)告也能感覺到這一點(diǎn))。但是對于FRVT競賽,我個(gè)人一直下意識的認(rèn)為Visa簽證照片涉及到了上百個(gè)國家的人臉照片,如果沒有類似的數(shù)據(jù)做訓(xùn)練,結(jié)果應(yīng)該很難能做到非常好。而收集相關(guān)數(shù)據(jù)又挑戰(zhàn)巨大。
首先想收集覆蓋這么多國家的人臉數(shù)據(jù)已經(jīng)是非常困難了;其次, 就算收集到一些數(shù)據(jù),跟簽證的場景也會(huì)差別很大;且經(jīng)過一些嘗試后發(fā)現(xiàn),在現(xiàn)階段,想大量采集簽證場景的真實(shí)數(shù)據(jù)幾乎是不可能的。-------另外,當(dāng)看到以往成績較好的一些廠商的結(jié)果后,在團(tuán)隊(duì)自己內(nèi)部制作的中國人測試集上對比估算了一下,也發(fā)現(xiàn)我們在低誤識率下的召回率還是明顯要差一些,所以就一直沒有嘗試。
直到4月份的某一天,當(dāng)我看到ArcFace在NIST上表現(xiàn)是超出預(yù)期的好(github.com/deepinsight/),我才突然意識到,F(xiàn)RVT對于我們的難度很可能被高估了。有了ArcFace這個(gè)baseline,感覺就踏實(shí)了很多。我個(gè)人猜測排名靠前的廠商也不一定真有多少能覆蓋到眾多國家的簽證數(shù)據(jù),大家可能更多的還是在用一些開源數(shù)據(jù)和自己的業(yè)務(wù)數(shù)據(jù)來訓(xùn)練的。
同時(shí)我們也注意到了大部分廠商其實(shí)還并不能在每個(gè)任務(wù)上都得到很好的結(jié)果,有明顯的domain差異帶來的識別率下降,所以也能多少猜出來一些可能用了什么樣的數(shù)據(jù)之類的信息。
比賽中:
既然如此,那必須要試一下了。
首先仿照ArcFace在開源數(shù)據(jù)上做一些baseline的模型出來作為參照。這里要強(qiáng)調(diào)一下,豐富的測試集對于衡量模型效果是非常必要的。在平時(shí)的產(chǎn)品研發(fā)中,我們已經(jīng)積累了大量的多場景測試集,可以測試到非常低的誤識別率(我們也發(fā)布過一個(gè)人臉測試平臺,支持接近萬億分之一低誤識率且非常高效率的在線模型評測,trillionpairs.deepglint.com,該測試平臺也支持了ICCV 2019 的人臉識別 workshop 競賽 insightface-challenge.com)
接下來就是把長期以來產(chǎn)品研發(fā)中積累下來的模型結(jié)構(gòu)設(shè)計(jì)經(jīng)驗(yàn),分布式模型訓(xùn)練經(jīng)驗(yàn),數(shù)據(jù)集融合經(jīng)驗(yàn)和CPU平臺上的高效inference經(jīng)驗(yàn)快速移植到官方指定的測試環(huán)境下。
關(guān)于模型結(jié)構(gòu)設(shè)計(jì)和壓縮,在產(chǎn)品的持續(xù)研發(fā)和迭代中,我們已經(jīng)積累了比較多的經(jīng)驗(yàn),可以很快的設(shè)計(jì)一批各種各樣的CPU友好的模型結(jié)構(gòu)。
關(guān)于分布式模型訓(xùn)練,可以參考我們之前的一個(gè)分布式人臉識別算法介紹(zhuanlan.zhihu.com/p/35),可以獲得幾乎線性的加速。
關(guān)于數(shù)據(jù)集融合,在很多場景我們可能都會(huì)發(fā)現(xiàn),直接融合兩個(gè)不同源的數(shù)據(jù)可能會(huì)有一些問題。我們也曾經(jīng)思考了很久,最終找到了一種可以有效利率各個(gè)數(shù)據(jù)源的融合策略,使得在多個(gè)不同的產(chǎn)品場景中都能表現(xiàn)得很好。所以要做的就是把手頭上所有的跟NIST比賽數(shù)據(jù)類型有關(guān)的數(shù)據(jù)都巧妙的融合起來,但是由于時(shí)間有限,全量數(shù)據(jù)做實(shí)驗(yàn)是不現(xiàn)實(shí)的,這次比賽還是只能用一部分。
關(guān)于高效的CPU inference。這里有個(gè)小插曲。我們曾經(jīng)做過一個(gè)業(yè)余項(xiàng)目,基于強(qiáng)化學(xué)習(xí)的五子棋AI訓(xùn)練。我們仿照AlphaZero的思路,并且做了針對性的改進(jìn),使得基于幾十張卡就可訓(xùn)練到強(qiáng)職業(yè)的水平,最后這個(gè)項(xiàng)目也參加了2019年的五子棋AI世界錦標(biāo)賽(Gomocup 2019),并且拿了平衡開局的無禁手世界第四名(StarDust),是所有基于深度學(xué)習(xí)算法中最好的(gomocup.org/results/gom)。為什么只有第四呢?深度學(xué)習(xí)算法潛力巨大,如果有充分的訓(xùn)練資源,再加上GPU支持的走棋策略當(dāng)然可以完勝傳統(tǒng)算法,但是這個(gè)比賽為了公平性的考慮,也有一個(gè)限制就是必須要提供CPU單線程下的可執(zhí)行程序,所以在這么有限的計(jì)算資源條件下(而且評測的19x19路的大棋盤),我們覺得能到第四名已經(jīng)還不錯(cuò)了。雖然沒有顛覆所有傳統(tǒng)算法,但這次的業(yè)余項(xiàng)目,也使得我們對CPU單線程下的inference優(yōu)化有了比較好的積累。
在這個(gè)過程中,我們根據(jù)以往的經(jīng)驗(yàn),在這個(gè)特定比賽任務(wù)上,不斷的試驗(yàn)各種模型優(yōu)化策略、數(shù)據(jù)集融合策略,也包括調(diào)整和嘗試各種模型結(jié)構(gòu)、超參數(shù)、迭代次數(shù)、損失函數(shù)等等。因?yàn)橐囼?yàn)驗(yàn)證的細(xì)節(jié)非常多,我們先以很高優(yōu)先級,走通了基于fp16的訓(xùn)練方式,使得訓(xùn)練速度提升了幾乎一倍。
這段時(shí)間在印象里是過得飛快,但大家都非常興奮,因?yàn)楦咝实脑囼?yàn)使得我們幾乎每隔幾天就能看到新的提高。但時(shí)間總是很有限,在我們迭代了幾十個(gè)模型后,就已經(jīng)六月初,臨近比賽結(jié)束了。雖然感覺還有很多的想法沒有試驗(yàn)完,但是也沒辦法,差不多就打算選個(gè)最好的模型提交了。當(dāng)時(shí)根據(jù)我們的自測,結(jié)果還湊合,按照ArcFace之前成績的估算,應(yīng)該大概率能進(jìn)入前五名(按FRVT 4月份的成績)。
之后恰好是CVPR 2019的會(huì)議時(shí)間(6.15-6.21),F(xiàn)RVT相關(guān)的一切基本準(zhǔn)備就緒后(只差最后的確認(rèn)提交),我就帶著幾個(gè)瞳學(xué)去了Long Beach,去了解最新的學(xué)術(shù)動(dòng)態(tài)去了。沒想到還沒等到開會(huì),就收到了小伙伴新的消息,在半精度模型訓(xùn)練的過程中,發(fā)現(xiàn)了一處隱藏的bug,在復(fù)雜Loss和數(shù)據(jù)源的情況下會(huì)造成模型訓(xùn)練的不穩(wěn)定。于是,中美兩地開始不分白天黑夜的緊急修改(倒也省得倒時(shí)差了),一陣忙活之后,又看到了非常顯著的提升,那種感覺是非常不錯(cuò)的。
之后就按照官方要求進(jìn)行了最終的郵件提交,之后就一直沒有什么信息了,直到7.3號,比賽結(jié)果出來,看到三項(xiàng)的結(jié)果都超過了依圖。如果按照4月份的排名,這個(gè)成績基本上能跟當(dāng)時(shí)的VisionLabs并列第一。不過因?yàn)閂isionLabs也有了小幅提升,然后又冒出來一個(gè)成績還挺不錯(cuò)的Ever AI,所以我們在7.3號最新的榜單里是世界第三名(按公司來看) 或者世界第四名(按模型提交數(shù)來看)。只看國內(nèi)的話,是順利的暫列第一了(大部分任務(wù)都超過了友商,當(dāng)然在簽證照片上還遜色依圖,在兒童照片上比曠世差一點(diǎn))。
我覺得我們有一個(gè)比較大的優(yōu)勢是在所有任務(wù)上表現(xiàn)都相對比較一致,不像大部分友商的提交,會(huì)在某些場景表現(xiàn)得比較差,似乎是出現(xiàn)了一些domain的偏向性,這在實(shí)際應(yīng)用中,有可能會(huì)遇到一些問題。仔細(xì)看一下結(jié)果我們會(huì)發(fā)現(xiàn),在這方面Ever AI其實(shí)做得更加優(yōu)秀,非常值得我們學(xué)習(xí)。
最后再做一個(gè)總結(jié)吧,簡單分三個(gè)方面:
一:感謝
感謝ArcFace的Baseline, 以及在我們比賽中提供的一些支持。
感謝靠譜的團(tuán)隊(duì)成員,人數(shù)不多,在產(chǎn)品壓力下,還敢做挑戰(zhàn)世界的事情,而且還能做得不錯(cuò)。
感謝友商,給我們提供了階段性的追趕目標(biāo)。
二:不足
訓(xùn)練數(shù)據(jù)仍沒有充分使用起來
在新型網(wǎng)絡(luò)結(jié)構(gòu)的探索、模型結(jié)構(gòu)搜索(NAS)和模型inference優(yōu)化(如定點(diǎn)化, 模型壓縮等)等方面還有一定的空間
在人臉識別的問題建模、損失函數(shù)的進(jìn)一步優(yōu)化、泛化性能的保證、優(yōu)化策略的影響等方面仍然缺乏足夠的清晰理解
三:未來
人臉識別在真實(shí)場景的應(yīng)用效果,其實(shí)遠(yuǎn)不是一個(gè)比賽能夠完全衡量的。人臉識別發(fā)展到現(xiàn)在,也包括基于人臉識別而衍生出來的行人ReID等以圖搜圖技術(shù),其實(shí)離真正解決工業(yè)界大規(guī)模的應(yīng)用都還有不小的距離,萬路、十萬路、乃至百萬路的剛需,仍在前面等著我們?nèi)ゲ粩鄡?yōu)化和探索。
當(dāng)然,因?yàn)樯婕暗焦緝?nèi)部的很多研發(fā)細(xì)節(jié),這里無法更加詳細(xì)的介紹具體技術(shù),但我們非常期待對相關(guān)技術(shù)有濃厚興趣、有獨(dú)特想法、有很強(qiáng)執(zhí)行力的朋友加入我們,你將有機(jī)會(huì)了解到所有的技術(shù)細(xì)節(jié),并與我們一起進(jìn)一步推進(jìn)相關(guān)研究,做更多有意義的事情。另外,本文的很多內(nèi)容都是我個(gè)人的一些理解和分析,應(yīng)邀匆忙整理了一下,有些疏漏或者錯(cuò)誤也是難免的,如有發(fā)現(xiàn),歡迎指出。
格靈深瞳算法團(tuán)隊(duì):格靈深瞳核心團(tuán)隊(duì),負(fù)責(zé)公司所有產(chǎn)品線的各類不同算法的支持(安防、零售、智能相機(jī)、機(jī)器人等等,檢測、跟蹤、識別、檢索、商品推薦、數(shù)據(jù)挖掘、定位和導(dǎo)航等)。同時(shí)關(guān)注前沿算法研發(fā)和踏實(shí)的產(chǎn)品落地,擁有大規(guī)模的業(yè)務(wù)數(shù)據(jù)積累。
-
算法
+關(guān)注
關(guān)注
23文章
4710瀏覽量
95399 -
開源
+關(guān)注
關(guān)注
3文章
3689瀏覽量
43832 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1224瀏覽量
25448
原文標(biāo)題:FRVT賽程全紀(jì)錄:格靈深瞳全球排名前五
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論