本文共 2864 字,大约阅读时间需要 9 分钟。
iDST: 尘恩,芝泉,磐君
最近,iDST视频分析组参加了ACM MM下举办的Large-Scale Video Classification比赛,参与比赛的还有七牛云,商汤,华师大,以及一些其他院校。我们很荣幸的获得了第一的成绩。在本次竞赛中,我们聚焦于各种模态对视频分类的影响,总结出了一些对于umtrimmed video classification行之有效的模态提取,聚合方法。
图1. LSVC2017比赛结果LSVC 2017数据库是在Fudan-Columbia视频数据库基础上的扩展,包含8000小时的视频,500个类目,类目包含物体,场景,动作,社交活动等。 训练,验证,测试集合分别有 62000/15000/78000个视频,总视频数量超过150000,原始视频官方提供约3T,这个数据规模比较适合我们提取各种模态特征来分析。在更早进行的Youtube-8M视频分类比赛中,官方提供抽好的cnn特征,不允许自己额外提取,因此参赛队只能在aggregation上进行实验,本次LSVC比赛我们使用VLAD作为aggregation方法,利用odps对大规模视频进行特征提取,一般能够在一两天的时间内抽完某个模态的特征。
最常用的是ImageNet上pretrain的cnn模型来提取特征,官方提供了vgg的特征,但我们用了最新的Inception Resnet V2 和 Squeeze & Excitation模型。另外,我们针对LSVC数据库,额外在Places/Food101数据库上预训练了两个模型,在LSVC中,有80类是和食物相关,而且食物相关的类别都很难区分,例如关于蛋的类目包括煮蛋,煎蛋,沙拉蛋等细分的烹饪类别,我们希望通过专门针对food训练得到的特征能提高模型性能。对于图像模态,我们以1fps采样抽取特征。具体得图像模态间下表。
表1. 图像模态audio特征,我们采用了和Youtube-8M相同的方法,google已经在官方tensorflow github上release了audio model:
模型在audioset数据库上训练得到,该数据库是目前规模最大的audio dataset。表2. 声音模态由于我们aggregation采用VLAD,VLAD本身并没有encode 时域信息的能力,因此如果要捕捉时域强相关的类别信息,例如“baby crawling”,"high jump","long jump",需要模态特征包含时域信息,C3D是一种很不错的选择,不过在视频领域没有大规模通用的dataset,因此C3D通常只能设计的比较简单。今年Deepmind提出一种I3D(Inflated 3D),能够在初始化时通过将二维卷积核复制扩展到三维,吸收了imagenet图像数据信息,从而可以设计较深层的3D卷积模型,在HMDB/UCF两个动作分类数据库上获得了很好的性能。i3D如下图,
图2. I3D 模型框图I3D是two stream的模式,除了appearance还提取了optical flow的motion信息,我们提取的I3D如下表所示:
表3. I3D 模态特征PCA + Whiten + 8bit Quantization
表4. 各个模态PCA前后维度在LSVC数据库中,视频平均长度为三分钟,有个别特别长的视频,我们首先将视频分为10分钟的一小段,对于图像模态,以1fps提取特征可以获得600帧数据,对于每个training step,我们random的从600帧中抽50帧作为输入,在test阶段,我们重复该过程并去average作为最终预测结果。random的抽帧主要考虑到某些视频,关键场景分布不均匀,例如“marriage proposal”,重要场景经常出现在最后,random可以保证大概率捕获关键。另外random一定程度也起到了data augmentation的作用。对于random会打乱原有视频时序信息的问题,由于在I3D的模态中feature本身是带有temporal信息的,因此并不会影响action相关视频的识别。
图3. 采样策略特征融合包括两个方面,多个模态之间如何融合以及时域特征如何融合。模态之间,我们采用late fusion的策略,即各个模态先通过Aggregation模型获取vector再concatenate起来。而Aggregation模型,我们采用了netVLAD的方式。netVLAD首先被提出应用在place image retrieval任务中,最后一层feature map上每个位置可以当做local feature,通过VLAD encode,在传统VLAD基础上改进了Cluster assignment的方式,使整个过程可back propagate,在视频分类问题中,输入feature为模态特征,各个模态encode成vlad向量。
图4. 多模态视频分类框图可以看到,在ImageNet上pretrain提取的feature获得比较好的效果,尤其是Squeeze & excitation Network。
首先我们将scene,food,audio加在最好单模态模型Senet后,发现可以提升mAP一个百分点,但当我们加了I3D之后,性能显著增加达到了近0.84,通过分析AP提升较大的类目后,发现action相关的显著提升,进一步验证了spatial-temporal feature的重要性。另外一方面,第二第三列说明了在LSVC里,food是非常难分的类别,通过额外在food数据库上训练的特征能提升food类别的性能。最佳单模型是融合了I3D,Inception-resnet-v2, Senet,food后的结果,达到0.8485。最后提交的结果是25个混合模型的ensemble,在test集上获得了mAP:0.8741。
通过这次比赛,我们发现包含时域信息的C3D特征结合netVLAD起到了很好的效果,主要原因在于对于未裁剪的视频分类,情况比较复杂,既包含了action,object,还需要识别哪里是关键场景,在action数据库上pretrain的C3D特征是对于frame level object feature很好的补充,通过netVLAD,模型能够有效的挖掘出对ground truth贡献比较大的模态以及时刻。最后在参加比赛时,ensemble通常能将mAP在最好单模型的基础上提高3到4个点,也很关键。我们将继续研究大规模视频分类的方法,梳理每个步骤的优化方法,在业务场景中落地。
转载地址:http://jfcxl.baihongyu.com/