2018年視頻人物識別挑戰賽冠軍是如何養成的?

2018年,愛奇藝與中國模式識別與計算機視覺大會(PRCV2018)共同發起「多模態視頻人物識別挑戰賽」,在來自包括紐約大學、瑞典隆德大學、新加坡國立大學、百度、小米、微軟等全球頂尖高校以及行業領先公司在內的397支參賽隊伍中, WitcheR團隊脫穎而出,榮獲冠軍。下面是該團隊的經驗分享,但願能夠爲對多模態領域研究感興趣的朋友們提供參考。git


在去年,咱們團隊決定參加由愛奇藝聯合PRCV會議舉辦的第一屆多模態視頻人物識別挑戰賽,爲了這個挑戰賽愛奇藝準備了迄今爲止最大的人物視頻數據集(IQIYI_VID)。參賽比賽的過程當中咱們團隊經歷了沉穩-自信-壓力-興奮的心理路程,十分有趣。github


挑戰賽的信息是從一個技術交流的羣裏瞭解到的, 由於挑戰賽的方向比較合適目前的研究方向, 就絕不猶豫的註冊參加了。咱們團隊WitcheR(名字來源某著名遊戲)包括3個成員:IBUG Jiankang Deng、公司的小夥伴JackYu 和我。咱們團隊的合做模式比較簡單,沒有特別明確的分工,在比勝過程中中團隊成員會相互交流想法,共同找出當前可能存在的問題與改進點,最終由我統一彙總來實現和驗證。算法


在此次比賽中咱們不只積累了視頻特徵處理、檢索的一些經驗,同時也認識了業界的一些夥伴、朋友,而且進行了深刻的學習和交流。數據庫


1、準備策略微信

愛奇藝舉辦的視頻人物識別挑戰賽是一個針對視頻的人物檢索競賽,賽題邏輯比較簡單:在視頻數據集IQIYI_VID中,計算出該視頻包含的人物是誰。整個數據庫包含50萬條視頻,5000名人物(噪音清理後4934), 每條視頻的長度是1~30秒。愛奇藝準備的這份數據集很特別,作到了數據的大和乾淨,其中視頻數量和包含的人物數量截至目前都是最高的,而且噪音維持在了一個極低的水平, 對檢驗模型算法性能有很好的參考意義。網絡


對視頻人物檢索問題來講,咱們可能能夠利用的信息有:dom

(1) 人臉識別模型ide

(2) 人頭識別模型性能

(3) 行人重識別模型學習

(4) 圖片場景模型

(5) 聲紋模型

(6) 人體姿態模型

在咱們此次一定的方案中只用到了(1)和(4)。理由是:

1. 人頭識別缺乏數據集

2. ReID model能夠和recognition model同時存在, 但泛化性能不如, 組合後會帶來提高仍是降低未知

3. 聲紋模型不熟悉

4. 人體姿態步伐作人物識別更有些虛無縹緲

5. 人臉識別是最重要的特徵, 在能看到臉的視頻裏面起決定性做用

6. 圖片場景模型能夠對檢不到臉的場景作一些補充


第一波數據公佈後我利用空閒時間開始了實驗, 用各類策略評估官方第一次提供的訓練/驗證集合的精度:

1.  幀速, 即每隔多少幀抽一次人臉/圖片特徵

2.  檢測器選擇, 更準的檢測器是否相比MTCNN帶來更高的精度.

3.  人臉特徵聚合, 如何用特徵來表示一個視頻

4.  得到視頻特徵後如何更好的提高檢索性能

5.  用什麼人臉識別模型和圖片場景模型


2、正式啓動:首交成績第一 但很快被超過


在官方發佈了全部數據集和測試集後,由於先期積累了一些經驗,咱們決定專門騰了一臺8卡P40來作這個任務。


咱們用了本身研發和訓練的一個one stage檢測器來同時檢測人臉和關鍵點作對齊,相比MTCNN,在phase1的validation set上能有差很少1個點的mAP提升。無論是在這個比賽中,仍是其餘的應用裏,咱們都發現關鍵點的精度是很是重要的,更精準的關鍵點能帶來更好的識別性能。這個檢測器也會很快在insightface上開源。人臉識別的模型訓練數據咱們用了 MS1M-Arcface(emore)+ Glint-Asia 的組合, 沒有采用任何私有數據。 Loss function用咱們剛剛被CVPR 2019接收爲oral的Arcface:


網絡結構沿用了paper裏面提出的ResNet100和IR Block:

 


更多細節能夠參考咱們的文章:

對每段視頻咱們間隔3幀抽一次特徵(~8FPS), 並對全部特徵取平均來得到該視頻的特徵. 在這個過程當中我也嘗試了一些其餘方法:

1.  根據feature norm去掉模糊人臉,有提高

2.  增長flip augmentation,沒有提高

3.  增長color jittering augmentation,性能降低

4.  根據人臉5點估計姿態,並進行分組處理,沒有提高

在獲取每一個視頻的特徵向量後,咱們就能夠經過簡單的向量夾角來衡量視頻之間的類似度,並根據測試視頻和全部訓練視頻中最類似的視頻來輸出預測結果。這時候我提交了第一個結果,test mAP:79.8. 當時只有不到10我的提交,暫列第一, 但很快被超過。


3、調整策略:加速

  • A) MLP

在上面的方法中有一個缺陷,實際上咱們並無用到訓練集視頻來作訓練。我也嘗試過把訓練集的視頻人臉圖片抽取出來放到識別的訓練集裏,但效果並很差。那如何才能用到這些訓練集信息? 答案是直接用視頻向量作爲輸入訓練一個多層感知機(MLP)。最簡單的多層感知機很直觀,輸入512 embedding,經過2個全鏈接層,來預測該向量屬於某我的物分類的機率,最後加softmax loss來BP。但這裏面的設計就又有不一樣,多少層最好,每層的寬度多少, 用不用BN,是否須要shortcut connection,用不用dropout, batch-size多大等等這些因素都會很大程度影響最終結果。咱們最終選取了以下策略:

1.  三層感知機

2.  層寬 channel size = 1024

3.  PRelu 代替 Relu

4.  在中間層使用shortcut connection, 因輸入輸出分辨率一致.

5.  使用BN, 不使用Dropout

6.  用很是大的batch-size訓練, 單卡4096

7.  Softmax層以前添加一個fix gamma的BN, 並和原始不加fix gamma BN的版本聯合預測

這7個技巧是咱們的best setting。在使用最簡單的MLP配置時,提交的test mAP爲82.9。加上這7個技巧之後,mAP=86.4, 足足提升了3.5個點。


  • B). 模型融合

模型融合能夠說是打比賽必備的trick, 多個模型通常來講總能提高最終結果的精度. 咱們保持一樣的數據集和訓練方法,並採用不一樣的random seed訓練了4我的臉識別模型。對這些識別模型也作一樣的MLP訓練來輸出最終的預測機率, 並加權獲得最終結果. 此時mAP得分來到88.2。


  • C). 場景分類模型

對那些沒法檢出人臉的視頻, 咱們從mxnet model zoo裏找到imagenet11k+place365預訓練的resnet152模型作爲基準模型,用抽取的視頻圖片作微調來預測每張圖片屬於哪一個明星。作完分類處理後, mAP最終定格在88.6。


結果彙總:


4、最後的決戰:壓力

在提交截止前的2-3天, 排名第二的隊伍得分忽然一下提升了不少, 離咱們只差很少1個點的距離。而當時咱們手上其實已經沒什麼牌能夠打了。領跑了大半個賽季的咱們,在最後一個夜晚仍是比較擔心最終的成績會被翻盤。焦慮不安的渡過了一個夜晚,次日上午看到最終結果才放鬆下來。最終以總分比較高的優點拿到了此次比賽的第一名。


5、比賽經驗:策略如何更容易的驗證

縱觀整個比勝過程, 付出最大精力的多是如何使咱們的idea更容易的去驗證。Idea很容易想, 可能一天會有好幾個,在肯定了方案以後,怎麼能在現有的機器資源的條件下更快速的去驗證,是比賽的一個關鍵。


尤爲在數據量很大比賽中, 若是沒有一個優質的流程, 不但會引發效率低, 更會忙中出錯,簡單介紹其中幾種方法:


1.  根據視頻的hash id切分多卡跑檢測, 並序列化中間結果。 對視頻按幀檢測比較耗時, 因此在檢測策略沒有發生變化的狀況下能夠保證複用結果;

2.  對每一個識別模型, 保存其對每個視頻的特徵抽取結果。在視頻特徵抽取算法不變的狀況下保證可複用, 作爲訓練MLP的輸入;

3.  序列化保存每一個訓練的MLP模型和預測的機率信息, 作爲最終模型融合的輸入。


6、後記

在PRCV2018的頒獎現場我也與主辦方和經過比賽認識的小夥伴們進行了親切和友好的交流,結下了深厚友誼。針對如何提升視頻、圖像人物檢索性能達成了一系列共識。2019年的視頻人物識別挑戰賽已經開始了,此次比賽的數據集有了新的升級,也是業界中最接近實際媒體應用場景的視頻人物數據集,在原有的基礎上新增了短視頻人物ID約5000個,包括一些特效、濾鏡、換妝等。數據集iQIYI-VID-2019在複雜場景下10000名明星人物、200小時、20萬條影視劇與短視頻數據集,對於挑戰者來講更具挑戰性,咱們團隊會繼續參加,並但願能有更多的志同道合的團隊能來一塊兒參與, 把成績再提升更好的水平,也能爲工業界多作貢獻。本文裏面提交的技巧和代碼都有在insightface裏面開源,可自行取用參考。


瞭解更多

1. Arcface paper被CVPR 2019接受爲Oral. 歡迎關注咱們據此展開的開源項目insightface@github.

2. 近期會在insightface上開源一個巨好用的人臉檢測和配準器.

3. insightface已支持單機多卡並行加速, 8*1080Ti的環境可支持百萬ID訓練, 速度達800 samples/sec (ResNet50). 多機多卡版本也很簡單, 可利用mxnet內置的parameter server自行修改支持, 改動不是太複雜.

 

開源項目連接:

https://github.com/deepinsight/insightface


點「閱讀原文」,直達本次大賽報名通道

也許你還想看

2019愛奇藝多模態人物識別挑戰賽報名啓動!

2018愛奇藝AI競賽開幕 推動國內外視頻AI技術創新發展


掃一掃下方二維碼,更多精彩內容陪伴你!

愛奇藝技術產品團隊

簡單想,簡單作


本文分享自微信公衆號 - 愛奇藝技術產品團隊(iQIYI-TP)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索