GTLC全球技术领导力峰会·上海站,首批讲师正式上线! 了解详情
写点什么

OPPO 研究院行为识别技术新进展:结合前景分支模型,提高真实复杂场景人体行为识别能力

2020 年 6 月 25 日

OPPO研究院行为识别技术新进展:结合前景分支模型,提高真实复杂场景人体行为识别能力

OPPO 研究院智能感知与交互研究部近期在国际顶级计算机视觉会议 CVPR 的多项比赛中获得领先成绩,本文将对其中一项研究成果进行概要性介绍。在论文《Visual Localization Using Semantic Segmentation and Depth Prediction》中,研究团队为视频行为识别提出了全新的工作流程,极大地提高了处理效率与识别精度。


1 背景

行为检测识别是计算机视觉近些年的一个重要发展方向,从基于 Kinetics 的 trimmed activity recognition 任务,到基于 AVA 的 spatial-temporal action localization 任务,逐步往更细致化、实用化的方向发展,核心聚焦于识别何时何地发生了什么行为。本次 ActivityNet Task D ActEV SDL, 属于真实场景的行为识别,主要基于 MEVA 数据进行研究。



目前在 spatial-temporal action localization 问题上,比较主流的方法是先单独提取人体检测结果,将视频输入 3D Conv 模型,在最后的 feature map 上结合检测结果进行特征提取。在 AVA(Atomic Visual Actions)数据库中定义的行为都是原子级的,持续时间短,因此用一帧的检测结果就能抽取对齐的行为特征。


然而在真实场景 MEVA 数据库上,主要会面临如下新问题:


  1. 原始视频分辨率高,人体尺寸小,为了保证召回,不能对图像进行缩放预处理,全图抽取 3D Conv 特征计算复杂度极高。

  2. MEVA 定义的行为非原子级别,行为持续时间不固定,人体框移动范围大,无法用单帧检测结果准确描述特征。

  3. 行为定义复杂,涉及人体行为,车辆运动行为,人车交互行为。

  4. 场景多样性,包含室内、室外、人流高密度等复杂场景。


2 方法

ActEV SDL 是 ActivityNet20 guest task,由美国标准局 NIST 主办,需要参赛者提交整套软件系统,从而保证结果公平性、可复现,这里从系统框架开始介绍整体解决方案。


系统框架:



上图是我们的系统框架,检测跟踪用于提取人体和车辆 tracklet;候选生成模块用来处理原始 tracklet 结果,生成后续行为分类所需的固定长度切片及人车交互片段;行为分类模块基于 tracklet 切片,裁剪局部范围上下文区域,结合检测结果及 3D Conv 进行分类;结果融合模块将结果切分的 proposal 结果再进行融合,形成最终结果。本工作主要聚焦于行为分类,后面介绍行为分类主体网络。


主体网络:



首先我们将行为识别任务分成人相关 19 类、车相关 6 类以及人车交互相关 8 类,总共三个分类模型。



其次,我们基于 tracklet 切片结果,设计了上下文区域选取逻辑,保证两个条件:第一,选取区域在整个视频片段中固定,而非随着人体位置变动而偏移;第二,包含一定背景区域,这对于一些交互性行为类别很有帮助。最终的选取原则是,基于 tracklet 切片中间帧的中心位置为区域中心,裁剪的长宽为中间帧检测长宽最大值的两倍。后续实验结果证明,该上下文区域选取有较好的效果。



我们的 3D Conv 模型类似于 SlowFast 的结构,但对两个分支都进行了修改以适应 MEVA 数据行为的特点:低帧率的 SlowPath,在最后一层特征上不进行检测框的特征提取,以保留所有上下文信息;高帧率的 FastPath 在最后 feature map 上结合时域对齐后的多帧检测结果,经过 multi-frame RoiAlign,提取到了 multi-frame feature 再 concatenate 进行分类,充当了一个前景分支的作用。这样的好处是例如骑自行车、进出门等行为类别,检测框在短时间内移动得非常明显,基于单帧抽取的 feature 存在明显的不对齐问题,因此 multiframe 特征能更好地对行为进行描述。分类实验结果也表明这个操作在 MEVA 上优势明显。


3 效果


上图是分类模块的实验结果,可以从人体 19 分类的任务结果看出,多帧对齐特征的优势明显,尤其在开关门、进出场景、骑自行车等类别。



上图是 NIST 测试集上最终的指标结果,PARTIAL AUDC*是评价指标,我们一共提交了两个版本的软件解决方案,一个采用 Ensemble 策略以及 5FPS 的检测频率,另一个未采用 Ensemble 以及稍低的检测 FPS,两者在运行时间上有较大变化,在指标上仅有一个点的差异。



该比赛吸引了全球范围很多行为识别方面的顶级研究机构,例如 UCF、CMU、UMD、Purdue、IBM 等,最终 OPPO 取得了第三的成绩。


2020 年 6 月 25 日 14:001392

评论

发布
暂无评论
发现更多内容

Linux 平均负载高了怎么办?

小林coding

Linux 问题处理 linux命令

白鹭引擎助力《迷你世界》研发团队开发3D小游戏版

DT极客

微服务-技术专题-初步介绍服务发现

李浩宇/Alex

Java 技术 微服务

最佳实践:使用阿里云CDN加速OSS访问

阿里云Edge Plus

CDN

Java NIO 是 NIO么?

soolaugust

Java io nio

SpringMVC-技术专题-支持可版本管理的Restful接口

李浩宇/Alex

springmvc

C++ 手把手教你实现可变长的数组

小林coding

c++ 编程 数组

经济优势再显,江苏如何通过职教打造人才高地?

InfoQ_967a83c6d0d7

区块链:在发展的同时,准备好你的产品。

石云升

区块链 DCEP 创新

央行发行的数字货币会带来哪些变化?

石云升

区块链 数字货币 DECP

微服务-技术专题-使用 API 网关构建微服务

李浩宇/Alex

微服务

企业应用开发或迎新趋势 “低代码平台”备受追捧

爱极客侠

C++ 模板常见特性(函数模板、类模板)

小林coding

c++ 编程 模板方法

Java-技术专题-final关键字

李浩宇/Alex

2. 整体把握 CocoaPods 核心组件

Edmond

ruby ios swift CocoaPods 包管理工具

云计算的可信新边界:边缘计算与协同未来——【两万五千字长文】

华为云开发者社区

云计算 云原生 5G 边缘计算 云服务

微服务架构的整套解决方案

xcbeyond

架构 微服务 IT建设

C++ 赋值运算符‘=‘的重载(浅拷贝、深拷贝)

小林coding

c++ 编程 浅拷贝和深拷贝

C++ 流插入和流提取运算符的重载

小林coding

c++ 编程

使用 Golang 和 HTML5 开发一个 MacOS App

郭旭东

go macos

排序算法一(冒泡排序、选择排序、插入排序)

xcbeyond

Java 算法 冒泡排序 选择排序 插入排序

排序算法二(归并排序、快速排序、希尔排序)

xcbeyond

Java 算法 快速排序 归并排序 希尔排序

C++ 运算符重载的基本概念

小林coding

c++ 编程

C++ 自增、自减运算符的重载和性能分析

小林coding

c++ 编程 运算符

高效程序员的45个习惯:敏捷开发修炼之道(2)

石云升

读书笔记 敏捷开发 对事不对人 欲速则不达

C++ static 与 const 的认识

小林coding

c++ 编程 static关键字

Go语言专家测试,80%的人第一题就挂了!

博文视点Broadview

go 云原生 评测

知识点梳理:聊聊iOS SDK数据采集那点事儿

易观大数据

SpringCloud(Netflix)-技术专题-Ribbon的基本使用

李浩宇/Alex

Java 技术 SpringCloud

职教黄金时代,河南如何继续“乘风破浪”?

InfoQ_967a83c6d0d7

Volcano:带你体验容器与批量计算的碰撞的火花

华为云开发者社区

Kubernetes 容器 分布式 Volcano 批量计算

DNSPod与开源应用专场

DNSPod与开源应用专场

OPPO研究院行为识别技术新进展:结合前景分支模型,提高真实复杂场景人体行为识别能力-InfoQ