来源:百度飞桨

业界首个视频识别与定位工具集PaddleVideo重磅更新,前沿视频模型等你用

飞桨 (PaddlePaddle) 致力于让深度学习技术的创新与应用更简单。7 月初,随着 Paddle Fluid 1.5 版本的发布,国内业界首个视频识别与定位工具集 PaddleVideo 也迎来了重磅更新。

PaddleVideo 在实际工业界可以形成很多具体应用,包括:视频精彩片段预测、关键镜头定位、视频剪辑等任务,例如定位 NBA 篮球赛视频中扣篮镜头,电视剧中的武打镜头等。如下图所示:

本文末尾,为广大算法和开发同学准备了 PaddleVideo 模型实战的应用案例,视频剪辑、素材拼接和标题生成工作完全是程序模型自动完成的,极大地减轻了人力剪辑的工作量,效果也还不错。不过,在看具体模型具体应用之前,让我们可以先来了解一下 PaddleVideo。

1.PaddleVideo 是什么?

PaddleVideo 是飞桨在计算机视觉领域为用户提供的模型库 PaddleCV 中的视频识别与定位部分的模型库。PaddleVideo 的全部模型都是开源的,用户可以一键式快速配置模型完成训练和评测。

PaddleVideo 目前视频分类和动作定位模型包括:

2.重磅更新内容详解

本次重磅更新要点如下:

  • 增加动作定位模型 C-TCN,该模型是 2018 年 ActivityNet 夺冠方案。

  • 增加已发布的模型骨干网络,Non-local 模型增加 ResNet101 和 l3d 网络结构

  • 优化已经发布的分类模型,NeXtVLAD 训练速度提升 60%,TSM 训练速度领先同类框架 39%

首先是动作定位模型 C-TCN。在介绍模型前,需要了解一下 ActivityNet。

ActivityNet 是目前视频理解领域影响力最大的赛事,与每年的顶级学术会议 CVPR 一起召开。在 2019 年的竞赛中,百度公司计算机视觉团队获得视频动作提名、视频动作检测两项任务的冠军,并在新增任务 EPIC-Kitchens 动作识别挑战赛中获两项测试集冠军(Seen kitchens 和 Unseen kitchens)。这已是百度视觉团队连续三年在 ActivityNet 相关赛事中斩获冠军。

了解了 ActivityNet 比赛的含金量,我们快来看一下第 1 条更新:C-TCN 模型。

2.1.动作定位模型 C-TCN

问题背景:定位视频中特定类别的时序动作片段的动作起始时间和终止时间点并正确识别动作类别。

研究现状:当前的主流做法是将视频特征 (时间维度 T*C 单帧图像特征维度) 沿着时间维度做一维卷积设计各种网络结构 1D-TCN,我们实验发现随着网络加深之后网络的分类 loss 较浅层网络结构会差很多,也就是说类别信息在 1D 时序卷积网络中会随着网络变深而慢慢丢失,如下图所示。因此,我们设计了 C-TCN,2D 的保留类别信息的卷积,并且实验证明了 C-TCN 的有效性。

CTCN 卷积的过程如下图:

SSD+FPN 框架加入了 CTCN 后,整个网络结构如下图:

在 THUMOS14 和 ActivityNet1.3 上都取得了较好的结果,如下图:

2.2.Non-local 模型增加 ResNet101 和 l3D 网络结构

具体来说,开发者选 Non-local 这个模型,之前版本只提供了最简单的网络结构,Resnet50 + C2D,此次版本更新,增加了两个复杂一些的网络结构:Resnet50 + I3D,和 Resnet101 + C2D。

这里给大家解释一下 Non-local 模型的意思。

在 CVPR 2018 收录的论文里有一篇叫《Non-local Neural Networks》。论文中,作者提出了 non-local operation 来解决 CNN 网络中的 long-range dependencies 问题。在论文中, 作者提出了 non-local operation 作为一种通用的神经网络的 building block 来捕捉基于 long-range 的依赖关系。受到经典的 non-local means 方法的启发, non-local operation 会将某一位置的响应当做是一种从特征图谱所有位置的加权和来计算。

该 building block 可以插入到现在计算机视觉的许多模型当中, 进而可以提升分类, 检测,分割等视觉任务的性能表现。

在 PaddleVideo 模型库中 Non-local 模型专门用于视频分类任务。

还有第 3 条更新: 优化已经发布的分类模型,NeXtVLAD 训练速度提升 60%,TSM 训练速度领先同类框架 39%。

2.3.NeXtVLAD 训练速度提升 60%,TSM 训练速度领先同类框架 39%

以上的速度提升是指在同样的硬件配置下,训练速度比之前有了很大的提升。经过此次更新,NeXtVLAD 模型训练速度比 TensorFlow 快约 1.88 倍。采用的优化方法是将数据预处理部分浮点数相关的运算转移到 GPU 上使用 Paddle Op 进行计算,而 CPU 上则使用 uint8 数据类型,可以大幅减小从 CPU 到 GPU 数据拷贝的开销。

3.模型训练、测试和推断

接下来,教大家如何使用 PaddleVideo 中模型,以本次重磅更新的模型 C-TCN 为例子。

首先进入 GitHub 的 PaddleVideo 相关页面,地址如下:

  • https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/PaddleVideo?fr=jqzx2

通过 gitclone 命令下载代码到本地。代码结构说明如下:

3.1.数据准备

C-TCN 模型使用 ActivityNet 1.3 数据集,具体下载方法请参考官方下载说明(http://activity-net.org/index.html)。在训练此模型时,需要先对 mp4 源文件抽取 RGB 和 Flow 特征,然后再用训练好的 TSN 模型提取出抽象的特征数据,并存储为 pickle 文件格式。我们将会提供转化后的数据下载链接。转化后的数据文件目录结构为:

同时需要下载如下几个数据文件:Activity1.3_train_rgb.listformat,Activity1.3_val_rgb.listformat,labels.txt,est_val_label.list,val_duration_frame.list,并放到 dataset/ctcn 目录下。

3.2.模型训练

数据准备完毕后,可以通过如下两种方式启动训练:

  • 从头开始训练,使用上述启动脚本程序即可启动训练,不需要用到预训练模型。

  • 可下载已发布模型通过--resume 指定权重存放路径进行 finetune 等开发。

训练策略:

  • 采用 Momentum 优化算法训练,momentum=0.9。

  • 权重衰减系数为 1e-4。

  • 学习率在迭代次数达到 9000 的时候做一次衰减。

3.3.模型评估

可通过如下两种方式进行模型评估:

  • 使用 scripts/test/test_ctcn.sh 进行评估时,需要修改脚本中的--weights 参数指定需要评估的权重。

  • 若未指定--weights 参数,脚本会下载已发布模型进行评估。

  • 运行上述程序会将测试结果保存在 json 文件中,使用 ActivityNet 官方提供的测试脚本,即可计算 MAP。

3.4.模型推断

可通过如下命令进行模型推断:

  • 模型推断结果存储于 CTCN_infer_result.pkl 中,通过 pickle 格式存储。

  • 若未指定--weights 参数,脚本会下载已发布模型进行推断。

以上也是 PaddleVideo 中所有模型的具体使用方法。

4.典型案例

PaddleVideo 目前已经在典型领域有一些实际应用,我们来看一个实际的视频剪辑集锦;案例:《伤心镜头集锦:看谁最能打动人心》

值得一提的是,以上视频并不是人工剪辑的,完全是结合知识图谱做出的智能化视频生产。具体来说,首先运用知识图谱的能力,我们根据视频标题可以找到很多包含某些特殊动作类别的视频,然后再运用 localization 的技术可以把每个视频中的这些片段剪辑出来,组合成一个新视频,然后用 NLP 的技术生成视频标题分发出去。如果你觉得很有趣,不妨点击文末的项目地址试了解一下。

好啦,本期飞桨 PaddleVideo 的介绍就告一段落啦。如果有兴趣的同学,可以加入官方 QQ 群,您将遇上大批志同道合的深度学习同学。

飞桨官方 QQ 群:432676488

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

工程计算机视觉其他智能领域视频对象检测视频识别视频分类
1
相关数据
SSD技术

一种计算机视觉模型。论文发表于 2015 年(Wei Liu et al.)

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

推荐文章
暂无评论
暂无评论~