在2018年爱奇艺联合PRCV会议举办的第一届多模态视频人物识别挑战赛中,来自Infinivision的团队获得冠军。现在,该团队分享了他们在比赛中的经验心得,希望可以为对多模态领域研究感兴趣的朋友提供参考。

前言:

在去年,我们团队决定参加由爱奇艺联合PRCV会议举办的第一届多模态视频人物识别挑战赛,为了这个挑战赛爱奇艺准备了迄今为止最大的人物视频数据集(IQIYI_VID)。参赛比赛的过程中我们团队经历了沉稳-自信-压力-兴奋的心理路程,十分有趣。
挑战赛的信息是从一个技术交流的群里了解到的, 因为挑战赛的方向比较合适目前的研究方向, 就毫不犹豫的注册参加了。我们团队WitcheR(名字来源某著名游戏)包括3个成员:IBUG Jiankang Deng、公司的小伙伴JackYu 和我。我们团队的合作模式比较简单,没有特别明确的分工,在比赛过程中中团队成员会相互交流想法,共同找出当前可能存在的问题与改进点,最终由我统一汇总来实现和验证。

在这次比赛中我们不仅积累了视频特征处理、检索的一些经验,同时也认识了业界的一些伙伴、朋友,并且进行了深入的学习和交流。

一、准备策略:

爱奇艺举办的视频人物识别挑战赛是一个针对视频的人物检索竞赛,赛题逻辑比较简单:在视频数据集IQIYI_VID中,计算出该视频包含的人物是谁。整个数据库包含50万条视频,5000名人物(噪音清理后4934), 每条视频的长度是1~30秒。爱奇艺准备的这份数据集很特别,做到了数据的大和干净,其中视频数量和包含的人物数量截至目前都是最高的,并且噪音维持在了一个极低的水平, 对检验模型算法性能有很好的参考意义。
对视频人物检索问题来说,我们可能可以利用的信息有:

(1)人脸识别模型

(2)人头识别模型

(3)行人重识别模型

(4)图片场景模型

(5)声纹模型

(6)人体姿态模型
在我们这次必定的方案中只用到了(1)和(4)。理由是:
1.人头识别缺少数据集

2.ReID model可以和recognition model同时存在, 但泛化性能不如, 组合后会带来提升还是下降未知

3.声纹模型不熟悉

4.人体姿态步伐做人物识别更有些虚无缥缈

5.人脸识别是最重要的特征, 在能看到脸的视频里面起决定性作用

6.图片场景模型可以对检不到脸的场景做一些补充

第一波数据公布后我利用空闲时间开始了实验, 用各种策略评估官方第一次提供的训练/验证集合的精度:

1.帧速, 即每隔多少帧抽一次人脸/图片特征

2.检测器选择, 更准的检测器是否相比MTCNN带来更高的精度.

3.人脸特征聚合, 如何用特征来表示一个视频

4.获得视频特征后如何更好的提升检索性能
5.用什么人脸识别模型和图片场景模型

二、正式启动:第一次提交成绩第一 但很快被超过

在官方发布了所有数据集和测试集后,因为先期积累了一些经验,我们决定专门腾了一台8卡P40来做这个任务。

我们用了自己研发和训练的一个one stage检测器来同时检测人脸和关键点做对齐,相比MTCNN,在phase1的validation set上能有差不多1个点的mAP提高。不管是在这个比赛中,还是其他的应用里,我们都发现关键点的精度是非常重要的,更精准的关键点能带来更好的识别性能。这个检测器也会很快在insightface上开源。人脸识别的模型训练数据我们用了 MS1M-Arcface(emore)+ Glint-Asia 的组合, 没有采用任何私有数据。 Loss function用我们刚刚被CVPR 2019接收为oral的Arcface:

\"image\"

网络结构沿用了paper里面提出的ResNet100和IR Block:

\"image\"

更多细节可以参考我们的文章:

\"image\"

对每段视频我们间隔3帧抽一次特征(~8FPS), 并对所有特征取平均来获得该视频的特征. 在这个过程中我也尝试了一些其他方法:
1.根据feature norm去掉模糊人脸,有提升

2.增加flip augmentation,没有提升

3.增加color jittering augmentation,性能下降

4.根据人脸5点估计姿态,并进行分组处理,没有提升

在获取每个视频的特征向量后,我们就可以通过简单的向量夹角来衡量视频之间的相似度,并根据测试视频和所有训练视频中最相似的视频来输出预测结果。这时候我提交了第一个结果,test mAP:79.8. 当时只有不到10个人提交,暂列第一, 但很快被超过。

三、调整策略:加速

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。
结果汇总:

\"image\"

四、最后的决战:压力

在提交截止前的2-3天, 排名第二的队伍得分突然一下提高了很多, 离我们只差不多1个点的距离。而当时我们手上其实已经没什么牌可以打了。领跑了大半个赛季的我们,在最后一个夜晚还是比较担忧最终的成绩会被翻盘。焦虑不安的渡过了一个夜晚,第二天上午看到最终结果才放松下来。最终以总分比较高的优势拿到了这次比赛的第一名。

五、比赛经验:策略如何更容易的验证

纵观整个比赛过程, 付出最大精力的可能是如何使我们的idea更容易的去验证。Idea很容易想, 可能一天会有好几个,在确定了方案之后,怎么能在现有的机器资源的条件下更快速的去验证,是比赛的一个关键。

尤其在数据量很大比赛中, 如果没有一个优质的流程, 不但会引起效率低, 更会忙中出错,简单介绍其中几种方法:

1.根据视频的hash id切分多卡跑检测, 并序列化中间结果. 对视频按帧检测比较耗时, 所以在检测策略没有发生变化的情况下可以保证复用结果;

2.对每个识别模型, 保存其对每一个视频的特征抽取结果. 在视频特征抽取算法不变的情况下保证可复用, 做为训练MLP的输入;

3.序列化保存每个训练的MLP模型和预测的概率信息, 做为最终模型融合的输入。

五、后记

在PRCV2018的颁奖现场我也与主办方和通过比赛认识的小伙伴们进行了亲切和友好的交流,结下了深厚友谊。针对如何提高视频、图像人物检索性能达成了一系列共识。2019年的视频人物识别挑战赛已经开始了,这次比赛的数据集有了新的升级,也是业界中最接近实际媒体应用场景的视频人物数据集,在原有的基础上新增了短视频人物ID约5000个,包括一些特效、滤镜、换妆等。数据集iQIYI-VID-2019在复杂场景下10000名明星人物、200小时、20万条影视剧与短视频数据集,对于挑战者来说更具挑战性,我们团队会继续参加,并希望能有更多的志同道合的团队能来一起参与, 把成绩再提高更好的水平,也能为工业界多做贡献。本文里面提交的技巧和代码都有在insightface里面开源,可自行取用参考。

insightface开源项目链接:https://github.com/deepinsight/insightface

2018视频人物识别挑战赛冠军经验分享:在现有机器资源条件下更快速验证是关键...相关推荐

  1. 爱奇艺多模态视频人物识别挑战赛项目总结

    文章目录 一:任务目标 二:主要思路 三:实验细节 3.1数据集介绍 3.2人脸提取与去噪 3.3网络结构 Deep Residual Learning for Image Recognition(C ...

  2. CVPR 2018视频行为识别挑战赛概览

    今天看了下CVPR 2018视频行为识别挑战赛的结果,主要了解:都有哪些行为?通常用什么办法去识别. 关于Moments-in-Time数据集(视频+动作)的类别分布: 339 个动作类别,每个类别至 ...

  3. ​人物识别挑战赛TOP6团队经验分享:合理选择策略并不断优化

    1.团队介绍 zheey团队的成员来自北京邮电大学,其中王文哲为队长,是计算机学院研究生一年级的学生,主要研究方向为多媒体内容理解与数据挖掘,其他成员均是准备进入实验室读研或正在实验室实习的计算机学院 ...

  4. 爱奇艺路香菊:视频人物识别关键技术及其应用|爱奇艺技术沙龙回顾

    主讲人 | 路香菊 爱奇艺科学家 张康 编辑整理 量子位编辑 | 公众号 QbitAI 近日,爱奇艺技术沙龙"多模态视频人物识别的关键技术及应用"成功举办,爱奇艺科学家路香菊出席并 ...

  5. Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量

    Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量 from:https://www.leiphone.com/news/201712/zbX22Ye5wD6CiwCJ.html 导语 ...

  6. 复试复旦大学计算机博士,【华慧推荐】2018年复旦大学博士面试成功经验分享...

    原标题:[华慧推荐]2018年复旦大学博士面试成功经验分享 2018年复旦大学博士面试成功经验分享 导语:笔者是参加2018年复旦大学博士面试,跨专业考博,几经波折,最后2分钟扭转局面,体验了地狱天堂 ...

  7. 运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1676490 运维 ...

  8. 【SEO经验分享】SEO外链怎么发更有效果

    SEO优化除了要做好站内优化之外,SEO外链也是非常有必要做的,SEO外链可以给网站源源不断的引流,并传递一定的权重的,对网站优化关键词排名的提升是很有效果的.但有些人发外链对网站优化没有效果甚至还会 ...

  9. ICCV 2021 口罩人物身份鉴别全球挑战赛冠军方案分享

    作者丨阿里云多媒体 AI 团队 编辑丨极市平台 导读 今年阿里云多媒体 AI 团队参加了 MFR 口罩人物身份鉴别全球挑战赛,并在总共5个赛道中,一举拿下1个冠军.1个亚军和2个季军.本文为该团队的冠 ...

最新文章

  1. vue-cli 如何打包上线的方法示例
  2. 5、Power Query-抓取网页数据做漂亮的图表
  3. 【CEOI2017】Building Bridges【任意坐标斜率优化】【李超线段树】
  4. 昨夜,拼多多发布财报后,大家只看到了用户达到7.31亿
  5. 进程线程的调度阻塞唤醒
  6. VS2015 设置项目依赖项
  7. [转载]SQL Server 2008 R2安装时选择的是windows身份验证,未选择混合身份验证的解决办法...
  8. dpkg 被中断,您必须手工运行 sudo dpkg -configure -a 解决
  9. linux不解压情况下查看压缩包内文件的总行数、文件列表的数目
  10. WIN32汇编定时器的使用
  11. 夜间灯光数据dn值_一种基于遥感夜间灯光数据和能源消耗统计数据的城市能耗量空间化方法与流程...
  12. 驾照新规4月起实施:有驾驶经历者可直接申请考试
  13. mysql索引,索引结构,索引类型,索引失效
  14. 网易云音乐小程序 笔记
  15. N皇后问题 - 构造法原理与证明: 时间复杂度O(1)
  16. 【苹果相册推】怎么操作呢?是什么意思?
  17. Google推出拼音输入法了!
  18. java面试题集汇总
  19. 4. ElasticSearch——aggregations聚合分析
  20. #Visio#教会你怎么安装和使用 Visio 哦 ~ ~

热门文章

  1. Windos消息驱动
  2. Java多线程的几种实现方法
  3. python入门第二天__练习题
  4. Tips-Windows 10【多桌面视窗】操作
  5. EmEditor编辑器正则表达式的优点
  6. 高频焊台源码,改进版V2
  7. 神经网络与机器学习 笔记—单神经元解决XOR问题
  8. Linux-鸟菜-6-文件与目录管理
  9. hdu1255 扫描线,矩形重叠面积(两次以上)
  10. 【C 语言】结构体 ( 结构体变量内存操作 | 通过 “ . “ 操作符操作结构体内存空间 | 通过 “ -> “ 操作符操作结构体内存空间 )