1秒钟打造智能化视频内容生产利器

简介: MEDIA AI阿里巴巴文娱算法挑战赛冠军方案分享


视频目标分割是目前视频算法领域的前沿话题,越来越多的应用在了各个行业场景里。本次由英特尔与阿里云联合举办、与优酷战略合作的“新内容 新交互“全球视频云创新挑战赛算法赛道,也将目光聚焦于这一个领域。大赛自开赛以来,已经吸引了2000多支队伍参赛,汇聚了全球算法精英。

本文将以“Media AI 阿里巴巴文娱算法挑战赛”为例,精选出由优酷人工智能部算法团队提出的冠军方案,为本届大赛选手提供成功的参赛经验和技术解读。

除传统分割算法需要解决的视角光照变化、目标尺度变化、目标间遮挡等难点之外,面向视频智能生产的人物分割算法还需要关注如下特殊难点:

  • 视频场景内容丰富多样:要求算法在复杂背景干扰下正确发掘场景显著主角
  • 复杂衣着/手持/附属物:要求算法充分描述目标丰富和复杂的外观语义
  • 目标人物快速剧烈动作:要求算法解决运动模糊、剧烈形变带来的误分割、漏分割

Media AI大赛的数据集面向高精度-实例级-视频人物分割任务,提供了1700段逐帧精细标注视频数据,其中初赛和复赛各800段训练集和50段测试集,对上述难点都有体现。

相比于学术/工业界标准的DAVIS和YouTube-VOS数据集,本数据集含有业界最多人体目标标注标签(18万帧,30万标注人体目标),且在标注精度、内容广度等方面均处于行业领先地位。这次数据库依托优酷站内海量资源,囊括古装剧集、现代剧集、街拍、街舞、运动(跑酷、球类、健身)等丰富内容,更加符合智能化视频内容生产的现实需求。经过精细化人工标注,数据集真值掩码图精准勾勒视频人物的边缘细节,为训练以及测试分割算法的准确性和精确性提供了依据。

此外,该数据集还针对人物手持物/附属物进行了标注,有助于算法对人物与物品从属关系进行学习。

冠军方案算法详解

在初赛阶段,优酷人工智能部算法团队以STM(Video Object Segmentation using Space-Time Memory Networks)为基础,进行了彻底的模型复现和以及算法改进。在复赛阶段,以初赛半监督模型为骨干,配合以目标检测、显著性判别、关键帧选择等模块,实现高精度无监督视频分割链路。

  1. 监督视频人物分割

半监督VOS的任务目标是在给定第一帧物体掩码的前提下,将该物体在后续帧中连续分割出来。

  1. 1 基本框架
  • 提出Spatial Constrained Memory Reader以解决STM空间连续性不足问题

首先STM在像素匹配时是基于外观的匹配,没有考虑物体在相邻两帧之间空间上的连续性。换言之,STM会寻找与前面帧中外观相似的物体,但对该物体出现在何位置不敏感。因此,当一帧中出现多个外观相似物体时,STM的分割结果就有可能产生错误。针对这个问题,DAVIS2020半监督第一名方案的解决方法是将前一帧的物体mask结合到encode之后的feature中,降低离前一帧物体位置较远像素的权重(如图1所示)。实际尝试后发现增益不大。我们认为原因在于训练过程中给与模型过强的位置先验,导致模型分割过分依赖于前一帧的物体位置信息,约束了non-local的长距离匹配能力。一旦出现前一帧物体被遮挡,或者前一帧物体分割错误的情况,整段视频的分割结果将出现不稳定性偏移。

image.png

图1. Spatial-contrained STM

DAVIS2020半监督第三名方案对此的解决方案是kernelized memory reader(如图2所示),这种方法能保证memory中的点会匹配到query中最相似的一个区域,可以避免出现一对多匹配的问题。但是不能保证空间上的连续,容易出现不可逆的误差累积

image.png

图2. Kernelized-memory STM

综合考虑上述两种方法,我们提出了一种既能考虑前一帧物体位置信息,又不影响原始匹配训练过程的方法。如图3所示,利用前一帧的物体mask生成位置大小相关的高斯核,通过这个高斯核来修正memory中像素的最优匹配位置。之后流程和图2相似,利用每个像素的最优匹配位置对原始匹配进行修正。如此一来,既没有影响训练过程,导致non-local部分匹配能力降低,又引入了spatial prior,保证了物体mask的空间连续性。

image.png

图3.Spatial-contrained Mmeory Reader示意图

  • 增加ASPP & HRNet post-refinement以解决STM解码器对多尺度目标分割精细度较差问题

通过ASPP增加多尺度信息的捕获能力,利用HRnet对STM的初始分割结果进行refine,优化物体细节的分割效果。

 

  1. 2 训练策略

在比赛中采用了两阶段训练的方法。第一个阶段,采用MS-COCO静态图像库成视频序列进行预训练。第二个阶段,将公开数据库(DAVIS,Youtube-vos)和比赛训练集进行合并训练,来保证有足够的数据量。具体训练细节如下:

  • Crop相邻3帧图像patch进行训练,尽可能增加augmentation。crop时需要注意一定要保证在第2和第3帧出现的物体都在第一帧出现了,否则应该过滤;
  • 将DAVIS,Youtube-vos和比赛训练集以一定比例融合效果最好;
  • 训练过程指标波动较大,采用poly学习率策略可缓解;
  • 训练比较吃显存,batch size比较小的话要fix所有的bn层。

 

  1. 3 其他
  • Backbone:更换resnest101
  • 测试策略:使用Multi-scale/flip inference

 

  1. 4 结果

优酷算法团队的模型,在测试集上取得了95.5的成绩,相比原始STM提高将近5个点。


  2.   无监督视频人物分割

无监督VOS的任务目标是在不给定任何标注信息的前提下,自主发掘前景目标并进行连续的分割。无监督VOS方法链路较为复杂,通常不是由单一模型解决,其中涉及到目标检测、数据关联、语义分割、实例分割等模块。

 

  2.1算法框架

我们复赛所采用的算法流程具体分为如下四步:

a. 逐帧做实例分割

采用DetectoRS作为检测器,为保证泛化能力,没有在比赛训练集上finetune模型,而是直接使用在MS COCO数据集进行训练。此阶段只保留person类别。阈值设为0.1,目的是尽可能多地保留proposal。

b. 对实例分割的mask进行后处理

如下左图所示,现有instance segmentation的方法产生的mask分辨率低,边缘粗糙。我们采用语义分割模型对DetectoRS产生的结果进行refine(image+mask ->HRnet -> refined mask), 结果如下图。可以看出掩码图中的物体边缘以及细节都有了明显的改善。

image.png

图4. 检测器(DetectoRS)输出掩码图(上)与refine后掩码图(下)

        c. 帧间进行数据关联,得到初步结果

利用STM将t-1帧的mask warp到t帧,这样就可以利用warp后的mask和第t帧的分割结果进行匹配。通过这个过程,补偿了运动等问题产生的影响,稳定性更高。具体的,对于首帧物体,我们保留置信度大于0.8的proposal。对第t-1帧和第t帧做数据关联时,首先利用STM将第t-1帧的结果 warp到第t帧。然后用匈牙利算法对warp后的mask和第t帧由DetectRS生成的proposal进行二部图匹配。

        d. 筛选分割结果较好的帧作为key frames进行迭代优化

经上述数据关联以后,我们已经得到了初步的无监督VOS结果,其中每帧的mask是由DetectRS生成,id是由数据关联决定。但是这个结果存在很多问题,还可以进一步优化。比如说视频开始处出现的漏检无法被补上。如下图所示,左侧的人在视频开始处不易被检测,直到第10帧才被检测出来。另外,视频中人体交叠严重处分割质量要远低于人体距离较大处。

image.png

因此,我们可以根据物体数量,bbox的交叠程度等信息筛选出一些可能分割较好的帧作为下一轮优化的reference。具体的,我们可以利用筛选出来的key frames作为初始memory,用STM进行双向预测。首先双向预测可以解决视频开始处的漏检,其次STM对于遮挡等问题的处理也要好过单帧的实例分割。经实验验证,每迭代一次STM双向预测,指标都有小幅度提升。

image.png

视频目标(人物)分割(Video Object Segmentation,简称为VOS)算法是业界公认的技术重点难点,同时又有着最为广泛的落地场景和应用需求。相信参与本届“新内容 新交互“全球视频云创新挑战赛算法赛道的选手,将以视频目标分割为起点,利用计算机视觉算法领域的诸多技术,为行业和大众打造更加智能化、便捷化、趣味化的视频服务。

相关文章
|
存储 人工智能 自然语言处理
|
存储 安全 数据安全/隐私保护
Token 是什么?全面解析身份认证中的 Token 机制
本文全面解析Token在身份认证中的核心机制,涵盖JWT、Session Token、OAuth等类型,深入讲解其工作原理、安全性策略、生命周期管理及实际应用场景,助力开发者构建安全高效的现代Web应用认证体系。
1513 3
|
SQL Java Shell
OBCP实践 - OceanBase 执行计划
在OceanBase数据库管理系统中,执行计划(Execution Plan)是数据库优化器基于SQL查询语句生成的一种逻辑表示,它详细说明了数据库如何执行SQL查询,包括选择合适的索引、连接顺序、临时数据处理方式、排序算法等一系列操作步骤,最终目的是为了最有效地获取所需数据并返回给客户端。
452 0
|
3月前
|
机器学习/深度学习 数据采集 算法
大模型微调技术综述与详细案例解读
本文是一篇理论与实践结合的综述文章,综合性全面介绍大模型微调技术。本文先介绍大模型训练的两类场景:预训练和后训练,了解业界常见的模型训练方法。在后训练介绍内容中,引出模型微调(模型微调是属于后训练的一种)。然后,通过介绍业界常见的模型微调方法,以及通过模型微调实操案例的参数优化、微调过程介绍、微调日志解读,让读者对模型微调有更加直观的了解。最后,我们详细探讨数据并行训练DDP与模型并行训练MP两类模型并行训练技术,讨论在实际项目中如何选择两类并行训练技术。
|
人工智能 Cloud Native Java
从云原生视角看 AI 原生应用架构的实践
本文核心观点: • 基于大模型的 AI 原生应用将越来越多,容器和微服务为代表的云原生技术将加速渗透传统业务。 • API 是 AI 原生应用的一等公民,并引入了更多流量,催生企业新的生命力和想象空间。 • AI 原生应用对网关的需求超越了传统的路由和负载均衡功能,承载了更大的 AI 工程化使命。 • AI Infra 的一致性架构至关重要,API 网关、消息队列、可观测是 AI Infra 的重要组成。
53464 117
|
人工智能 搜索推荐 机器人
Rasa: 帮助企业更快搭建“AI对话助手”的低代码平台
【2月更文挑战第24天】Rasa: 帮助企业更快搭建“AI对话助手”的低代码平台
475 2
Rasa: 帮助企业更快搭建“AI对话助手”的低代码平台
|
存储 Ubuntu 搜索推荐
构建多用户的 Jupyter 服务器 —— 利用 JupyterHub
【8月更文第29天】**摘要** JupyterHub 是一个易于使用的、可伸缩的、多用户的 Jupyter Notebook 服务器。它允许您在一个集中式服务器上托管多个独立的 Jupyter Notebook 会话,非常适合团队协作和教学环境。本文将详细介绍如何安装和配置 JupyterHub,以及如何利用它来构建一个多用户 Jupyter 服务器环境。
4722 0
|
传感器 物联网 Linux
嵌入式云IOT技术圈公众号精选文章专题汇总
嵌入式云IOT技术圈公众号精选文章专题汇总
261 0
|
SQL 分布式计算 DataWorks
MaxCompute操作报错合集之在创建SQL函数时,遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
431 0