【AVA数据集】使用YOLO快速制作动作识别数据集(一)

AVA数据集

随便说说:最近开始搞动作识别(action recognition),发现很多框架都选择会兼容AVA格式都数据集,然后就开始研究这个数据集,发现还是有点复杂的,动作的分类、自动打框、追踪之类的。恰好YOLOv8最近可以自动进行track了,似乎可以一次实现完整的数据集构建。所以就开始研究这个内容,再把东西发一下,希望可以对大家有帮助。这篇就先主要介绍一下AVA的数据集的基本内容,以及论文中所叙述的制作方法。

数据集概述

spatio-temporally localized Atomic Visual Actions(简称AVA)是由Google在2018年所发表的一个用于训练动作检测的数据集,该数据集注释430个15分钟电影切片中的80个原子视觉动作,在空间和时间上定位了动作,从而产生了1.62万个动作标签。这个数据中的内容有以下特点

  1. 更多的使用原子动作而不是复合动作(如bow、kneel、jump、sleep等)
  2. 对于每个人有更多的的时空标注(每个人会同时具有多种行为)
  3. 在切片内的标注尽可能的详细(每个切片中的动作种类会尽可能丰富)
  4. 物体在跨段中尽可能的连续(对于出现过的人会有ID进行标注)
  5. 使用电影来收集尽可能多的动作类别

数据集格式

AVA数据集目前有V2.1和V2.2两个版本,此处以V2.2为例,其主要包括以下文件

在这里插入图片描述

  • 动作部分

    • ava_action_list_v2.2.pbtxt:80类原子行为,其部分格式如下

      label {
        name: "bend/bow (at the waist)"
        label_id: 1
        label_type: PERSON_MOVEMENT
      }
      label {
        name: "press"
        label_id: 44
        label_type: OBJECT_MANIPULATION
      }
      label {
        name: "watch (a person)"
        label_id: 80
        label_type: PERSON_INTERACTION
      }
      

      其中的label_type是AVA设计过程中的一个tip,总分为三大类的原子动作

      1. 人的姿势(pose)
      2. 人和物体的交互(interactions with objects )
      3. 人和其他人的交互(interaction with other person)
    • ava_action_list_v2.2_for_activitynet_2019.pbtxt:用于activitynet的动作标注

      这个文件是为了评估该数据集的向activity net的向下映射,自己制作时不需要

      item {
        name: "bend/bow (at the waist)"
        id: 1
      }
      item {
        name: "crouch/kneel"
        id: 3
      }
      
    • ava_included_timestamps_v2.2.txt:单列,每个视频要检测的位置,官方给定第902到1798秒

      0902
      0903
      0904
      ...
      
  • 训练部分

    • ava_train_v2.2.csv:训练的数据集文件,最重要的部分,其中每一行包括5个部分

      -5KQ66BBWC4,0902,0.226,0.032,0.366,0.497,12,0
      

      其中每一列对应的信息如下

      • video_id:视频名称,不包括文件后缀
      • middle_Frame_timestamp:关键帧所在位置(第几秒)
      • person_box:此处包括了四列,(x1, y1, x2, y2),分别代表左上、右下点的位置。
      • action_id:即ava_action_list_v2.2.pbtxt中对应的id。
      • person_id:bbox中人物的编号,可以实现人在跨段中尽可能的连续

      每一行只标注一个框的、一个任务、一个动作,所以可能会出现多行中的框相同、事件相同

    • ava_train_excluded_timestamps_v2.2.csv:部分出现问题的帧,进行排除,(视频+时间戳)

      72MzYjWz_7g,1199
      
  • 评估部分

    • ava_val_v2.2.csv: 格式与ava_train_v2.2.csv的相同,数据表示的是用于评估的行为
    • ava_train_excluded_timestamps_v2.2.csv:在评估的数据集中出现问题的帧
  • 测试部分

    • ava_test_v2.2.txt:一列数据,只包含视频的名称

      --205wugM18
      -APF0-L14kw
      -FLn0aeA6EU
      
    • ava_test_excluded_timestamps_v2.2.csv:两列数据,视频名称+需要排除的时间点

      0f39OWEqJ24,1110
      0f39OWEqJ24,1599
      3IOE-Q3UWdA,1114
      3IOE-Q3UWdA,1355
      

以上就是AVA数据集的标注全部内容,在完全了解其格式之后,下一节将介绍官方的数据集制作流程

数据集制作过程

生成动作列表(Action vocabulary generation)

在这个部分,其主要工作是设计动作的类别,即完成前文提到的动作部分的设计,这里简述一下官方在分动作时候所遵守的几个原则

  1. 一般性(generality):所选择的动作类别尽可能在全部环境下通用,而不是在特定环境中的特定动作
  2. 原子性(atomicity):动作尽可能的独立并且基本
  3. 完全性(exhaustivity):覆盖了日常生活中99%的动作,动作尽可能的全面

值得注意的是,在文中有提到一个hierarchical nature of activity,从低级到高级有多个不同的动作。文中说在高级的动作是比较难界定的,因此他们通过缩小了时间的长度,从而使得动作更加的明确。

选择电影以及片段(Movie and segment selection)

在这个部分,主要介绍了在构建数据集中他们如何挑选原始的视频,这里阐述一下他们的理念,希望对于我们在采集视频的过程中可以有一些启发。在构建AVA的过程中,视频均来自于Youtube,作者主要其中挑选了电影和电视,视频满足至少有30分钟(这里是为了后面的裁剪)、发布一年以上、最少有1k的观看,同时排除了黑白、卡通、游戏视频。

因为电影的开头可能存在许多的文字信息(片头等)这会影响标注,所以他们选取了视频中的第15~30分钟,来作为自己的数据。而最后,每一个15分钟片段都会变成893个3s的电影切片,每一个直接,往后移动了一秒。

这里可以看作是对于电影的特殊裁剪,我们在使用自己的视频构建的时候,并不需要这样,所以我们可以直接从第一秒到视频的最后一秒进行裁剪。

人物界限框标注(Person bounding box annotation)

在这个部分,其主要的工作是在完整的视频中利用bounding box对于人进行定位,以便于规定动作的发起者。每一个人可能发出了多个动作,因此一个框的标注可能会产生多个动作标注。其中需要注意的是,因为标注bbox的工作十分的繁重,文中使用了Faster-RCNN模型的人类识别模型,来对于框进行了预标注。

人物连接标注(Person link annotation)

在这个部分,文中通过在短时间内链接边界框,以获得真实的人物轨迹。通过度量两个帧之间框的相近度,利用匈牙利算法进行了配对。通过这样的方式,可以获得一个动作在时间先后上的关联性等信息。

bbox的标注以及框在时间上的连接,因为现在YOLOv8更新了自动的追踪,我们可以更快的实现这个过程,这也是我们这系列博客所改进的部分。

动作标注(Action annotation)

在这个部分,其官方标注过程主要如下图,首先对于人的框进行了确认,保证在标注框的时候不出现问题,其次先必要的选择了一个人的姿势,再以可选择的条件分别询问了人-物动作与人-人的动作。同时,作者观察到直接按照流程进行标注,要求标注者直接在给定的动作表中做出选择的时候,人们经常会出现一些错误的选择。因此作者划分出了两个标注过程:

  • 动作标注action proposal:要求尽可能多的人对于数据集进行标注,统计大多数标记结果作为最终的标记
  • 验证verification:让另一批人对于前面统计得到的结果进行确认。

在这里插入图片描述

总结

在这个文档中,我们了解了AVA数据集的主要模式与其结构,确认了我们自己标注最终所需要的文件结构。同时我们了解了官方在标注的时候的过程,这将有助于我们更好地安排我们后续制作数据集所需要的步骤。在下一个部分中,我们将讲述如何对于视频进行预处理,使得其满足动作识别的任务要求。

  • 31
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值