“多模态视频人物识别”课程分享学习总结

目录

一、视频人物识别的应用场景

二、算法介绍

三、多模态人物识别比赛

1、数据集生产

2、数据集对比

3、数据分布

4、baseline方法

5、开源推荐

6、探索与展望

四、Q&A


9月28日晚上7点,爱奇艺在微学堂上线了一个小时的“多模态视频人物识别”课程分享。这次课程邀请到了爱奇艺身份识别组的应用基础算法工程师彭博老师进行视频人物识别方面的技术交流。我们知道,爱奇艺曾在2017年上线了以图搜剧功能,用户可以通过手机拍摄或上传电影、电视剧、综艺或动漫等剧照或截屏,在爱奇艺搜索栏处提供对应的剧照,便可直接进行观看想看的视频。这一功能直接解决了用户看剧不知剧名而搜索视频创作素材困难的问题,成为国内行业内首家支持图片搜索影视剧新功能的视频平台。作为相关领域的学习者,肯定不能错失这次学习的机会啊~~为了方便错过直播的朋友进行学习,也方便自己在之后可以多次回顾学习,利用国庆假期时间,我将这次课程分享内容进行了以下总结。

彭博老师分别就以下三个方面进行了分享和讨论:

1、视频人物识别的应用场景。

2、当前技术效果展示,瓶颈以及引入多模态的必要性。

3、多模态人物识别比赛的数据制作,baseline方法和部分开源推荐。

一、视频人物识别的应用场景

彭博老师所在的组主要做和人相关的一些东西。因为爱奇艺的数据主要来源自视频,所以主要做的是视频中的人的部分,包括人脸、人体、表情、动作、语音等等。关于人脸部分,主要是在做识别明星脸相关的课题。这主要因为爱奇艺有很多自制剧,自制综艺,会涉及到签约艺人明星的宣传和推广,很多应用也会和明星相关。具体例子比如说,知道微笑这个表情,我们就会找到明星微笑的片段。知道动作,比如说拥抱接吻,也能知道相应的片段。这些都可以帮助我们更好的理解视频。

彭博老师所在的组做的东西比较多,现在都比较分散,但主要的业务是做视频中的人物识别。想要更好的做到这一点,只用人脸的话,有很多case是没法解决的,所以需要将很多已有的信息融合起来,也就是需要用到多模态的方法。

关于视频人物识别的应用,彭博老师针对爱奇艺的业务分别就以下三点进行了介绍。

① 用于选角。爱奇艺有很多自制剧和自制综艺,制片人在制作这些综艺的时候会涉及到选角的过程,在选角的时候经常会选择一些不太出名的新人,但是在选新人的时候,制片人会想了解一下这些新人在以前有没有参加过什么节目,他们以前的表现怎么样。这个时候,有了视频人物识别,就可以把这些新人以前参加过的节目的片段直接选出来,避免了人工筛选。由此可以生成一个数据库,包含这些名人和新人的表演片段。我们可以通过表情动作找出他们表演中的一些精彩片段,从而辅助制片人选角。

② 广告投放。视频中的广告投放主要可以分为两个方面:物品相关和代言人相关。前段时间热播的“延禧攻略”,涉及到广告中的物品和剧里面的物品有某种关联,所以里面播放的广告就比较灵活与贴切剧情,不会让用户觉得广告出现得那么唐突。另外一种就是如果打广告的物品的形象代言人在这部剧中出现,这个时候一般会把广告的片段安排在代言人出现的片段,使它自然的衔接起来,为了做到这一点,我们也需要视频人物识别。爱奇艺针对这一点,把视频中明星出现的位置全部识别并保存了下来。当需要植入广告的时候,会通过广告代言人去找视频中可能适合植入的点,加之人工辅助,很大地减少人工筛选的工作量。

③ 只看TA。这是爱奇艺最近上线的一个与用户体验比较密切相关的功能。该功能可以使用户只看某一集中某个人出现的片段。有些人可能觉得不好理解,如果只看一个人出现的片段,就没法连贯的看剧情,但其实当我们很喜欢某个明星或者是某个明星的fans的时候,在我们看完整集之后,我们会希望能回顾这个明星出现的片段,也就是平时饭圈所说的cut片段。目前这个功能主要是彭博老师在做,当前的版本只用到了人脸的信息,下一个版本已经在做了,会加入人体人头的信息,这样能使明星识别的位置更加准确,遗漏的情况也会更少。

二、算法介绍

爱奇艺目前采用的人脸算法是今年年初提出的InsightFace,这个算法和之前的sphereFace比较像,在算loss的时候,都用到了特征夹角的信息,会让特征之间的夹角尽量更大,是比softmax更严谨的一个loss,不仅能把类别分出来,还希望它有更好的泛化能力。

爱奇艺官方提供的人脸特征就是用这个网络提取的,baseline结果也是在爱奇艺提供的那个特征集上做出来的,目前人脸单模型在验证集上是79的mAP,在测试集上是78的mAP。

爱奇艺一个明显优势是他们建立了一个比较大的明星数据库,并且把insightFace在这个数据库上单独训练了一下,使得在明星识别这一点上有具有很强的能力。最近爱奇艺也在逐渐丰富这个人物库,加入一些其他的人物,像运动员、IT人物,政治人物等。

以下是爱奇艺人脸模型训练的大致流程(半年前的流程,现在可能会有一些变化)。采用的insightFace会在开源的数据集上训练一个基础模型,然后这个基础模型接着会在爱奇艺的明星数据上进一步训练,从而得到更好的识别能力。

下面是“只看TA”上线之前的一个demo,展示了只用人脸来做只看ta的一些效果。

《三生三世十里桃花》人脸识别demo

《高能少年团》人脸识别demo

《战狼》人脸识别demo

从demo中也能看到,只用人脸做能处理大部分的情况,但出现低头、侧脸、被遮挡时,识别会间断一下,所以,这需要加入其他信息来帮助我们解决这个问题。

人脸识别中主要的两个挑战,一个是遮挡,一个是侧脸,这些情况只用人脸是不好解决的。例如上图中,左边的小鬼不是单单通过人脸识别出来的,而是结合人体信息识别出来的。

这是爱奇艺做“只看TA”用到的与人体识别相关的论文。和人脸相比,人体更加灵活,变化也比较大,所以说现在通常的方法是把人体进行分块,从上到下分成很多块。当测试时,会把测试人的图像和库里的人的图像分别分块,并找到对应关系。这篇文章提出了一个最小路径的方法来找这种对应关系,然后通过这种方法来提取特征。爱奇艺对这篇文章做了改进,加入了现在比较火的attention机制,来提取人体特征。

下面这个demo是爱奇艺把人头的信息和人体的信息加入进来之后做的一个“只看TA"。这个版本现在还没有上线。

三、多模态人物识别比赛

这个比赛一开始说的是5000个明星,后来数据清洗了一下,现在是4900多个明星,数据量还是很大。

1、数据集生产

起初选择一定数量的明星,通过这些明星关联到40万的视频,这些视频都是几十分钟或者超过一个小时的长视频,有可能是电视剧,有可能是综艺。利用场景分割,把视频分成每一小段都是同一个镜头的片段,之后再做人脸检测,检测到人脸比较多的时候就把这个视频过滤掉。现在比赛所用数据中有些视频还是有多个人的,那种情况下一般是一个人的头比较大,别的头比较小,这种情况我们也认为是一个人。

为了增加比赛的难度,对人脸识别置信度特别高的一些视频也进行了过滤处理,然后抽取了一些人脸识别置信度不高的视频进行了人工标注。标注的时候会先根据衣服的特征进行聚类,减小标注的工作量,标注之后也会加入一些噪声。为什么要加入噪声呢?就是因为彭博老师在做"只看TA"的时候,会出现一些我们并不想找到的人也被识别出来的情况,所以比赛中也会加入噪声。比赛的数据集刚发布的时候,噪声还是比较大的,经过很多选手的反馈,又做了一次再清洗的工作,清洗之后,人工统计出错误率从5%降低到0.2%。从baseline来说也是一样的,在清洗之前做的baseline是72%,清洗之后直接变成76%了。可以看出,清洗对训练模型还是挺有帮助的。

2、数据集对比

上图展示了爱奇艺的数据集和YouTube face数据集的差别。直观而言,爱奇艺的数据集量比较大,人比较多,视频数比较多,视频总长很大,取的帧数也比较多,每个人分到的帧数,每个人分到的视频数都比较多。而且,这个数据集主要想突出多模态的应用,youtube那个数据集还是希望大家用人脸去搞定它,而爱奇艺这个数据集会故意找一些人脸搞不定的情况,希望大家能从一些别的角度尝试去解决它。

3、数据分布

这些是比赛数据的一个统计,能覆盖到男女,各个年龄段,不同国籍。无论从性别年龄还是国籍来看,这个数据里面的人的分布还是比较均衡的。从训练和测试集的分布也能看到,比较均衡,验证集和测试集是随机拆开的,在验证集和测试集的结果应该是差不多的。

这里还有一个小trick,这里的训练集和验证集的拆分比例很随意的,按这个比例来拆分的话,训练的效果其实不是很好。训练模型的时候可以先把训练集和测试集放在一起,自己来做一个拆分,可能会更好一点。

4、baseline方法

目前爱奇艺公布的baseline方法只用到了人脸的信息。彭博老师说他们组也尝试了其他信息,但目前还没有取得有效的突破。这个baseline实际上就是先把视频截帧,然后每一张检人脸,检测到人脸之后,提取人脸特征,这样每个视频就会对应很多人脸特征,最后就相当于一个视频匹配的问题,即,一个特征集合和另一个特征集合求相似度的问题。

这是一张insightFace的特征可视化的图,图中相同的颜色代表同一个人,可以看到,insightFace对同一个人提取的特征都是聚集在一起的,还是很容易分辨的。注意,中间有一小团,不同人的脸都会出现在那里,这一小团特征对应的人脸都特别的模糊。这也就是为什么爱奇艺发布的人脸特征中会包含一个质量参数的原因。质量的数值是很有用的,体现在这张图上的话,中间那一小团其实都是质量得分比较低的脸,做识别的时候如果能把这些质量分数比较低的脸过滤一下,那得到的人脸特征的可靠度就会更好。

特征集合的匹配问题,就是计算两组特征的相似度。最简单的算法就是两组特征两两算距离,做一个加权,或者求一个最大最小值。这种方法运算量比较大,所以并不适用于数据集本身比较大的情况。爱奇艺选的方法都是运算量尽量小一点的,也就是从两组特征里面都选一个特征来代表这一组特征。这种方法中最简单的就是求平均。但是从上一张图我们可以看到,质量比较差的脸会干扰别的脸的特征,所以baseline选用的方法会先通过质量分布过滤掉质量差的脸,然后对剩下的那些脸求一个平均,这样一组特征就变成一个特征,一个视频对应一个特征,通过特征之间的匹配来匹配视频,视频又和id挂钩,就可以得到id和视频的关系。彭博老师提到可以结合经验来定,他们线上做的时候,实50分以上的脸就认为质量比较好的脸。但是比赛中选的这些样本都比较困难,阈值设为20分就可以。而且有些视频过滤20分以下的话就一张脸都没有了,所以也得想一些别的策略来解决这种情况,需要动态调整一下,对不同的视频采用不同的标准。

彭博老师一开始做这个比赛的时候,是直接算特征之间的余弦距离来决定特征之间的匹配关系,那样做的时候能做到一个75,76的mAP。因为有视频和id的对应关系,又有视频和特征的对应关系,就拿到了特征和id的关系,通过特征和id训练了一个分类器,得到了验证集79,测试集78的结果。后来又尝试了一些其他方法。尝试了拆分训练集和验证集,试了一下多模型,模型融合了一下,现在能做到82点多。单用人脸就能做到82点多,希望先把人脸做到极限,再想一些其他方法来提高成绩。

上图中的图选自比赛数据,这几张图用人脸来做应该很难做出来,左上角两个头都比较侧,这个id对应的视频又比较少,像这种情况用人体来做应该是能够出来的。不过,在不知道数据的情况下,什么时候用人脸,什么时候用人体,这就是一个问题。右上角这个图也是很难的,左边的图有帽子遮挡,右边又是侧脸,这张图可能需要做身份识别,如果都能识别出是网球运动员再来做的话,可能会比较好一些,而且用OCR识别出名字也是可行的。

5、开源推荐

这是一些人物识别相关的开源库,目前爱奇艺的"只看TA"能把人体、人头的信息加进来。但线上做的时候,完整的视频会有同镜头和跨境头的情况,同镜头用人体信息是比较安全的,但在跨境头的情况下就不那么可靠了。比赛的情况恰好又是跨境头的情况,所以应该怎么用也是一个值得探索的问题。

6、探索与展望

这是目前考虑到的一些问题。提取哪些特征,如何融合这些特征,都需要继续探索和研究。因为这次比赛的时间比较短,所以在比赛结束之后也会开放这个排行榜。

四、Q&A

1、能否用跟踪来做?

因为跟踪算法在跟踪过程中经常会出现跟错的情况,这是不能接受的。所以在跟踪的同时,也会判断每一帧的跟踪结果是不是那个人,当发现跟踪到的脸和之前匹配不上的时候,会中断那个标签。

2、这个人物识别的过程是不是实时的?

目前不是实时的,爱奇艺线上的“只看TA”的视频,都是算法先跑过一遍,然后把明星出现的时间点记录下来。看视频的时候有时间的点位信息,并不是实时计算的,因为每个视频只需要跑一遍就行了,也不会每次看一遍就再算一遍。

3、侧脸的情况也能识别吗?

侧脸这个情况实际上我们没有进行特别的处理,这也要看侧的程度,就是一般侧到45度左右用人脸提取的特征的辨识度还是比较强的,如果侧到八九十度估计辨识度就不行了,对于那种情况,现在没有单独处理,你们有什么好的想法也可以尝试一下。

4、有尝试过只在比赛数据集上训练,不借助更大的数据,然后看mAP的效果吗?

没有试过这样。我们提供给你们的特征是之前在我们的明星库上训练的一个人脸识别识别器,我们会把最后一层之前的作为特征,我们训练的那个分类器是在这个特征的基础上训练的,这个特征和这次比赛的数据是没有联系的,就是你们想在这上面训练也可以尝试一下。

5、侧脸有尝试使用3D的矫正吗?

我们其实是有一个角度模型,来识别这个脸它转的角度是多少。但是这个模型对于比较近的脸效果比较好,对于比较远的脸效果都比较差,你说的这个矫正问题,我们发现,其实脸比较大的时候,即便是侧着的,它的特征也和正脸是比较接近的,对于远一点的就比较难弄了,你的想法也可以尝试一下,我们没有试过这样做。

6、mtcnn进行人脸检测会有很多不是脸的区域被检测成了人脸,老师运用的人脸检测算法是什么呢,可以介绍一下吗

我们的这个检测器是在SSH的基础上改的,把那个基础网络模型改一下,然后自己训练的,我们也会有很多误检测的情况,但这次比赛有一个很强的先验,就是每一个视频是有一个主要人物的,所以我们提供的那个检测框的数据,是每一帧中检测到的人脸框最大的一个,在这种先验的情况下,出错的情况还是比较少的。如果你自己做人脸检测,你过滤一下那些检测到的小框,剩下的基本都是人脸,因为这次比赛数据有人工清洗一遍,就保证了这个条件。

7、训练了分类器后,每个类candidate的排序是怎么做的啊?

我们训练的分类器,就是一个softmax,分类的时候每一个类别都会有一个分数,我们会把这个分数记录下来,直接对这个分数进行排序,分数最好的那100个就作为预测的那100个视频,没有用别的。

9、图像质量是如何评估的呢?

这里我们用的不是图像质量评估,是人脸质量。不是指图像清晰还是模糊,是指这个人脸有没有辨识度。我们的这个人脸模型实际上是从人脸特征的范数来训练的,作者发现人脸特征的范数越小,它就越模糊,这个直观上是很好理解的,就是无论是谁的脸,越模糊,它的特征就失去的越多,模糊的脸之间就会互相变得很像。这和那个特征范数变小,全部都往原点靠近很类似,这样想也是很合理的,就是说特征的范数可以作为人脸质量的一个指标,我们是在这个指标的基础上训练的这个人脸质量模型。我们用到的就是开放给你们的那些数据,没有用到别的一些特征。

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值