全球视频云创新挑战赛算法赛道第一名比赛攻略

news2024/11/24 22:54:14

关联比赛:  “新内容 新交互”全球视频云创新挑战赛--算法挑战赛道

Richardzuo比赛攻略

赛题背景与理解

视频物体分割(Video Object Segmentation)是计算机视觉最近两三年兴起的⼀个研究领域,其⽬的是从视频所有图像帧中把感兴趣的物体区域的分割出来。与视频物体跟踪不同,视频物体跟踪只要求得到每帧图像中感兴趣物体的包围框,⽽视频物体分割必须精确到图像的每个像素,因此是⽬前计算机视觉领域最难的任务之⼀。

目前的视频物体分割可以分为三个类别:半监督视频物体分割、无监督视频物体分割和交互式视频物体分割。其中,半监督视频物体分割是给定用户感兴趣物体在视频第一帧图片上的分割区域,算法来获取在后续帧上的物体分割区域。无监督视频物体分割是全自动的视频物体分割,除了视频外,没有其他任何输入。其目的是全自动分割出视频中显著性的物体区域。交互式视频物体分割的输入不是第一帧物体的掩码,而是某帧图像上少量用户交互信息,算法需要根据用户交互信息在整个视频中分割处感兴趣物体。在这三个类别中,半监督视频物体分割算法是所有视频物体分割的基础,无监督视频物体分割最具有挑战性。

⼀般来说,⼈是视频中最重要的内容,精确地分割出视频中的⼈体区域在各个领域中均有着重要应⽤前景,如切换⼈物背景、合成⼴告、抠图等。可以说,视频⼈物分割对视频的⼆次创作有着极为重要的意义,⾼精度的视频⼈物分割算法结合⼴⼤⽤户们⽆限的想象⼒会创造出众多意想不到的玩法与应⽤,也会为企业创造许多有趣、有意义、有价值的商业应⽤空间。
 

enter image description here


较于⼀般的VOS任务,专注于⼈体区域的分割算法难度更⼤,主要原因在于:

  • ⼈体往往有各种各样的⼿持物(如杯⼦、球拍、⻝物、餐具等)与附属物(如项链、帽⼦、⼤⾐、提包)等,这些附属物的语义信息与纹理信息与⼈体有着较⼤差异,⽽且附属物类别众多,尺度不⼀,如何准确地识别出各种附属物是本任务的难点之⼀;

  • ⼈体动作幅度、类型变化较⼤。不同于DAVIS等数据集中的其他物体,如⾃⾏⻋、⻜机、汽⻋等刚性物体,⼈体是柔性的,这意味着在⼀段视频⾥同⼀个⼈体的外观与形态会有较⼤的差异;此外,⼈体可能还会有较⼤的动作幅度,如跳舞、运动等类型的视频,肢体的动作幅度远远⼤于其他常⻅动物。

  • 当⼈物背景较为复杂或者区域内⼈体较多时,会出现严重的遮挡情形。如何处理这些复杂情况仍是⼀个难以解决的问题。
     

    enter image description here


    就精度来说,半监督算法的精度明显⾼于⽆监督算法的精度,这是由于视频第⼀帧的GT信息已经包含了⾮常丰富的先验信息,包括⼈体数量、⼈体区域、背景区域等,⽽且是精确到像素级别的先验信息。就实⽤性程度来说,⽆监督算法的实⽤性与应⽤前景则远⾼于半监督算法,毕竟标注精确到像素级别程度的⼈体区域是⼀项⾮常耗时且枯燥的⼯作,费时费⼒,⽽且需要有专业的标注⼯具,这会严重限制算法的应⽤场景。由于⽆监督的视频分割算法应⽤前景更加⼴泛,已经有越来越多的学者致⼒于此研究。⽬前⽐较常⻅的思路是先使⽤图像分割算法处理视频的第⼀帧图像,⽣成接近于GT的Mask分割结果,以此作为伪标签来将⽆监督分割任务转化为半监督分割任务。这种做法充分利⽤了⽬前⽐较成熟的图⽚分割算法与半监督视频分割算法,将⼆者结合起来进⾏解决⽆监督视频分割任务,实现过程简单可靠,有着较好的发展前景,这也是本次竞赛中采用的思路。

核心算法

enter image description here


STM算法在VOS领域取得了较大的成功,其使用记忆力网络来存储过去帧的检测特征,并利用时空注意力机制将过去帧特征与当前帧特征的每个像素点进行匹配,这充分利用了之前检测结果的先验信息,对于遮挡情形以及剧烈运动情形有着很好的处理能力。
 

enter image description here


然而,STM算法也存在许多问题,其Non-local匹配机制虽然可以很好的利用之前帧检测结果的特征,但也很容易出现一个目标匹配到多个目标的问题,特别是不同目标之间有着相似外观的时候。对此KMN网络提出了kernelized memory reader方法。具体来说,该方法首先筛选出Memory特征中与当前帧特征最匹配的一个点,以此为中心点构建高斯核,以此抑制远离该点区域的特征响应。这种Memory reader可以有效抑制外观相似目标的错误响应,防止STM算法检测出多个相似目标。
 

enter image description here


KMN存在有空间不连续的问题。当不同目标具有相似外观时,得到的最匹配特征点很容易出现在其他目标区域,出现目标匹配错误情形。
 

enter image description here


总结如下STM,KMN算法的主要问题如下:

  • 特征缺少空间连续性: Memory reader的Non-local注意力机制忽略了特征的空间连续性
  • 训练速度慢: 由于视频段物体数量不同,STM使用单块GPU跑一个视频,造成显存分配不均衡。目标数量过多时显存不够,过少时显存又过剩。经过实测,一个720x1280的视频段,目标数量大于4且图片数量大于100帧时,只有32GB的V100 才能满足训练要求
  • 误差累积: 由于训练视频段只有3帧图片,推理视频段却有上百帧的图片。如此大的gap会导致STM算法在推理时鲁棒性很差,易造成误差的累积与放大

​ 对此,我们的解决思路是:

  • 使用带有spacial-constrain的kernelized memory reader模块来提高特征的空间连续性,提高目标的匹配精度。其结构如图:

    enter image description here

     

    enter image description here

其次,提出将STM算法改进为更纯粹的单目标分割算法,在加载数据时便将视频段的多个目标拆解为单个目标,而不是在模型计算的时候在模型内部拆分。这样做的好处是可以确保模型接触的视频段全部为单目标视频段,目标数目固定,方便了网络的训练与推理。确保可以根据显存数量来自由设置batchsize。原STM算法,在训练天池的人物分割数据集时,在不改变原分辨率(720x1280)的情况下,只有32G显存的v100可以跑得动一个视频段,除此以外任何一张显卡也不行,哪怕是总显存已经超过32G的多张卡并联也不可以。

改进后的单目标STM算法只负责模型计算,将多目标拆分工作交给了数据集加载部分,将多目标聚合工作交给了推理代码。这种更加纯粹的单目标STM算法使得模型更加关注计算本身,而无需负责多目标的拆分与聚合。使得模型可以自由的根据显存大小设置batchsize,同时也可以使用多张显存不大的显卡并行训练或推理。结构如图:
 

enter image description here


经过实测,当使用720P分辨率的天池人物分割数据集时,原始STM算法的训练和推理过程只能使用32G显存的V100显卡来进行,除此之外使用任何一张显存小一点的显卡都不行,而经过改进后的单目标STM算法可以自由选择选择,使用4x3090进行训练时,设置batchsize=8,即每个显卡负责训练两个目标,训练速度远远超过单张v100的训练速度。

最后,在训练阶段引入re-id噪声,让网络主动适应这种混淆噪声,以提高算法的鲁棒性。具体过程为,在生成当前帧的预测结果之后,随机选取一个50x50的区域,将此区域内的背景、前景倒换,以模仿模型在推理过程中的混淆问题。

这种引入re-id噪声来进行对抗训练的方法有效地避免了STM算法过度信任Memory中的缓存帧,防止了误差的累计与放大,显著的提高了单目标STM算法的精度。训练策略如下:

enter image description here

比赛经验总结和感想

阿里云&intel 举办的本次比赛定义为算法赛道,团队在参赛过程中发现无监督的Video Object Segmentation算法十分依赖实例分割的先验与时序Propagation网络的相互配合,比赛过程中,团队研究并选取了Propagation效果较好的STM网络并对其空间限制缺失的情况进行改善,利用历史memory产生Spatial-Constrain Kernel对人物出现的空间位置进行限制,最终能够解决绝大部分的ID Switch的情况,其次团队选取了分割边界较为好的SOLOv2作为实例分割的网络,产生很好的实例分割结果,最后团队借鉴Video Object Tracking的思路,建立Tracking Score来决定最终的显著性目标及初始帧,将Propagation和Segmentation很好的结合在了一起。

​ 其次,本次比赛在工程方面,团队使用了intel提供的BF16加速指令,使得模型推理速度提升200%+,通过对CPU计算能力与网络大小的均衡,团队指定出了最佳的推理策略,并针对数据集每段视频Object数量不同造成的负载不均衡问题进行了解决,最终团队以第二名的分数进入总决赛,无多模型、分辨率融合的情形下,Mean J&F达到88.8,200段视频的CPU推理时间仅为4个小时!

​ 视频是跨向通用视觉AI的一道门槛,当AI算法能够真正理解视频的时候,它或许才能够理解人类视觉的原理,视频技术将成为新视觉AI一个亟待攻克的难关,团队将一直关注并尝试解决视频领域已知的难题,希望推动通用视觉AI的发展与进步

查看更多内容,欢迎访问天池技术圈官方地址:全球视频云创新挑战赛算法赛道第一名比赛攻略_天池技术圈-阿里云天池

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

指针 (五)

一 . 字符指针变量 在指针的类型中,有一种是字符指针:char * ,用法如下: 下面我们通过一道试题来加深理解: 看着这个运行结果,是不是跟自己心中预想的答案有一些出入呢?下面为诸君解读一下&…

VS中.NET项目中央包管理和多目标框架配置

引言 通常我们在做项目时会给不同的程序员分配不同的功能模块进行各自开发,当然要遵守一定的约定或同一的框架设计。这在同一个工程中就会出现不同的项目类库需要引用,而这些类库可能会引用一些Nuget包,对于这些包的管理如果都在每个项目中去…

凸优化学习(1)——什么是凸优化、凸集、凸函数

🍅 写在前面 👨‍🎓 博主介绍:大家好,这里是hyk写算法了吗,一枚致力于学习算法和人工智能领域的小菜鸟。 🔎个人主页:主页链接(欢迎各位大佬光临指导) ⭐️近…

铲屎官都该知道的除浮毛神器——希喂、美的、352宠物空气净化器

为什么明明在南方,却能感受到北方柳絮漫天飞舞,鼻子被堵住的感觉?这都是家里的猫咪在作怪。最近我感觉家里的空气特别闷,打开窗户通风了很久都没什么用就没去管了。早上起来的时候鼻子异物感很重,甚至还咳嗽不止&#…

Android TextView 学习备忘

android:gravity 与 android:layout_gravity: Android TextView文本位置_mob649e8166858d的技术博客_51CTO博客https://blog.51cto.com/u_16175509/8597723

【重学 MySQL】三、RDBMS 和非 RDBMS

【重学 MySQL】三、RDBMS 和非 RDBMS 关系型数据库(RDBMS)关系型数据库的核心概念关系型数据库的优点关系型数据库的缺点 非关系型数据库(非 RDBMS)定义与特点主要特点常见类型应用场景优缺点NoSql 的演变早期阶段(20世…

langgraph tool如何发送自定义事件

在工具调用过程中,如何将中间状态返回到的stream,可以使用from langchain_core.callbacks import dispatch_custom_event方法实现。示例如下 from langchain_core.callbacks import dispatch_custom_event from langchain_core.tools import tooltool d…

分布式技术概览

文章目录 分布式技术1. 分布式数据库(Distributed Databases)2. 分布式文件系统(Distributed File Systems)3. 分布式哈希表(Distributed Hash Tables, DHTs)4. 分布式缓存(Distributed Caching…

QT 联合opencv 易错点

https://blog.csdn.net/qq_51699436/article/details/135777911 网上已经有大量优秀切详尽的文章来讲述QT联合opencv了,我把容易出错的点列出来备忘 1、在进行opencv进行编译时,要确认好是32位还是64位,因为在创建QT项目的时候QT和opencv要匹…

Vue(7)——工程化开发

目录 工程化开发 组件化开发 普通组件的注册使用 局部注册 全局注册 组件三大组成部分说明 template style script 组件通信 父子关系 prpo prpos校验 类型校验 其他校验 prop与data、单向数据流 工程化开发 工程化开发模式:基于构建工具的环境…

LLM大模型学习:AI大模型原理、应用与未来趋势!

1. 引言 在自然语言处理(NLP)与人工智能(AI)的广袤星海中,大语言模型(Large Language Models, LLMs)宛如一颗璀璨的星辰,正悄然改变我们与语言和机器的互动方式。本章将引领您步入一…

Python从入门到高手1.1节-在windows中安装Python

1.1.1 为什么要安装Python解释器? Python是一种解释型语言,代码的执行需由解释器来逐行读取、转换成机器语言并执行。没有Python解释器,我们编写的Python代码便无法在计算机中运行。 同学们对语言翻译器一定不陌生,我们通过翻译器…

MySQL之DQL-分组函数

1、分组函数 1. 分组函数语法 分组函数也叫聚合函数。是对表中一组记录进行操作,每组只返回一个结果。我们只讲如下5个常用的分组函数: 分组函数 含义 MAX 求最大值 MIN 求最小值 SUM 求和 AVG 求平均值 COUNT 求个数 分组函数的语法如下…

一款企业网盘,支持多种文件存储方式如FTP,SFTP,MINIIO等以及跨平台管理(附源码)

前言 随着数字化转型的推进,企业越来越依赖于云端技术来存储、管理和共享重要的业务文件。传统的本地存储处理方案虽然可靠,但在灵活性、可访问性和协作方面显得力不从心。尤其在远程工作变得日益普遍的今天,如何高-效地管理分散团队之间的文…

【IEEE独立出版 | 往届快至会后2个月检索,刊后1个月检索】2024年第四届电子信息工程与计算机科学国际会议(EIECS 2024)

在线投稿:学术会议-学术交流征稿-学术会议在线-艾思科蓝 电子信息的出现与计算机技术、通信技术和高密度存储技术的迅速发展并在各个领域里得到广泛应用有着密切关系。作为高技术领域中重要的前沿技术之一,电子信息工程具有前瞻性、先导性的特点&#x…

代码随想录训练营day42|188.买卖股票的最佳时机IV,309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费

188.买卖股票的最佳时机IV 变成了最多可以买卖k只股票 class Solution { public:int maxProfit(int k, vector<int>& prices) {vector<vector<int>> dp(prices.size(),vector<int>(2*k1,0));for(int i1;i<2*k1;i2){dp[0][i]-prices[0];}//初始…

【ESP32】fopen 无法创建.html文件

Long filename support设置为Long filename buffer in heap 后fopen正常创建.html文件

springBoot 集成https

springBoot 集成https 1、springBoot默认的证书格式 pring Boot 需要 .p12 或 .jks 格式的证书。如果你只有 .pem 和 .key 文件&#xff0c;可以使用 openssl 工具将它们转换成 .p12 文件 2、转换.p12 我的证书文件如下&#xff0c;需要转换 2.1 下载openssl https://slpr…

C#EF框架

EF概念: 实体框架&#xff08;Entity Framework&#xff09;是一种对象关系映射器&#xff08;O/RM&#xff09;&#xff0c;它使.NET开发人员能够通过.NET对象来操作数据库。它消除了开发人员通常需要编写的大多数数据访问代码的需求。ORM框架有个优势&#xff1a;解放开发人…

游戏开发| Unreal5.2-5.4接入chatGPT定制游戏NPC

引擎版本UE5.2 (也支持到5.4,有试用其它插件所以选择之前版本) 使用插件(免费) 1.VArest (插件官方介绍:Plugin that makes REST communications much easier.)可以让REST(Representational State Transfer)通信变得更加容易,涉及客户端与服务器之间通过 HTTP 协议…