近日, 视频行为理解领域的 ImageNet 竞赛 --ActivityNet Challenge 2018 在 CVPR 会议上落下了帷幕. 来自上海交通大学计算机视觉实验室的团队(自动化系研究生林天威, 苏海昇, 导师赵旭副教授), 获得了未修剪视频中的时序动作定位任务的冠军, 以及时序动作提名任务的亚军. 本文将分享该团队在两项竞赛任务中所采用的算法思路和方案.
引言
理解视频中人的动作和行为, 是计算机视觉领域的挑战性问题, 也是视频内容理解的关键, 极具应用前景. ActivityNet 挑战赛旨在催生视频行为理解的新算法和新技术, 是目前视频行为理解领域数据规模最大, 最具影响力的技术竞赛, 与每年的顶级学术会议 CVPR 一起召开, 已成功举办三届. 今年 ActivityNet 挑战赛共举办 6 项比赛, 吸引了全球计算机视觉领域来自学术界和工业界的诸多团队积极参赛.
近日, ActivityNet Challenge 在 CVPR 会议上公布了 2018 年的竞赛成绩. 来自上海交通大学计算机视觉实验室的团队(自动化系研究生林天威, 苏海昇, 导师赵旭副教授), 获得了未修剪视频中的时序动作定位任务的冠军, 以及时序动作提名生成任务的亚军.
本文将分享上海交通大学团队在两项竞赛任务中的算法思路和方案. 在此次竞赛中, 上交团队主要采用了近期投稿在 ECCV 2018 会议上的时序动作提名生成新方法 - Boundary Sensitive Network (BSN) .
ActivityNet 挑战赛
ActivityNet 挑战赛是目前视频动作理解领域规模最大的竞赛, 涵盖了视频动作分类, 时序动作定位, 视频文本生成等多个方向. 今年的 ActivityNet 挑战赛在规模, 多样性和自然度上较往年均有显著提升, 共举办 6 项竞赛任务, 其中任务 1-3 基于 ActivityNet 数据集, 任务 A,B,C 则为其他视频理解领域内重要的数据集. 目前 ActivityNet 数据集的版本为 1.3, 包括 20000 个 Youtube 视频, 共计约 700 小时, 平均每个视频上有 1.5 个动作片段, 涵盖了共 200 个动作类别. 这些比赛项目具体包括:
任务 1: 时序动作提名生成;
任务 2: 时序动作定位;
任务 3: 视频密集描述生成;
任务 A: 视频动作分类(Kinetics 数据集);
任务 B: 时空动作定位(AVA 数据集);
任务 C: 视频事件分类(Moments-in-time 数据集)
围绕上述 6 项竞赛任务, 今年的挑战赛吸引了来自上海交通大学, 清华大学, 中科大等国内高校, CMU,UMD,UCSB, 华盛顿大学等国外高校, 以及 DeepMind, 百度, 旷视科技, 七牛云, 爱奇艺等企业团队参赛. 比赛由阿卜杜拉国王科技大学视觉计算中心在 CVPR 2018 会议上举办, 得到谷歌, DeepMind,Facebook 等公司的赞助.
竞赛任务及测评方式
本次竞赛中, 上交团队参加了任务 1: 时序动作提名生成, 以及任务 2: 时序动作定位的比赛. 其中, 任务 2 要求在视频序列中确定动作发生的时间区间 (包括开始时间与结束时间) 以及动作的类别. 这个问题与二维图像中的目标检测问题有很多相似之处. 相关算法一般可以分为两个部分:(1) 时序动作提名生成, 产生候选视频时序片段, 类似于 Faster-RCNN 中的 RPN 网络的作用;(2) 动作分类: 即判断候选视频时序片段的动作类别. 两个部分结合在一起, 即实现了视频中的时序动作检测. 从去年起, 时序动作提名作为单项竞赛任务被单独列出(任务 1).
在时序动作定位问题中, mean Average Precision (mAP) 是最常用的评估指标. 此次竞赛计算 0.5 到 0.95, 以 0.05 为步长的多个 IoU 阈值下的 mAP, 称为 Average mAP, 作为最终的测评以及排名指标. 相较于使用 mAP@0.5 作为测评指标, Average mAP 更看重在较严格 IoU 阈值下的检测精度. 时序动作提名任务由于无需对时序片段进行分类, 所以通常使用 average recall (AR) 来进行评估. 在此次竞赛中, Average Recall vs. Average Number of Proposals per Video (AR-AN) 曲线下的面积被作为最终的评测指标. 举个例子, AN=50 时的 AR 分数可以理解为对于每个视频, 使用 proposal set 中分数最高的前 50 个 proposal 时, 所能达到的召回率.
竞赛方案介绍
此次竞赛, 我们主要对我们投稿在 ECCV 2018 会议上的时序动作提名生成算法 - BSN 模型 [1](Boundary-Sensitive Network) 进行了优化与改进. 下面首先对 BSN 方法进行介绍, 之后再介绍此次竞赛中所进行的一些改进.
BSN - 用于时序动作提名生成的边界敏感网络
时序动作检测一般包含两个环节 - 提名和分类. 目前行为分类的精度其实已经比较高了, 而时序动作检测的精度仍然比较低, 所以我们认为其瓶颈在于时序动作提名生成阶段. 高质量的时序动作提名应该具备 (1) 灵活的时序长度;(2)精确的时序边界;(3)可靠的置信度分数. 现有的基于滑窗或 anchor 的方法或是基于聚类的方法都不能同时在这几个方面做好. 因此, 我们在 [1] 中提出了一种新的时序提名生成算法 - Boundary Sensitive Network(BSN). 在 BSN 中, 我们首先去定位时序动作片段的边界(开始节点和结束节点), 再将边界节点直接结合成时序提名, 最后基于所设计的 proposal-level 的 feature 来对每个 proposal 的置信度进行评估. 算法的整体框架图如下图所示, 之后会逐步介绍各个步骤.
特征提取
在特征提取阶段, 我们主要将视频切分成 16 帧不重叠的单元, 然后采用 two-stream network 提取特征. 对于 spatial network, 我们使用每个单元的中心帧提取特征; 对于 temporal network, 我们则使用每个单元的中心 6 帧图像计算得到的光流图像提取特征. 最终将视频图像序列转化为特征序列.
BSN - 时序评估模块
基于提取的图像特征序列, BSN 中的时序评估模块采用 3 层时序卷积层来对视频序列中每个位置上动作开始的概率, 动作结束的概率和动作类别概率同时进行建模, 从而生成动作开始概率序列, 动作结束概率序列和动作类别概率序列.
BSN - 提名生成模块
接下来, 基于上述的几种概率序列, 提名生成模块要生成候选时序动作提名, 并对每个动作提名生成对应的特征描述.
要生成候选时序动作提名, 首先我们选择动作开始和动作结束概率序列中满足以下两个条件之一的时间节点作为候选时序边界节点:(1)概率高于一个阈值 或 (2) 该时间节点的概率高于前一时刻以及后一时刻的概率. 然后我们将候选开始时间节点和候选结束时间节点两两结合, 保留时长符合要求的开始节点 - 结束节点组合作为候选时序动作提名. 算法示意图如下图所示.
接下来要为每个候选时序动作提名生成对应的特征描述, 我们称其为 Boundary-Sensitive Proposal (BSP) feature. 对于每个提名, 我们取其本身的时序区间作为 center region, 再取开始节点和结束节点附近的一段区间作为 starting region 以及 ending region. 对于每个区域, 我们都在动作概率序列上的对应位置采样 N 个点, 拼接后则得到一个非常简短的提名特征. BSP 特征的构成示意图如下图所示.
BSN - 提名评估模块
生成候选时序动作提名以及对应的提名特征后, 我们采用提名评估模块 - 一个简单的 MLP(多层感知机)模型去对每个提名的置信度分数进行估计. 置信度分数越高, 则说明该时序提名与真值的重叠 IoU 应当越高.
结果后处理
最后, 我们需要对结果进行非极大化抑制, 从而去除重叠的结果. 具体而言, 我们采用了 soft-nms 算法来通过降低分数的方式来抑制重叠的结果. 处理后的结果即为 BSN 算法最终生成的时序动作提名.
时序动作检测
基于 BSN 所生成的时序动作提名, 要得到时序动作检测结果, 我们还需要对提名进行分类. 我们此处采用了一种比较简单的方式, 即直接采用动作分类网络所生成的 video-level 的动作类别作为提名的动作类别.
BSN 模型改进
为了在竞赛中获得更好的效果, 我们针对 BSN 算法尝试了多种改进技巧. 对于时序动作提名任务, 主要的改进方式主要包括五点, 包括:
改进 A: 将提名生成模块中的概率阈值从 0.9 改为 0.5*max_score, 其中 max_score 为该视频中的最大概率.
改进 B: 除了采用在 ActivityNet 数据集上预训练的 TSN 网络提取特征, 在竞赛中, 我们还额外采用了在 Kinetics 数据集上预训练的 TSN 和 P3D 网络提取视频特征.
改进 C: 为了获得更好的置信度分数, 我们还与我们之前提出的 SSAD[2]算法所生成的结果进行了融合.
改进 D: 在 ActivityNet 数据集上, 为了方便, 在初始的 BSN 中, 我们会将所有视频的特征序列缩放到一个给定长度. 在竞赛中, 我们发现使用原始长度预测结果会得到更好的效果.
改进 E: 在进一步的分析中, 我们发现按照原始长度预测结果主要是提高了对较短的时序片段的预测结果, 但损害了较长的时序片段的预测效果. 因此, 我们将按原始长度预测的结果和按给定长度预测的结果进行了融合, 获得了更好的效果.
对于时序动作检测任务, 我们同样也采用了上述的改进, 但有两点不同:
在时序动作检测中, 我们采用定长的特征序列预测结果
采用较为严格的 Soft-NMS 阈值
之所以对时序动作提名和时序动作定位采用略为不同的策略, 主要是因为时序动作检测的结果主要依赖于靠前的几个 proposals, 而现有的时序动作提名的评估方式则更看重较多 proposals 时所能达到的 recall. 这也反映了现有的时序动作提名评估方式还存在不合理之处.
实验结果
此处主要介绍我们在此次竞赛中所做的实验, 更多关于 BSN 算法的实验见[1].
时序动作提名生成任务
时序动作提名生成任务的实验结果如下表所示. 可以看出, BSN 方法比起之前的 state-of-the-art 方法有明显的效果提升, 此次竞赛中所实施的各项改进又带来了显著的效果提升. 最终, 在该项目上我们获得了亚军.
时序动作定位任务
时序动作定位任务中的实验结果如下表所示. 可以看出, BSN 方法获得了非常好的效果, 竞赛中实施的改进也非常有效. 最终, 在该项目上我们以较大的优势获得了冠军.
其他实验
为了验证 BSN 算法的有效性, 在 [1] 中我们还做了很多对比实验, 证明了 BSN 算法的优越效果来自于模型结构本身. 此外, 我们还通过实验表明了 BSN 算法有着良好的泛化能力, 能够为训练时没有见过的动作类别生成高质量的时序动作提名. 具体的实验结果和内容详见论文[1].
总结
通过我们对时序动作提名生成和时序动作定位任务的研究, 我们主要有以下几点收获:
动作提名的质量对后续动作定位的效果有很大的影响, 目前改进动作定位的重点在于提高提名集的质量;
提名集中最靠前的一小部分提名片段贡献大部分的定位 mAP;
高质量的时序动作提名应当具备 (1) 灵活的时长 (2) 准确的边界 (3) 可靠的置信度分数.
在后续的工作中, 我们计划开源 BSN 模型, 供研究者使用. 相关进展会更新在 wzmsltw.github.io 上, 希望大家继续关注我们的工作.
[1] T. Lin, X. Zhao, and et al. BSN: Boundary Sensitive Network for Temporal Action Proposal Generation. arXiv:1806.02964, 2018.
[2] T. Lin, X. Zhao, and Z. Shou. Single shot temporal action detection. 25nd ACM international conference on Multimedia, 2017.
本文来自云栖社区合作伙伴新智元, 了解相关信息可以关注 "AI_era".
来源: https://yq.aliyun.com/articles/604497