imtoken网址|ava是什么

作者: imtoken网址
2024-03-07 17:09:22

AVA Actions Dataset 详解 - 知乎

AVA Actions Dataset 详解 - 知乎首发于视频理解数据集切换模式写文章登录/注册AVA Actions Dataset 详解清欢守护者人间有味是清欢0. 前言要基于AVA数据集做一些工作,网上的文章都不能满足我的要求,所以自己写一篇记录一下。参考资料:官网(需要翻墙)相关论文 感想:行为识别数据集下载真的困难,国内搞过的都懂……作为组里第一个吃螃蟹的,到现在还在跟 Kinetics-700、ActivityNet 等数据集死磕,辛酸泪。AVA 已经是最容易的了,毕竟可以用迅雷下载。本文主要内容:第一章:介绍AVA,如何获取、标注过程、annotations解析。第二章:SlowFast中解析AVA的过程。第三章:mmaction中解析AVA的过程。(尚未完成)1. AVA简介1.1. 基本情况数据集类别:Spatio-Temporal Action Detection,即时空行为检测。举个例子,就是检测出视频中所有人的位置以及对应的行为类别。数据集形式(这里是简单介绍,后面会有更详细的说明):要标记的内容包括人物bbox,以及每个人的行为类别,同一时间同一人可能有多个行为。标记的内容还有还有每个实体编号,即相邻关键帧中的人物如果是同一个人,则拥有相同的实体编号。换句话说,“实体编号”其实就是目标跟踪的标签。并不是对视频中的每一帧进行标记,而只是对关键帧进行标记。所谓关键帧,按我的理解就是每秒取1帧作为关键帧,对该帧进行标记。行为类别:标签一共有80类,(但Evaluate时只用到其中的60类)。80类标签分为三类(person movement, object manipulation, person interaction),具体信息如下。person movementbend/bow (at the waist)crawlcrouch/kneeldancefall downget upjump/leaplie/sleepmartial artrun/jogsitstandswimwalkobject manipulationanswer phonebrush teethcarry/hold (an object)catch (an object)chopclimb (e.g., a mountain)clink glassclose (e.g., a door, a box)cookcutdigdress/put on clothingdrinkdrive (e.g., a car, a truck)eatenterexitextractfishinghit (an object)kick (an object)lift/pick uplisten (e.g., to music)open (e.g., a window, a car door)paintplay board gameplay musical instrumentplay with petspoint to (an object)presspull (an object)push (an object)put downreadride (e.g., a bike, a car, a horse)row boatsail boatshootshovelsmokestirtake a phototext on/look at a cellphonethrowtouch (an object)turn (e.g., a screwdriver)watch (e.g., TV)work on a computerwriteperson interactionfight/hit (a person)give/serve (an object) to (a person)grab (a person)hand claphand shakehand wavehug (a person)kick (a person)kiss (a person)lift (a person)listen to (a person)play with kidspush (another person)sing to (e.g., self, a person, a group)take (an object) from (a person)talk to (e.g., self, a person, a group)watch (a person)1.2. 如何获取两种获取方式标签可以在官网上下载标签,视频可以通过 youtube-dl 获取。官方提供了aws数据源,具体可以参考这里。可以用迅雷,可以用迅雷,可以用迅雷,重要的事说三遍。写个脚本写上所有视频链接地址,然后批量传入迅雷,美滋滋。(如果Kinetics和ActivityNet都能这么下就好了)可以用百度云离线下载,不过好像不能批量导入下载链接,没仔细研究。SlowFast/MMAction 中都提供了 AVA 数据预处理相关脚本,具体在后续章节会介绍,可以参考。1.3. 数据集构建过程这部分内容主要参考了 数据集论文第一步:Action vocabulary generation任务:确定要标注的行为类别以及继承关系。选择/设置“行为类别”时有三个准则:generality,即通用性,而不是特定环境下的特定动作(如“在篮球场打篮球”)。atomicity,即原子性。每个动作都有其特点,且与交互的物体无关(如行为 hold 且不要指定hold的物体)。exhaustivity,即类别尽可能丰富。第二步:Movie and segment selection任务:构建原始视频数据集,为后续标注工作做准备。AVA的数据源来自电影片段。每个电影只标注第15-30分钟内的视频每个长度为15分钟的视频都转换为897个长度为3s的视频片段(clip)。15分钟共900秒,窗口长度为3秒,stride为1秒,滑动897次得到897个clip。每个clip对对应一个keyframe(关键帧),关键帧是1.5秒位置。搞了一个各个国家顶尖演员列表,然后在Youtube中对每个演员进行搜索,寻找符合条件的电影。条件包括:有 file/television 标签,时长超过30分钟,发布时间超过1年,观看人数超过1000,且不包含黑白、低清晰度、卡通等类别的电影。第三步:Person bounding box annotation任务:针对每个keyframe标注人物bbox。使用了混合标注法:先用Faster-RCNN标注,(说是 set operating point 从而保证高精度,不知道啥意思,猜测就是提高了阈值吧)。之后在人工标注遗漏的bbox。bbox对最终结果影响很大,所以这一步会比较注意。第四步:Person link annotation任务:对相邻keyframe中的任务bbox进行关联。方法:先机器标注一波:通过计算相邻两帧不同bbox之间的相似度,然后根据匈牙利算法进行匹配。再手动处理一波:手工删除FP样本。第五步:Action annotation任务:标注行为类别。通过众包实现。不可避免的,标注人会少标行为(因为行为太多了)。参考界面如下:1.4. annotations 解析以 v2.2 为例,解压 ava_v2.1.zip 得到的结果如下。V2.1 和 V2.2 的区别:标签内容没细看,可能v2.2细化了吧。但视频源没有任何变化,即V2.1与V2.2的 train/val/test 的视频是完全相同的。行为类别文件:ava_action_list_v2.1_for_activitynet_2018.pbtxt:60类行为,Evaluate时使用ava_action_list_v2.1.pbtxt:80类行为行为标签文件:ava_train_v2.1.csv、ava_val_v2.1.csv、ava_test_v2.1.txt其中,train/val有标签,test只是视频名称列表。train/val 每行代表一个样本,共有5个部分video_id:视频名称,不包括文件后缀,即Youtube对应urlmiddle_Frame_timestamp:关键帧所在位置(第几秒)person_box:包括了四列,(x1, y1, x2, y2),分别代表左上、右下点的位置。action_id:即ava_action_list_v2.1.pbtxt中对应的id。person_id:bbox中人物的编号,即 person link 时产生的标签,每个人的id不同。ava_included_timestamps_v2.2.txt:每个视频要检测的位置,即第902到1798秒。不需要进行检测的timestampava_train_excluded_timestamps_v2.1.csvava_val_excluded_timestamps_v2.1.csvava_test_excluded_timestamps_v2.1.csv即 train/val/test 数据集中每个视频不需要进行检测的timestamp。2. SlowFast相关源码:数据集预处理数据集解析(结果用于模型训练)数据集解析源码主要模块构建 Ava 对象,解析标签文件,设置数据预处理参数,以 clip 为单位保存相关信息。读取某个 clip 的相关信息。流水账,没兴趣的跳过。2.1. 构建 Ava 对象第一步:为每个视频进行编号,并保存对应的帧绝对路径的列表。从代码角度看保存了两个列表_video_idx_to_name每个视频原来有个 video_name,即youtube中对应url后缀,如 1j20qq1JyX4。在代码中,video_name用起来不方便,所以对视频进行编号,即每个 video_name 对应一个 video_id(从0开始编号)。本对象是 list,index就是 video_id,value就是video_name。_image_paths保存每个视频对应帧的绝对路径。本对象是list,index是 video_id,value是一个list(中每个元素是帧绝对路径,注意,这个list中帧文件的顺序必须是从小到大,不然后面代码有问题)。源码细节:主要输入数据就是 frame_lists 文件该文件不是AVA官方提供的,而是FAIR提供的,可以自己生成。该文件中保存有video_name以及对应所有帧的相对路径,且帧文件的顺序就是从小到大。主要就是 ava_helper.load_image_lists 实现。第二步:解析行为标签文件。从代码角度看,就是构建了一个list boxes_and_labels该数据类型是:boxes_and_labels[video_id][frame_sec_int] = list([box_i, box_i_labels])boxes_and_labels[video_id].keys() 就是所有可用的时间点,即range(902, 1799)len(boxes_and_labels[video_id][frame_sec_int]) 就是这个时间点 box 的数量。boxes_and_labels 整体是一个列表,index是 video_id,value是一个字典。该字典的 key 是 frame_sec_int,即 [902, 1798],表示视频中的第几帧。该字典的 value 是列表,取名为 value_list。value_list通过列表形式保存 bbox(x1, y1, x2, y2形式) 以及对应的labels(同一个box可能有多个标签)两部分信息。其中,box_i 的形式是 x1, y1, x2, y2。源码细节:这一步的输入数据主要包括GT与Predict两部分。GT指的就是AVA官方提供的标签文件,如ava_train_v2.1.csv。Predict指的是验证/测试时用的数据,只包括每个视频每一帧的人物bbox以及对应的score,不包括行为类别。包括 video_name, frame_sec, bbox_x1, bbox_y1, bbox_x2, bbox_y2, category, score。在使用Predict数据时会根据 score 筛选一部分数据。主要通过 ava_helper.load_boxes_and_labels 实现。第三步:构建关键帧数据。从源码上看,就是构建了 _keyframe_indices 和 _keyframe_boxes_and_labels 两个列表。这两个对象是配合使用的。两个列表中相同index的元素就是后续构建 clip 样本的输入数据。保存了所有可用关键帧相关信息。_keyframe_indices是个list对象,index的作用就是与 _keyframe_boxes_and_labels 对应。主要保存四个数据 video_idx, sec_idx, sec, frame_idxsec_idx 指的是当前关键帧在这个视频中所有关键帧的idx,从0开始取值。sec 指的是当前关键帧在这个视频中的位置,从902开始取值。frame_idx 指的是当前关键帧的具体编号,计算方法(sec-900)*FPS,其实就是每个clip的中心frame编号。_keyframe_boxes_and_labels是个list对象,index的作用就是与 _keyframe_indices 对应。其实就是将上一步中的 boxes_and_labels[video_id][frame_sec_int] 直接保存下来。主要通过 ava_helper.get_keyframe_data 实现。2.3. 读取某个keyframe信息这里,每个keyframe的信息就是对应一个clip数据,主要就是通过 __getitem__ 实现。输入的idx其实就是 2.2. 中第三步 _keyframe_indices 中的下标。第一步:获取 _keyframe_indices 对应 idx 下标信息。video_idx, sec_idx, sec, center_idx,sec_idx 从0开始取值,sec从902开始取值。第二步:根据输入数据,进行数据采样。以 center_idx 为中心,根据输入数据 _seq_len 和 _sample_rate 进行采样。采样细节:从center_idx - _seq_len // 2开始,在 [center_idx - _seq_len // 2, center_idx + _seq_len // 2) 范围内,根据 _sample_rate 进行采样。_seq_len 的取值其实是 _sample_rate * _sample_frames_length 得到的。刚开始在想,为什么这个采样刚好就能用。列了不等式算了算,刚刚好,这个样子采样其实刚好能得到 _sample_frames_length 个帧下标。第三步:获取 _keyframe_boxes_and_labels 获取该关键帧的所有boxes与对应label信息。第四步:根据采样结果以及 _image_paths 读取帧文件绝对路径,并读取对应图片。_image_paths[video_idx][frame] for frame in seq,其中 seq 就是上面采样得到的结果。第五步:图片数据预处理。有pytorch与cv2两种模式,预处理的过程是一样的,只是调用的库不同。得到的结果都是 C, T, H, W 结构。预处理过程包括:数据类型/范围转换:[0, 255] -> [0, 1]resize/crop操作:训练集 随机短边resize -> random crop -> random flip;验证集 短边resize -> center crop;测试集 短边resize。随机短边resize通过 transform.random_short_side_scale_jitter 实现,根据输入参数 TRAIN_JITTER_SCALES 指定短边范围,随机获取其中数值作为短边的size,然后进行resize。随机色彩变换,主要通过 transform.color_jitter 与 transform.lighting_jitter 实现。图像标准化,减去平均数除以标准差。第六步:构建行为识别 one-hot 形式label。label的shape为 [num_boxes, num_classes]。注意,每行可能不止一个类别为1。第七步:分别为不同分支构建输入数据。对于I3D模型,这一步其实也没做什么。对于SlowFast模型,这一步会分别对 Slow 分支与 Fast 分支构建对应的输入图片。Fast分支就是之前输入的。Slow分支就是在T纬度上进行sample rate为SLOWFAST.ALPHA的采样。第八步:构建输出数据。输出数据包括四部分 imgs, labels, idx, extra_data。imgs 是第七步图像预处理的结果,是个list,分别对应每个分支的结果,每个分支的shape为 [C, T, H, W]labels 就是第六步的结果,shape为 [num_boxes, num_classes]idx 即 __getitem__ 的输入数据。extra_data 是个字典,包括三个数据:boxes 经过数据预处理后的bbox。ori_boxes 原始 boxes,即在resize/crop等操作前的bbox。metadata 元数据列表,列表长度与 boxes 相同,每个元素都是 [video_id, sec]。sec从902开始取值。3. MMAction相关源码:数据集预处理数据集解析(结果用于模型训练)等待补充编辑于 2020-07-08 19:00数据集深度学习(Deep Learning)​赞同 59​​14 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录视频理解数据集介绍深度学习视频理解领域相关

AntV/AVA 可视化分析框架浅析 - 掘金

AntV/AVA 可视化分析框架浅析 - 掘金

首页 首页

沸点

课程

直播

活动

竞赛

商城

APP

插件 搜索历史

清空

创作者中心

写文章 发沸点 写笔记 写代码 草稿箱 创作灵感

查看更多

会员

登录

注册

AntV/AVA 可视化分析框架浅析

Stephen_Cui

2022-05-04

1,790

Version: 2.0

Last Update: 2022-05-04

阿里可视化框架 AVA 系列文章

AntV/AVA 框架浅析-增强分析一些痛点

AntV/AVA Chart Linter 分析-图表检测与优化

AntV/AVA ChartWizard 分析

AntV/AVA ChartAdvisor 分析

AntV/AVA LiteInsight 分析

一、什么是增强分析及其特点

首先我们来了解下什么是增强分析(Augmented),著名咨询公司(造词小能手) Gartner 给出了这样的定义:“增强分析是指使用机器学习和人工智能等提升能力的技术来协助进行数据准备、见解生成和见解解释,从而增强人们在分析和在商业分析平台中探索和分析数据的能力。”1。

这里我的理解是强调了使用机器学习和人工智能等技术作为手段辅助,来简化数据准备,挖掘数据中潜在的现象和规律,一般通过图形的方式解释自动挖掘的现象,其中人工智能的作用更多的是将沉淀于资深领域专家内在的规律以某种机器可理解的方式表达(例如算法以及机器学习模型)、代替人力进行繁琐的分析操作和沉淀跨行业、跨领域的业务知识,最终让"人人都是数据分析师"这一商业口号得以实现。

对比传统的数据可视化分析的软件,增强分析有着更为突出的优势2:

敏捷性:这里强调的是通过机器学习等手段,给出分析路径、缩小分析范围、建议分析模式以达到更快的数据反馈,减少不必要的操作。而目前一般的商业分析软件产品在这一点上仅仅停留在丰富用户体验,被动的辅助用户操作等方式上。

准确性:通过给机器制定检查规则就可以避免人为主观因素导致的误判,在一定程度上会有所提升。

效率:通过任务自动化来减少人们在处理数据时需要付出的精力和时间,例如数据抽取工具等。

信心:可以对增强技术进行定制,使其根据上下文显示数据和进行数据建模,从而让您能够确认直觉并对结论的质量充满信心。业务用户可能无法深入地了解分析技术,但他们确实了解自己所在的领域或行业,并且可以在评估如何使用增强分析提供的结果时应用这些专业知识。

二、AVA 技术框架

AVA 是为了更简便的可视分析而生的技术框架。 VA 代表可视分析(Visual Analytics),而第一个 A 具有多重涵义:其目标是成为一个自动化(Automated)、智能驱动(AI driven)、支持增强分析(Augmented)的可视分析解决方案。

AVA 从数据的导入,数据检查,产生洞察(包含经验驱动和数据驱动两条推荐路径3),最终形成推荐图表的一个整体化解决方案,从使用者的角度而言,这其中给我印象最深刻的还是 AVA 的开放性、严谨性和易用性。

开放性:体现在对数据处理的每个环节都可以定制不同需求的参数和规则,支持全推荐链路的完整自定义能力3。同时,AVA 的代码也是面向开源社区的,对开源贡献也比较友好(例如补足代码规范和测试规范的提交请求会被很快合并)。

严谨性:体现在 Chart Knowledge Base 图表经验知识库的结构化定义上,同时规范了图表的名称和功能的对应关系,以及图表特性的维度定义。

易用性:体现在官方的文档和样例均可以容易的在现有的代码中集成,上手文档也描述的比较清晰。

接下来,从狭义的技术视角尝试分别说明。

1) 图表名称规范化

可谓无规矩不成方圆,如果对同样一个事物没有一个“统一”的标准就会导致技术实现的偏差和沟通的困难以及潜在的误解,官方则给出了更详细的解释4,这是软件合作中重中之重,而往往被忽略的部分。前者有经典书籍<>5给出的图形学定义,而对于可视化图表领域同样需要一个统一且清晰的规范---Chart Knowledge Base(CKB),一个基于 JSON 形式的提供图表经验的知识库。

一个典型的折线图结构化定义如下:

对图表的分类来说,图表坐标系coord、图表类别category以及数据条件dataPres等因素是图表分类的主要因素,这里不展开说明。对于使用者来说,AVA 也完全支持图表自定义。

2) 自动提取数据特征

AVA 通过 DataWizard 模块对输入数据依据数据模式规则进行特征提取,生成字段特征(字段名称、数据类型、统计信息等),性质(连续性、离散性等),以及多字段间的关系(相关性、周期性等)6,最后将提取的特征交给规则引擎生成图表。这一步数据提取意义可以说是在技术角度解决了人为基于经验的数据标记分类可能产生的错误,降低人工标记成本并提升效率。

举例来说,如果某一数据库视图中的数据列是整型类型,而在存储上以字符串的方式存储的数据库中,对于 BI 产品来讲数字类型往往是连续并可以产生聚合结果,起到统计汇总的提示,而如果以字符串的方式往往只能作为离散数据参与到图表的绘制中,一般需要人工介入修正/重新标记数据类型,这也是目前一些 BI 产品过渡依赖人工参与所产生的低效率问题。

3) 规则推荐/洞察推荐(Chart Advisor/Lite Insight)

为了更好的理解,这里主要介绍基于规则引擎的图表推荐,关于 LiteInsight 描述可以参考腾讯文章7。

规则推荐基于从DataWizard抽取到的数据特征,以及基于图表业务场景的一系列权重规则Rules,最终得出推荐图表集合并按照得分大小排序 Chart List。AVA 支持扩展推表规则以及定义规则权重,这一点非常适合特定领域的更差异化的图表推荐实现。

4) 推荐规则约束 Lint(Chart Lint)

很多数据产品中有大量用户创建的存量图表。这些现有的可视化图表可能存在很多问题,视觉编码选择不当、缺少 legend、使用错误的 annotation 等问题都会阻碍我们从可视化中获取有效知识,甚至会使理解真实数据变得困难。想要尽力避免可视化中可能出现的错误,往往需要图表制作者自身具有良好的可视化专业设计和技术知识3。

核心作用在于基于规则自动识别错误和给出错误提示,提高图表推荐的准确性,并在 IEEE 会议上发表了一篇论文8。

在未来,我们期待看到的是,ChartLinter 能够成为图表不可或缺的一项能力。除了图表优化本身,我们已经发现 ChartLinter 还可以成为非侵入式的新手引导,告知我们的用户一些对 ta 有用的新功能。9

三、结语

本文以增强分析为切入点,引出 AVA 作为一个增强分析的框架所解决的痛点和技术方案,但没有深入解析,其中涉及到一些算法和论文,需要花更多的时间仔细研究。

这篇文章的主要目的还是为了希望能抛砖引玉式的探讨商业 BI 产品在智能化方向上所面临的问题和现有的解决方案,欢迎留言讨论或者私信。

参考引用

Footnotes

Gartner 增强分析释义 ↩

增强分析 释义:定义、用例、好处、功能 ↩

AVA 2.0:洞见,新开篇 ↩ ↩2 ↩3

AVA/CKB:一次性解决图表命名问题 ↩

The Grammar of Graphics ↩

DataWizard 介绍 ↩

数据分析的转折点-增强分析与增强数据分析组件梳理 ↩

VizLinter: A Linter and Fixer Framework for Data Visualization ↩

ChartLinter 你的图表可以更好 ↩

Stephen_Cui

工程师

11

文章

16k

阅读

13

粉丝 目录 收起

阿里可视化框架 AVA 系列文章

一、什么是增强分析及其特点

二、AVA 技术框架

1) 图表名称规范化

2) 自动提取数据特征

3) 规则推荐/洞察推荐(Chart Advisor/Lite Insight)

4) 推荐规则约束 Lint(Chart Lint)

三、结语

参考引用

Footnotes

相关推荐 antv L7/G2 plot组件库学习经验总结 974阅读  ·  1点赞【手摸手带你实现可视化系统(四)】优化编辑面板的动态缩放 199阅读  ·  3点赞第一篇: antv g2 数据变更(vue) 787阅读  ·  0点赞使用 @antv/g2 饼图-切片 183阅读  ·  1点赞开发思路简记-数据血缘(图结构转为类树结构) 2.2k阅读  ·  7点赞 友情链接:

java 8 quiz tutorialspoint

AVA 简介 | AVA

简介 | AVAlogoCreated with Sketch.AVA教程API 文档图表示例国内镜像所有产品标准版基础产品标准版扩展产品移动定制(F版)产品周边生态AVA 简介AutoChart 组件AutoChart 简介图表知识库(CKB)CKB 简介CKB 概念与属性图表类型 ID 一览DataWizardDataWizard 简介ChartAdvisorChartAdvisor 简介推荐规则推荐规则LiteInsightLiteInsight 简介SmartBoardSmartBoard 简介SmartColorSmartColor 简介升级指引AVA 简介阅读时间约 4 分钟

智能可视分析框架AVA (A Visual Analytics) 是为了更简便的可视分析而生的技术框架。 其名称中的第一个 A 具有多重涵义:它说明了这是一个出自阿里巴巴集团(Alibaba)技术框架,其目标是成为一个自动化(Automated)、智能驱动(AI driven)、支持增强分析(Augmented)的可视分析解决方案。AVA 的整体架构如下:

演示案例

import { AutoChart } from '@antv/auto-chart';

const data = [

{field1: 'a', field2: '100'},

{field1: 'b', field2: '300'},

{field1: 'c', field2: '800'},

];

ReactDOM.render(

<>

title="CASE 1"

description="auto chart analysis"

data={data}

language={'zh-CN'}

/>

,

mountNode,

);包AVA/AutoChartAutoChart 是一个可以根据数据自动推荐合适的图表并渲染的 React 组件。它可以为用户提供一行代码实现智能可视化的能力。@antv/auto-chart // 一键可视化组件AVA/CKBCKB 的意思是 Chart Knowledge Base,也就是图表知识库。这个包中包含了基于经验总结的关于可视化和图表的各种基本知识和观察。图表的推荐必须基于这些基本概念。同时,这个包也让开发图表类型筛选相关的产品变得非常简单。@antv/ckb // 图表知识库AVA/DataWizardDataWizard 是一个基于 js/ts 的前端数据处理库。在 AVA 的框架中,它被用来理解和处理输入端的数据集。不过,它也可以独立地被用来开发一些数据处理、数学统计、数据模拟之类的功能。import { DataFrame } from @antv/data-wizard // 数据处理模块

import { statistics } from @antv/data-wizard // 数学统计模块

import { random } from @antv/data-wizard // 数据模拟模块AVA/ChartAdvisorChartAdvisor 是 AVA 的核心部分。它基于数据和分析需求来推荐图表类型和具体的图表细节设置。@antv/chart-advisor // 图表推荐和自动生成AVA/LiteInsightLiteInsight 是一个用于探索性数据分析的 js/ts 工具库,它可以从多维数据中自动地发现数据洞察。@antv/lite-insight // 数据洞察库AVA/SmartBoardSmartBoard 是一个用于 Dashboard 数据展示的 js/ts 工具库。它根据输入图表和洞察自动生成对应的 Dashboard。@antv/smart-board // 增强展现库AVA/SmartColorSmartColor 是一个 js/ts 的前端颜色处理类库。它可以深度定制色板模式,对已有色板进行颜色优化和色彩校正,并且可以一键适配色盲场景。@antv/smart-color // 智能色板库友情链接 ChartCube - 基于 G2Plot 的在线图表制作工具,交互简单,一键导出图表代码! Kitchen - 为设计者提升工作效率的工具集。 Rath - 支持洞察自动发现与交互式可视化(图表、报表)生成推荐的增强分析工具。ResourcesAnt DesignAnt Design MobileUmi-React 应用开发框架Dumi-组件/文档研发工具ahooks-React Hooks 库国内镜像社区体验科技专栏SEE Conf-蚂蚁体验科技大会帮助GitHubStackOverflow更多产品Ant Design-企业级 UI 设计语言语雀-知识创作与分享工具Egg-企业级 Node 开发框架Kitchen-Sketch 工具集蚂蚁体验科技关于我们返回旧版© 2022 Made with ❤ by XT

智能可视化——数据分析领域的金手指 - 知乎

智能可视化——数据分析领域的金手指 - 知乎首发于AntV切换模式写文章登录/注册智能可视化——数据分析领域的金手指王嘉喆​AntV@步茗: 让天下没有难做的数据分析摘要:智能可视化是什么?为什么如此重要?最快速地接触甚至参与智能可视化 —— AVA什么是智能可视化数据可视化,通俗来说,就是将数据制作成图表,以便直观了解数据和从数据中发现信息。它是数据和人之间的桥梁、数据分析链条上的“最后一公里”,价值很大。“智能可视化”,粗暴地讲,就是把从数据到图表的制作过程给自动化掉。从数据“一键生成”图表、报表,甚至直指数据背后的信息、提供预测趋势,这便是将数据瞬间转化为价值的金手指。“智能”两个字如今已经过度宣传了。其实,“智能”是个容易“时过境迁”的概念,当一种新的自动化技术出现时,大家容易感性认为这是“智能”的。而当这个技术成熟、普及以后,大家又会慢慢地不觉得它“智能”了。比如在功能手机时代,我们认为“智能手机”很高端,而在人手一部 iPhone 的今天,你对它的定义就只是“手机”。“智能”的概念,在当前的语境下,往往表示用当下最先进的技术实现的自动化功能。我们所谈的“智能可视化”,是指用当下前沿技术(通常包含人工智能技术)自动化生成可视化内容。为什么“智能”?其实是这个方向的技术研究和应用刚刚起步,还不成熟,还不能做到具有通用性,但又非常有发展潜力。因此,智能可视化技术研发和商用化的起步需要明确一个比较具体的方向。商业智能与增强分析对于一些复杂的专业可视化领域(比如 CT 成像),想要设计具有通用性的智能可视化方法是非常难的。通常我们说的“智能可视化”,是指在“商业智能”领域的可视化。商业智能可视化的默认目标用户是没有专业级别的可视化知识的。这就意味着图表类型不能设计得过于复杂,图表的种类也必须有所限制。这样就保障了形式的通用性、有限性和可读性。另一方面,商业智能分析会给企业和组织带来巨大的价值,在商业中被广泛运用,具有广泛的实用价值。图片翻译自 qlik.com商业智能可视化指在商业智能理论与方法发展过程中与数据可视化融合的概念和方法。商业智能的目标是将商业和企业运维中收集的数据转化为知识,辅助决策者做出明智的业务经营决策。数据包括来自业务系统的订单、库存、交易账目、客户和供应商等,以及其他外部环境中的各种数据。从技术层面上看,商业智能是数据仓库、联机分析处理工具和数据挖掘等技术的综合运用,其目的是使各级决策者获得知识或洞察力。自然地,商业智能可视化专门研究商业数据的智能可视化,以增强用户对数据的理解力。 —— 《数据可视化》陈为等编著在“类商业智能可视化”场景中,用户群体各不相同。目标用户主要是“需要获得数据背后的信息的人”,进一步是“需要自己做数据分析的人”,更进一步是“需要制作图表的人”。在现实生活中,这样的受众群体可能是数据分析师、数据产品开发人员、产品经理、咨询顾问、政府公务员等,他们是最高频的用户。当然也有可能是企业高管、餐厅老板、学校校长等决策者。还有可能扩展到每一个个体社会角色,比如老师、医生、销售员。只要是能够接触到数据(不管是大到一整个企业数据源,还是小到一份 Excel 表格)并需要从数据中得到信息的人,都可以是智能可视化的受众。同样,商业智能产品也有不同级别。无论是什么级别的产品,在商业数据分析上都绕不开几个步骤:数据导入数据提出分析需求可视化分析结果决策只不过,不同的受众群体应该对应不同的形式。比如导入数据,对于普通用户来说,可能就是把一个 Excel 表格拖入网页。对于专业用户而言,则可能需要解决连接各种数据库的需求。因此,通常我们目前所谈的“智能可视化”,是指在“类商业智能可视化”领域内,通过自动化的形式快速满足各类用户的数据分析需求。借助其能力,我们可以将商业智能推向“增强分析”时代。何为“增强分析”?简而言之,就是通过人工智能技术,为传统的商业分析流程提供更自动化、更细粒度、更精准的辅助能力,从而满足分析人员更多的分析需求。业内著名的技术研究和分析机构 Gartner 预测,到2020年,增强分析将成为推动分析和商业智能、数据科学和机器学习平台、嵌入式分析新增采购消费的主要驱动力。增强分析的概念从而广受关注。技术的积累与探索从技术角度来看,不同的产品形式除了本身开发技术的不同,其底层核心技术是一致的。为了实现可视化报表的自动生成,有这么几个基础技术需要准备:数据集理解 - 自动分析用户提供的数据,包括全表统计、特征识别、字段间关系识别,等分析意图识别 - 理解用户的分析需求和目的,可以由用户主动输入,也可以根据用户的交互行为推测洞察发现 - 从数据中发现潜在信息和价值,筛选出相关的数据字段自动化图表绘制 - 无需用户操作直接生成图表,根据图形语法、图表配置映射等方式将图表渲染出来自动报表配置 - 自动生成报表,参考分析目的和图形样式等方面来生成报表布局、配置控件、图表联动,等实现了这些核心的技术以后,不同的产品形式无非是对这些技术的不同封装方式和不同封装程度而已。关于这些技术,已经有不少前人开了路。比如华盛顿大学的 IDL 实验室研发了一整套服务于增强分析的工具,其成果以一个数据可视化浏览工具 Voyager 来呈现,这个工具支持一定程度的图表推荐功能。除此以外,IDL 实验室从数据分析到图形语法、图表绘制都有比较完整的理论体系和技术生态。Voyager除了学术领域,商业领域也已经有比较成功的尝试。比如微软的商业智能软件 Power BI 中就有一个“快速洞察”的功能 Quick Insights,它有针对性地数据集进行扫描,然后发现字段之间的“洞察“,比如异常值、相关性等,并以可视化和文本描述的形式展现出来。Power BI 的 Quick Insights 功能智能可视化的意义为什么要做智能可视化,是因为当下和未来都看得见的紧迫的需求。产业趋势大数据产业链条上有诸多环节,包括数据获取、预处理、存储、挖掘和分析、可视化等等。行业的发展状态,基本上遵循从链条前端向后端发展的大趋势。目前来看,虽然大数据被宣传得人尽皆知,但是大部分企业仍然停留在链条前端的环节。或者说,大部分企业和组织都还在做数据方面的基础设施建设。大量的企业仍然是“数据管理基本靠Excel,分析汇报基本靠PPT”的状态,其中不乏世界500强的公司(中的一些部门)和大量的国企。即便是之前做过数据库之类基础设施的企业,也在链条前端环节存在数据收集方式不规范、数据质量差等问题。互联网企业在这方面要有优势一些。总的来说,目前大数据产业的发展波峰还处在链条前端的环节。但是,随着大数据、人工智能概念的普及,大量的机构决策者意识到发展数据能力的重要性。于是目前整体产业在链条前端发展地如火如荼,并且发展波峰正快速向链条中后端移动。已经拥有健全的基础设施、足量的数据的机构,已经在投入大量的力量来发展数据分析和数据挖掘。从这样的趋势来看,数据可视分析作为链条中后端的交互式环节,很快也会迎来发展高峰。而数据可视化整体,作为链条的末端,也将在数年后迎来发展波峰。因此,数据可视化是未来非常有前景的技术。分析提效迎来发展高峰,同时也意味着需求量的爆炸。目前的数据可视化技术在大范围商用上,基本还停留在大屏看板等领域。然而这些领域从目前来看,开发效率还是比较低下的。目前企业对数据可视化的理解和认知还没有达到“普及”的程度。运用的工具还很原始,且不统一。报表设计的过程还不专业,甚至存在很多错误设计。而技术人员在开发时也往往只会考虑代码和实现层面,而不会考虑图表的选择、用户的阅读交互体验。由于可视化技术的使用者对于可视化专业知识的缺乏,导致可视化产品、项目的沟通成本高、开发耗时长、用户体验差。如果智能可视化这些专业可视化知识沉淀和封装成工具,受众从可视化技术中获利的效率将大大提升。工具时间从一个需求产生,使用工具,到需求被解决,这中间花费的时间就是我们的工具时间。工具时间越短,说明自动化程度越高,效率越高。这个问题其实在很多领域都存在,本质上是软件工程领域发展的问题。比如,在设计领域,设计师获得一个灵感可能只需要一分钟的时间,但是把这个灵感做出来可能需要一整天都不止。如果有一个“神奇工具”,可以直接读取设计师脑中的想法,直接变成图像,那就完美了。Adobe 公司一直在往这个终极目标努力,借用人工智能技术,他们已经开发出了一个又一个的黑科技,设计师的体力劳动占比越来越少。然而在数据分析和可视化领域,工具的自动化程度还远远不够。在生产端,从需求确定图表类型、图表细节元素选择、数据结构变换等等方面,存在着大量可以自动化的环节。实现这些环节的自动化,将大大减少可视化工具的制作成本。在用户端,一个分析人员想到一个业务分析的思路,想要从数据中去论证需要花费大量的时间来配置、使用商业智能软件。如果我们可以自动为他识别洞察、生成图表,就可以大量减少用户的工具时间,让他们的注意力解放到真正的数据分析和决策中去。核心价值和想象空间“能够从数据中一键生成分析报表,能够极大减少用户使用可视化的成本,提高分析效率”,做到这件事的话,能产生什么价值呢?经过“大数据”的建设,现在收集数据已经变得简单而普遍。很多企业、组织、政府部门中已经存有了大量的数据。这些数据中潜藏着大量的附加价值,需要用数据探索和挖掘的方式找出来。然而,实际被挖掘和有效分析的数据可能只是其中极小一部分。绝大部分数据就静静地躺在数据库中,白白占用存储和运维资源。为什么不去对这些躺着数据进行挖掘、开发呢?因为开发的成本太高了。且不说数据的清洗和准备需要成本,就算是干净的数据源,要针对业务设计、开发可视化报表或系统,也是一笔很大的投入。现在行业内要么是雇佣一定规模的团队来定制,要么是购买价格高昂的商业分析软件。过高的时间成本和人力成本,再加上产出结果的不确定性,使得很多企业望而却步。利用智能可视化的能力,可以大大降低对存量数据进行有效分析的成本。由于过程是高度自动化的,不需要人工反复精密处理,而是可以快速给出分析方向和潜在洞察结果,这使得大规模的数据挖掘和发现成为可能。甚至,这使得数据分析场景不再需要指定的目标,而是可以推荐出以往不曾发现过的分析方式。哪怕智能可视化的结果不能一步到位,也可以快速提供分析的大致方向。一旦存储着的大量沉默数据被激活,企业将收获巨大的价值。这也是智能可视化、增强分析会被看做行业破局者的一个重要原因。AVA 智能可视化体系针对智能可视化场景,阿里巴巴的可视化专业团队们也在具体环节上付出了许多努力。AVA 是一个开源的智能可视化体系,字母 VA 是 Visual Analytics 的缩写,表示可视分析,而第一个 A 是一个向量,有很多涵义,可以是 Alibaba 表示阿里巴巴集团多个专业可视化团队联合共建,可以是 AI、Automated 又或者 Augmented,表示人工智能、自动化和增强分析。我们希望提供一个智能、自动化的可视化分析黑盒子,只需要提供数据本身和分析意图,合适的图表或可视表达就能够自动被推荐和生成出来了,所有中间的环节,AVA 都能帮大家处理掉。目前,AVA 已经具有了初步的图表推荐能力。未来,还将像洞察识别、报表生成、数据处理等多个环节发起攻坚。为数据可视化的研发阶段、阅读阶段、分析阶段提供自动化能力支撑。欢迎来 star⭐ 我们在 GitHub 上的项目:阅读原文发布于 2020-03-12 17:52数据分析数据可视化人工智能​赞同 23​​2 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录AntV蚂蚁数据可视化解决方案,让数据栩栩如生视觉通道数据可视化与设计工程化专栏原支付宝体验科技新专栏地址:支付宝体

Action Detection Location 系列(1):AVA数据集与基准模型 - 知乎

Action Detection Location 系列(1):AVA数据集与基准模型 - 知乎首发于深度学习切换模式写文章登录/注册Action Detection Location 系列(1):AVA数据集与基准模型忽悠你设计师Spatio temporally Action Detection Location 系列(1):AVA数据集与基准模型AVA数据集之前写的都是行为检测的,实际中发现大部分需求场景都是多人多动作的,因此要把每个人不同动作区分开来,并实现行为的时序检测和空间定位,因此决定写这个action location detection系列,后续附有一个简单的pytorch实现。AVA数据集是google发布的一个视频行为检测与定位的视频数据集,包含在430个15分钟的视频片段中标注了的80种原始动作,这些动作由时间和空间定位,产生了1.58M个动作标签。因为网上关于它的介绍已经有很多,可以参考官网和论文《A Video Dataset of Spatio-temporally Localized Atomic Visual Actions》.,本文重点是介绍论文中所提出的action location模型。Action Localization Model对应论文的第5节. Action Localization Model5.1 当前研究水平的局限:近年来,诸如UCF101或JHMDB等流行动作识别数据集的性能数字有了显著的增长,但我们认为,这可能人为地呈现了当前技术状态的乐观图景。当视频剪辑中只有一个人在一个同样具有视觉特征的背景场景中游泳时,很容易对action进行分类.当演员是多重的,或图像大小很小,或执行的动作只有细微的不同,以及当背景场景不足以告诉我们发生了什么时,就会出现困难。AVA拥有丰富的这些方面,我们会发现在AVA的性能会因此变得很差。事实上,这一发现是由字谜数据集的糟糕性能所预示的。为了证明我们的观点,我们开发了一种最新的基于多帧时间信息的时空动作定位方法[16,41]。在这里,我们依靠基于I3D[6]的更大时间上下文的影响来进行动作检测。有关我们的方法的概述,请参见下图。跟随彭和施密德[30],我们应用得更快RCNN算法[31]的端到端定位和分类的行动。然而,在他们的方法中,时间信息丢失在第一层,来自多个帧的输入通道随着时间连接在一起。我们建议使用由卡瑞拉和Zisserman[6]设计的Inception 3D (I3D)架构来建模时间上下文。I3D架构是在Inception架构[40]的基础上设计的,但是用3D卷积代替了2D卷积。时间信息保存在整个网络中。5.2 方法结构: 首先,将长度为T的输入帧输入到I3D模型中,提取其三维特征图在网络的混合4e层,尺寸为t0×w0×H0×C,混合4e处的输出特征图的步长为16,等价于ResNet的conv4块.其次,对于行动建议的生成,我们使用关键帧上的2D ResNet-50模型作为区域建议网络的输入,避免不同输入长度的I3D对生成的行动提案质量的影响.最后,通过二维ROI POOling在所有时间步骤中在相同的空间位置进行池化,把ROI Pooling 扩展为3D。 为了了解光流对动作检测的影响,我们使用平均池将RGB流和光流融合在特征图级。注:根据图来看结构,在每个时间上2d ROI Pooling,然后拼接为4d特征。然后在时间长度上使用avg平均Pooling,特征变为[H,W,C],在此时可以融合光流信息,然后送入分类层。5.3 Baseline.:为了与基于框架的AVA双流方法进行比较,我们实现了[30]的一个变体。我们使用更快的RCNN[31]与ResNet-50[14]共同学习行动建议区域和行动标签.区域建议仅使用RGB流获得。区域分类器以RGB为输入,并叠加光流特征连续5帧。对于I3D方法,我们将conv4 feature map与平均池融合,共同训练RGB和光流。5.4 Implementation details:我们实现了FlowNetv2[19]来提取光流特征.我们用异步SGD训练快速rcnn。对于所有的培训任务,我们使用一个验证集来确定培训步骤的数量,其范围从600K到1M迭代。我们将输入分辨率设置为320×400像素。所有其他模型参数都是根据来自[17]的推荐值设置的,这些值经过调优以用于对象检测。:ResNet-50网络由ImageNet预训练模型初始化。对于光流,我们将conv1滤波器复制到输入5帧。该I3D网络由kinetics[22]预训练模型初始化,无论是RGB和光流。注意,尽管I3D是针对64帧输入进行预训练的,但随着时间的推移,网络是完全卷积的,可以接受任意帧作为输入。在培训过程中,所有的特性层都会一起更新反向传播。对输出帧级检测进行后处理,阈值为0.6,非最大抑制。AVA与现有动作检测数据集的一个关键区别是,AVA的动作标签并不完全是互斥的。为了解决这个问题,我们将标准的softmax损失函数替换为二进制Sigmoid损失之和,每个类一个。我们对AVA使用Sigmoid丢失,对所有其他数据集使用softmax丢失.5.5 Linking连接一旦我们有了每个帧级的检测,我们就把它们连接起来,构成行动管。我们报告的视频水平的表现基于平均得分获得的管。我们使用与[38]中描述的相同的链接算法,只是没有应用时间标记。由于AVA的标注频率为1hz,而且每个管子可能有多个标签,因此我们修改了视频级评估协议来估计上限。我们使用地面真值链接来推断检测链接,当计算一个类在地面真值管和检测管之间的IoU分数时,我们只考虑该类标记的管段。Experiments and Analysis这里是重点,对每个类别分析了准确率低的原因,是以后努力的方向。6.1 Datasets and MetricsAVA benchmark: 由于AVA中的标签分布大致遵循Zipf定律(下图),并且对非常少的示例进行评估可能不可靠,所以我们使用至少有25个实例的类进行验证和测试,从而对性能进行基准测试。我们得到的基准测试包括210,634个培训、57,371个验证和 在60个类上测试117,441个示例。除非另有说明,我们报告在训练集上训练的结果,并在验证集上进行评估。我们随机选择10%的训练数据进行模型参数调优. 数据集: 此外,我们还分析了标准的视频数据集,以比较难度。JHMDB[20]由21个类中的928个裁剪剪辑组成。我们在消融研究中报告了劈裂的结果,但是为了与目前的技术水平进行比较,结果平均分为三个劈裂。为 UCF101中,我们对一个包含3207个视频的24类子集使用时空注释,这些视频由Singh等人提供。我们在标准的官方split1上进行了实验指标: 对于评估,我们尽可能遵循标准实践。我们报告了交叉-过度联合(IoU)在帧级和视频级的性能。对于帧级IoU,我们遵循PASCAL VOC challenge[9]使用的标准协议,并使用0.5的IoU阈值报告平均精度(AP)。对于每个类,我们计算平均精度并报告所有类的平均精度。对于视频级IoU,我们在阈值为0.5时计算了地面真值管与连接检测管之间的三维IoU。平均AP是通过对所有类求平均值来计算的.6.2. Comparison to the state-of-the-art表3显示了我们在两个标准视频数据集上的模型性能.然而,当认识到原子的作用时,情况就不那么乐观了。表4显示,相同的模型在AVA验证集上的性能相对较低 (帧映射为15.6%,帧映射为12.3%,帧映射为0.5 IoU,帧映射为17.9%,帧映射为0.2 IoU),以及测试集(帧映射为14.7%)。我们把这归功于背后的设计原则AVA:我们收集了一个词汇表,其中上下文和物体线索对动作识别没有那么大的区别。相反,要在AVA取得成功,可能需要识别细粒度的细节和丰富的时间模型,这对视觉动作识别提出了新的挑战.6.3. Ablation study时间信息对于识别有多重要?表4显示了时间长度和模型类型的影响。所有的3D模型在JHMDB和UCF101-24上都优于2D基线。对于AVA来说,3D模型在使用超过10帧后表现得更好。我们还可以看到,增加时间窗口的长度有助于跨所有数据集的3D双流模型。 正如预期的那样,结合RGB和光流特性可以在单一输入模态下提高性能。此外,相对于更大的时间背景,AVA受益更多,JHMDB和UCF101,它们的性能在20帧时达到饱和。表1中的这种收益和连续的操作表明,通过利用AVA中丰富的时间上下文,可以获得进一步的收益. 定位和识别的挑战有多大? 表5比较了端到端操作定位和识别与类无关的操作定位的性能。定位与端到端检测性能的差距接近60%在AVA中,低于15%在JHMDB和UCF101。这说明AVA的主要困难在于动作分类而不是定位。图9显示了得分很高的错误警报的例子,表明识别的困难在于细粒度的细节 哪些类别具有挑战性?培训实例的数量有多重要?图8按类别和培训示例的数量划分了性能。虽然更多的数据通常会产生更好的性能,但异常值表明,并非所有类别的复杂性都是相同的。与场景和对象相关的类别(如游泳)或多样性较低的类别(如跌倒)在训练实例较少的情况下仍能获得较高的性能。相比之下,拥有大量数据的类别,例如触摸和吸烟,获得相对较低的性能,可能是因为它们具有较大的视觉变化,或者需要细粒度的辨别,从而激发了人-对象交互方面的工作[7,12]。我们假设,在识别原子行为方面取得的进展不仅需要像AVA这样的大型数据集,还需要丰富的运动和交互模型.从这里可以看到,错误的基本都是需要细分类的动作.发布于 2019-08-09 19:34深度学习(Deep Learning)行为分析​赞同 5​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录深度学习解读深度学习 图像处理相关的最新算

AVA 2.0:洞见,新开篇 - 知乎

AVA 2.0:洞见,新开篇 - 知乎首发于原支付宝体验科技切换模式写文章登录/注册AVA 2.0:洞见,新开篇王嘉喆​AntV@步茗: 让天下没有难做的数据分析▍导读去年我们发布了智能可视化框架 AVA,发布以来一些项目已经接入了图表推荐流程,初步实现了“有数就有图”。很感谢勇于尝鲜的朋友们,同时我们也收到了很多问题和建议。比如,由于推荐规则难以定制,很多有特殊要求的项目接入不了;比如,有的项目要求直接从含多列数据的完整的表中推荐带洞察的可视化;比如,有建议能不能在图表推荐的基础上再加一些智能配色之类的能力……我们都收到了,谢谢大家!于是,今年我们推出了 AVA 2.0 版本。我们提出了「经验驱动」和「洞察驱动」两条可视化推荐路径。在经验驱动的路径中,我们开放了全推荐链路的完整自定义能力,帮助有定制需求的项目实现接入。我们还设计了更合理的推荐流程,并提供了图表优化的功能。在洞察驱动的路径中,我们通过前端轻量化洞察挖掘能力,可以帮你从多维数据中发现关键洞察,并以可视化形式展示出来。此外,我们尝试开放了插件生态,可以通过增加简单配置,在推荐过程中加入智能配色等环节。▍AVA 2.0 新架构为了实现更完善的链路和生态,AVA 2.0 基于原先的管道模型重新设计的新的架构。在获得数据后,通过应用场景和需求的不同分为「经验驱动」和「洞察驱动」两条可视化推荐路径,其中融入了插件生态。当需要展示总体推荐结论时,两条路线会师于一套 Dashboard 推荐机制。智能可视化框架 AVA 2.0 架构图获得数据输入后,AVA 的数据处理模块 DataWizard 仍然会负责对数据进行识别、分析和预处理,提供给后续链路。当我们指定了部分数据列,想要形成一个图表,我们可以使用「经验驱动」的链路,也就是 ChartAdvisor 模块。经过基于 AVA 推荐规则库的约束系统 Advisor,以及图表校验系统 Linter,我们会得到按照推荐程度排序的一个图表列表。当你无法指定具体数据列,或者希望直接从数据表中检索洞察,可以使用另一条「洞察驱动」链路。新的前端轻量化数据洞察模块 LiteInsight 可以在纷乱庞杂的数据中探索到丰富的洞察结果。其中我们也为每一种洞察类型指定了最合理的可视化展示形式,因此我们提出洞察驱动:推荐出洞察并做对应展示的做法也是一种可视化推荐。除此之外,我们还完善了智能可视化推荐生态,当我们需要展示不同链路的推荐结果时,都可以使用 SmartBoard 模块和组件来做快速展示。我们在链路底层使用的是一套声明式可视化语法 antv-spec,未来我们希望把它建设为打通 AntV 各技术栈的底层描述语法。另外,我们将智能颜色生成和文本解读的插件能力整合到了 AVA 中,为用户提供更丰富的可视化选项。▍更合理的经验驱动推荐路径可视化是数据与人之间的桥梁,是为了让人更好地去理解和探索数据。智能可视化作为一种自动“搭桥”的过程,一头要对数据有充分的了解,对“桥梁”本身的结构也需要有系统化的理解,而另一头上又需要对人的视觉理解习惯有充分的了解。对数据的了解可以通过各种统计方法达成,对可视化结构的理解要基于专业知识和行业总结来提炼,而对于人的了解则必须通过大量经验性结论的积累。因此某种意义上来说,可视化推荐从来不是一个纯数学的问题,必须有对规则的形式化以及消费规则的合理流程。▍推荐流程全面支持定制化过去 AVA 使用的推荐机制,在源头上依赖 DataWizard 模块来做数据理解;使用 CKB(Chart Knowledge Base)模块来存储图表结构;而 ChartAdvisor 模块中既包含形式化规则的沉淀,也包含消费这些规则的基于约束系统的推荐流程。AVA 1.0 中一个比较棘手的问题是,对于其中很多信息的定义,不同业务上有不同的理解和要求。比如,对于图表结构来说,有的项目中认为折线图必须基于一个日期字段,而另外的项目则认为只要是具有“有序性”的字段都可以作为折线图的 x 轴。有的系统有一些自己定制的特殊图表类型,而这些小众图表类型并未被收录在 CKB 中。再比如,对于推荐规则,不同的项目对于饼图扇形的个数上限有不同的容忍度,甚至有的项目认为并不需要这方面的规则。更糟糕的是,自定义的图表类型,由于没有涉及它的规则,显然没有办法被推荐出来。自定义 CKB 增加了一个定制的图表类型“ironball”,自定义增加了一条有针对性的图表推荐规则,ChartAdvisor 成功推荐出了这种新的图表类型。图表类型和推荐规则的定制能力有限,显然限制了很多项目的接入。因此,AVA 2.0 更加完善了 CKB 和 ChartAdvisor 的定制能力。如上图的铁球图 Demo 所示,我们通过自定义 CKB 的方式新增了一种图表类型“铁球图”(ironball_chart)的信息结构,并使用特定的声明式语法 antv-spec 描述了这种图表的样式。这是一种将数值映射到角度但颜色统一为灰色的特殊饼图。然后我们向 ChartAdvisor 新增了一条自定义规则:当数值列的所有值都相等时“铁球图”的推荐分数会提高。然后我们向 ChartAdvisor 输入一个数值列都为 10 的数据集,在推荐列表中就出现了“铁球图”。这样的定制方式虽然仍然有较高的学习成本,但已经可以解决很多系统接入图表推荐时的定制化问题了。▍能对给定图表进行优化的 Linter然而,仅靠图表推荐只能实现“从无到有”,无法实现“从有到优”。很多数据产品中有大量用户创建的存量图表。这些现有的可视化图表可能存在很多问题,视觉编码选择不当、缺少 legend、使用错误的 annotation 等问题都会阻碍我们从可视化中获取有效知识,甚至会使理解真实数据变得困难。想要尽力避免可视化中可能出现的错误,往往需要图表制作者自身具有良好的可视化专业设计和技术知识。为了解决这样的问题,AntV 和同济大学智能大数据可视化实验室(IDVX Lab)进行了深入的校企合作,共同建设了一套图表优化方案 —— VizLinter。编程领域中广泛流行着 ESLint、Checkstyle、Pylint 等 Code Lint 工具。VizLinter 则是可视化领域的 Lint 工具。它能够根据可视化设计规则,自动识别图表设计中存在的问题,给出恰当的修改方案。有了 VizLinter,相当于有了可视化的一键美颜工具。我们可以让可视化图表生态完成从用户找功能,走向功能找用户的转变。让图表变得更智能,更懂用户。这一技术已经落地在蚂蚁集团内部的 BI 工具中,能够帮助用户识别存在问题的图表并修复,让用户立刻得到一张更好的图表。蚂蚁集团商业智能产品 DeepInsight 中的图表优化功能在今年国际可视化顶级会议 IEEE VIS 2021 上,AntV 和 iDVX Lab 携手发表了论文《VizLinter: A Linter and Fixer Framework for Data Visualization》。这一研究成果,宣示着传统的可视化图表开始逐渐成长为可自动识别和修复错误的智能图表。AntV 与同济 iDVX 共同发表的论文 VizLinter在 AVA v1 的设计中,ChartAdvisor 承担了过多的规则推定。虽然其中有些规则不完全客观,但也没有办法给使用者更多的选择机会。在新的架构中,我们为 ChartAdvisor 添加了 Linter 能力。同时,把 Advisor 和 Linter 分离,相对有确定性的规则放在 Advisor 中,而比较灵活、可选的规则放在 Linter 中。这样既可以基于被广泛认同的设计规则提供推荐建议,也将可能存在的问题对用户做提示,由用户来决定如何优化,整体链路灵活了许多。▍关系图可视化推荐全新上线还在为关系图可视化繁多和看不懂的配置项烦恼吗?还不知道手上的数据里是不是隐藏着有趣的关系?不如来试试 AVA 的关系图推荐能力,用一行代码自动生成关系图可视化,轻松看清数据中的关系网络。今年,AVA 在自动推荐传统统计图表的基础上,新增了关系图可视化推荐。现在,无论是描述实体间关系的图数据,还是表达层级结构或血缘关系的树型数据,甚至是隐藏在表格型数据中的关联关系,都可以借助 AVA 中的 ChartAdvisor 模块提供的可视化推荐能力,得到清晰的可视化呈现。AVA 中,关系图可视化推荐的技术流程和统计图表基本相同,通过数据处理和特征提取、基于规则系统的布局和点边样式推荐、渲染这三步将不易读懂的数据变成形象的图可视化。AVA 2.0 关系图可视化自动推荐示例▍从数据中自动获得洞察想要了解一份数据集时无从下手?AVA 全新的轻量级洞察挖掘模块 LiteInsight 允许用户从多维数据中自动地获取见解。我们可以自动地从底层数据中挖掘出有趣的模式和数据特征,将最重要的洞察进行排名、推荐和可视化,简化繁琐重复的探索式分析(EDA)流程。AVA 轻量级洞察挖掘模块 LightInsight 原理图探索性数据分析的主要目的是检测出数据中存在的错误、异常值以及了解数据中的不同模式。LiteInsight 目前支持从数据中发现类别型异常值、趋势、时序异常值等6种常用数据模式,并提供了共性、例外两种组合模式。这种对数据特征和模式的自动检测和提取,允许分析师在做出任何假设之前更好更迅速地理解数据。目前 LightInsight 支持检测的数据模式纯前端实现的 LiteInsight 拥有的轻量性和易用性,会为数据分析场景带来更多的可能性。有了这套能力,使用简单的几行代码便可以获取到隐含在数据集中的洞察,同时配套生成的可视化方案还可以有效地向用户传达洞察信息。除了基本的探索性分析作用,结合洞察在数据集中的分布,可以为用户的实时数据分析过程提供分析路径的指引,比如下钻推荐。AVA 官网 demo:从 Gapminder 数据集中自动提取洞察并进行可视化如何提高模式检测的质量和算法检测的性能并找到两者之间的平衡,是自动化的洞察提取流程中难以避免的挑战。与非前端方案相比,LiteInsight 对性能的要求会更加严格。支持更大数据量、扩展更多模式类型以及优化算法的质量性能是我们当下和未来都会持续解决的问题。一种最基础的 SmartBoard 界面形态另外,挖掘出多个洞察、推荐出多种图表,这种多图表场景的交互和查看也应该有一个更好的方案。这通常会用一种 Dashboard 或者报表的方式来呈现。不过我们认为,这类场景中图表与图表之间并非毫无关联,传统的 Dashboard 方案把自己看做图表的集合或者是列表,而实际上它应该是图表的图(Graph),能承载图表间的关系以及相应的交互。为此,我们着手尝试一套称之为 SmartBoard 的增强展现方案,此番一并发布了最简单的版本,也将会在未来持续优化。▍插件生态为了给图表推荐链路增加一些更灵活的能力,我们首次尝试提供插件的机制。仅需要在相关 API 中开启或配置某个配置项,就可以实现一系列附加效果。比如智能配色。想要做一张好看的图表乃至报表,选好颜色的搭配至关重要。很多用户反映希望推荐流程中可以优化配色。AVA 团队研发了智能配色类库 SmartColor 并将其以插件形式集成到了 AVA 2.0 中。这里有分类、渐变、发散等多种色板模式任君选择;对已有色板也可做到颜色优化和色彩校正,一触即达、快速舒心;针对灰度、色盲、暗色等场景,SmartColor 同样可以一键适配。AVA 官网 demo:针对红色弱用户进行颜色适配在自动洞察推荐中,你也可以通过配置项开启文本插件,即可获得结构化描述性文本,该结构针对不同类型的词语属性,自动匹配视觉标记,让洞察更直观易读。AVA 官网 demo:文本插件显示洞察描述▍《智能可视分析白皮书》今年 AVA 团队牵头发起了《智能可视分析白皮书》的撰写计划,希望将我们在探索智能可视化、增强分析等领域的过程中发现的问题、学习到的方法、实践后的经验总结并分享出来。其中会包括智能可视分析的基础概念和理论、图表推荐、洞察挖掘、智能体验优化、增强分析产品应用等等章节。这份白皮书会包含以下几个层面的内容:记录智能可视分析领域发展中存在的问题。哪怕尚未有解法也可以先把问题陈述清楚,等待大家一起去攻克。记录针对特定问题发现的解决方案和思路。有些问题我们虽然没有实践过,但调研学习过一些相关的学术论文、业界方案、其他领域的它山之石。把这些汇总起来,为解决问题提供助力。分享特定解决方案的实践经验。有些问题学到了解法或者自己设计了方案,并且实践过了。无论实践后的效果如何,把正反案例都分享出来,帮助同行业的尝试者更快速地前进。《智能可视分析白皮书》样图我们希望这份白皮书不是属于 AntV 的资产,而是业内一起来共建,希望每年都能迭代。我们今年将在官网发布《智能可视分析白皮书》并开放迭代知识库。欢迎大家下载、提供意见和建议。非常欢迎同领域的专家、学者、从业人员参与到这份白皮书的贡献中来。▍结语“让天下没有难做的数据分析”一直是 AVA 缔造者们的愿望。智能可视分析是我们进入真正大数据时代的钥匙之一,多一些有数据依托的决策,少一些拍脑袋的决定,这样全社会可以在多个层面大幅提效、减少资源浪费。作为这个新兴领域上的探索者之一,我们相信共享经验可以让全行业更快取得进步,也可以更早实现“让天下没有难做的数据分析”的理想。AVA 不断探索的新架构也好,白皮书也好,我们的所见、所试、所悟,也许是先进的,也许是错误的,但我们把经验分享出来,如果能让更多人知道和了解智能可视分析,并开始投身到这个有价值的事业中来,那么就是有意义的。也许最终目标的实现不是我们达成的,甚至不是我们这代人达成的,但至少我们在这个过程中起到了一份助力的作用,这就够了。期待与你同行!附录AntV 2021 品牌日的发布详情F系列:见微知著,扬帆起航御术和你聊聊AntV的那些事​技术专文S2:这个表格 「不简单」F2 4.0 面向未来,全新升级F6:小屏玩转图可视化G2 栈:潜心深造 · 统计图表Charts:一统江山 · 可视化组件G6 栈: 格物图新悟L7:一站式地理分析应用解决方案X6 深度打磨,日臻完善XFlow:应用级图编辑解决方案G:可视化渲染引擎AVA 2.0:洞见,新开篇设计专文格物 · 革悟,AntV 设计学海无涯《可视化入门:从 0 到 1 开发一个图表库》AntV 开源项目链接欢迎关注我们的 GitHub 项目,点亮 star 了解我们的实时动态,期待 PR:AntV 官网:https://antv.vision/G2:https://github.com/antvis/g2G2 是一套基于可视化编码的图形语法,以数据驱动,具有高度的易用性和扩展性,用户无需关注各种繁琐的实现细节,一条语句即可构建出各种各样的可交互的统计图表。G2Plot:https://github.com/antvis/g2plotG2Plot 的定位是开箱即用、易于配置、具有良好视觉和交互体验的通用图表库。S2:https://github.com/antvis/s2S2 是多维交叉分析领域的表格解决方案,数据驱动视图,提供底层核心库、基础组件库、业务场景库,具备自由扩展的能力,让开发者既能开箱即用,也能基于自身场景自由发挥。F2:https://github.com/antvis/f2(F2 4.0 新官网 http://f2-next.antv.vision) F2 是一个专注于移动,开箱即用的可视化解决方案,完美支持 H5 环境同时兼容多种环境(node, 小程序,weex)。完备的图形语法理论,满足各种可视化需求。专业的移动设计指引为你带来最佳的移动端图表体验。F6:https://github.com/antvis/f6 F6 是一个简单、易用、完备的移动端图可视化引擎,它在高定制能力的基础上,提供了一系列设计优雅、便于 使用的图可视化解决方案。能帮助开发者搭建属于自己的图可视化、图分析、或图编辑器应用。_F2Native:https://github.com/antvis/F2NativeF2Native 是一个专注于客户端,开箱即用、高性能的可视化解决方案,完备的图形语法理论,满足你的各种需求,专业的移动设计指引为你带来最佳的移动端图表体验。G6:https://github.com/antvis/g6G6 是 AntV 旗下的图可视化与图分析引擎,G 来自于 Graphic、Graph ,意味着我们要基于图分析技术做图可视化;6 来自于《六度分隔理论》,表达了我们对关系数据、关系网络的敬畏和着迷。Graphin:https://github.com/antvis/graphinGraphin 是一个基于 G6 封装的关系可视分析工具 ,简单,高效,开箱即用,取自 Graph Insight,图的分析洞察。X6:https://github.com/antvis/X6X6 是 AntV 旗下的图编辑引擎,提供了一系列开箱即用的交互组件和简单易用的节点定制能力,方便我们快速搭建 DAG 图、ER 图、流程图等应用。XFlow:https://github.com/antvis/XFlowX6 是基于 X6 图编辑引擎、面向 React 技术栈用户的专业的图编辑应用级解决方案, 帮助您轻松开发复杂的图编辑应用。目前已经在蚂蚁大数据/人工智能场景中深度打磨验证。L7:https://github.com/antvis/l7L7 是一个基于 WebGL 的开源大规模地理空间数据可视分析开发框架。L7 中的 L 代表 Location,7 代表世界七大洲,寓意能为全球位置数据提供可视分析的能力。L7Plot:https://github.com/antvis/l7plotL7Plot 是基于 L7 封装的简单易用、图表丰富、支持定制的地理空间数据可视化地理图表库。AVA:https://github.com/antvis/AVAAVA 是为了更简便的可视分析而生的智能可视化框架。G:https://github.com/antvis/g(G 5.0 新官网 http://g-next.antv.vision) G 是 AntV 几个产品共同的底层 2D 渲染引擎,高效易用,专注于图形的渲染、拾取、事件以及动画机制,给上层 G2、F2、G6 提供统一的渲染机制。Ant Design Charts:https://github.com/ant-design/ant-design-charts Ant Design Charts 是集齐 AntV 各技术栈的 React 版图表类库,包含统计图表、关系图表以及地理可视化 图表。ChartCube:https://chartcube.alipay.comChartCube 是一个可以快速完成图表制作的在线工具,只需要三步就可以创建出高品质的图表。编辑于 2021-11-26 11:22数据可视化商业智能(BI)大数据​赞同 13​​4 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录原支付宝体验科技新专栏地址:支付宝体验科技AntV蚂蚁数据可视化解决方案,让数据栩

【slowfast复现 训练】训练过程 制作ava数据集 复现 SlowFast Networks for Video Recognition 训练 train_slowfast模型复现-CSDN博客

>

【slowfast复现 训练】训练过程 制作ava数据集 复现 SlowFast Networks for Video Recognition 训练 train_slowfast模型复现-CSDN博客

【slowfast复现 训练】训练过程 制作ava数据集 复现 SlowFast Networks for Video Recognition 训练 train

最新推荐文章于 2024-03-02 18:46:14 发布

计算机视觉-杨帆

最新推荐文章于 2024-03-02 18:46:14 发布

阅读量9.2k

收藏

80

点赞数

10

文章标签:

slowfast

行为检测

人工智能

机器学习

计算机视觉

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/WhiffeYF/article/details/115431794

版权

目录

前言一,ava相关文件准备1.1 空间准备(500G)1.2 整体ava文件结构1.3 frames文件1.4 frame_lists 文件1.5 annotations 文件

二,预训练模型三,配置文件3.1 创建新的yaml文件3.2 yaml文件解释

四,训练

前言

b站视频讲解

slowfast官网

之前写了一个博客,是用slowfast的检测一个自己的视频的demo: 【SlowFast复现】SlowFast Networks for Video Recognition复现代码 使用自己的视频进行demo检测

我又花了2个月时间熟悉slowfast的框架,今天终于把slowfast的训练和数据集这一块跑通了。

这篇博客说一下slowfast的训练过程,这个训练耗时很长,难点体现在训练的数据量巨大,我用了1块GPU,训练了2个视频,估计花了1小时左右,保守估计,要把全部训练完,也就是299个视频,需要150小时左右,也就是6.25天(我没有训练完,只是拿了2个视频来训练,而且用的训练的模型是预训练模型,如果不用这个与训练模型,会花更多时间)

一,ava相关文件准备

1.1 空间准备(500G)

首先 在电脑上找一个空间很大的地方,因为ava相关文件要占很大的空间,我花了404G(没有视频,把视频裁剪为图片帧)

1.2 整体ava文件结构

下面是官网的结构图:

ava

|_ frames

| |_ [video name 0]

| | |_ [video name 0]_000001.jpg

| | |_ [video name 0]_000002.jpg

| | |_ ...

| |_ [video name 1]

| |_ [video name 1]_000001.jpg

| |_ [video name 1]_000002.jpg

| |_ ...

|_ frame_lists

| |_ train.csv

| |_ val.csv

|_ annotations

|_ [official AVA annotation files]

|_ ava_train_predicted_boxes.csv

|_ ava_val_predicted_boxes.csv

首先,在创建一个文件夹:ava,然后在ava文件下创建frames、frame_lists、annotations三个文件夹。

1.3 frames文件

在frames文件下,存放的视频的的图片帧,制作过程参考官网

1.4 frame_lists 文件

这里只存放了两个文件:train.csv、val.csv 下载地址:train.csv、val.csv

1.5 annotations 文件

这里不要使用官网的默认版本,采用最新的2.2版本,官网有一个下载的链接:https://dl.fbaipublicfiles.com/pyslowfast/annotation/ava/ava_annotations.tar

下载后,解压(我是在ubuntu下解压的),使用tree查看其结构:

├── ava_annotations

│ ├── ava_action_list_v2.1_for_activitynet_2018.pbtxt

│ ├── ava_action_list_v2.2_for_activitynet_2019.pbtxt

│ ├── ava_action_list_v2.2.pbtxt

│ ├── ava_included_timestamps_v2.2.txt

│ ├── ava_test_excluded_timestamps_v2.1.csv

│ ├── ava_test_excluded_timestamps_v2.2.csv

│ ├── ava_test_v2.2.csv

│ ├── ava_train_excluded_timestamps_v2.1.csv

│ ├── ava_train_excluded_timestamps_v2.2.csv

│ ├── ava_train_v2.1.csv

│ ├── ava_train_v2.2.csv

│ ├── ava_val_excluded_timestamps_v2.1.csv

│ ├── ava_val_excluded_timestamps_v2.2.csv

│ ├── ava_val_v2.1.csv

│ ├── ava_val_v2.2.csv

│ ├── person_box_67091280_iou75

│ │ ├── ava_detection_test_boxes_and_labels.csv

│ │ ├── ava_detection_train_boxes_and_labels_include_negative.csv

│ │ ├── ava_detection_train_boxes_and_labels_include_negative_v2.1.csv

│ │ ├── ava_detection_train_boxes_and_labels_include_negative_v2.2.csv

│ │ ├── ava_detection_val_boxes_and_labels.csv

│ │ ├── ava_detection_val_for_training_boxes_and_labels_include_negative.csv

│ │ └── ava_detection_val_for_training_boxes_and_labels_include_negative_v2.2.csv

│ ├── person_box_67091280_iou90

│ │ ├── ava_action_list_v2.1_for_activitynet_2018.pbtxt

│ │ ├── ava_detection_test_boxes_and_labels.csv

│ │ ├── ava_detection_train_boxes_and_labels_include_negative.csv

│ │ ├── ava_detection_train_boxes_and_labels_include_negative_v2.1.csv

│ │ ├── ava_detection_train_boxes_and_labels_include_negative_v2.2.csv

│ │ ├── ava_detection_val_boxes_and_labels.csv

│ │ ├── ava_detection_val_for_training_boxes_and_labels_include_negative.csv

│ │ ├── ava_detection_val_for_training_boxes_and_labels_include_negative_v2.1.csv

│ │ ├── ava_detection_val_for_training_boxes_and_labels_include_negative_v2.2.csv

│ │ ├── ava_train_predicted_boxes.csv

│ │ ├── ava_train_v2.1.csv

│ │ ├── ava_val_excluded_timestamps_v2.1.csv

│ │ ├── ava_val_predicted_boxes.csv -> ava_detection_val_boxes_and_labels.csv

│ │ ├── ava_val_v2.1.csv

│ │ ├── test.csv

│ │ ├── train.csv

│ │ └── val.csv

│ ├── test.csv

│ ├── train.csv

│ └── val.csv

└── ava_annotations.tar

将ava_annotations下的所有文件复制到/ava/annotations/中。

二,预训练模型

三,配置文件

3.1 创建新的yaml文件

在/SlowFast/configs/AVA/下创建一个新的yaml文件:SLOWFAST_32x2_R50_SHORT3.yaml,如下图

然后将下面的代码复制到SLOWFAST_32x2_R50_SHORT3.yaml中

TRAIN:

ENABLE: True

DATASET: ava

BATCH_SIZE: 2 #64

EVAL_PERIOD: 5

CHECKPOINT_PERIOD: 1

AUTO_RESUME: True

CHECKPOINT_FILE_PATH: '/home/lxn/0yangfan/SlowFast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50s.pkl' #path to pretrain model

CHECKPOINT_TYPE: caffe2

DATA:

NUM_FRAMES: 32

SAMPLING_RATE: 2

TRAIN_JITTER_SCALES: [256, 320]

TRAIN_CROP_SIZE: 224

TEST_CROP_SIZE: 224

INPUT_CHANNEL_NUM: [3, 3]

PATH_TO_DATA_DIR: '/disk6T/ava'

DETECTION:

ENABLE: True

ALIGNED: True

AVA:

FRAME_DIR: '/disk6T/ava/frames'

FRAME_LIST_DIR: '/disk6T/ava/frame_lists'

ANNOTATION_DIR: '/disk6T/ava/annotations'

#LABEL_MAP_FILE: 'ava_action_list_v2.1_for_activitynet_2018.pbtxt'

#0GROUNDTRUTH_FILE: 'ava_val_v2.1.csv'

#TRAIN_GT_BOX_LISTS: ['ava_train_v2.1.csv']

DETECTION_SCORE_THRESH: 0.8

TRAIN_PREDICT_BOX_LISTS: [

"ava_train_v2.2.csv",

"person_box_67091280_iou90/ava_detection_train_boxes_and_labels_include_negative_v2.2.csv",

]

#TRAIN_PREDICT_BOX_LISTS: ["ava_train_predicted_boxes.csv"]

TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"]

#TEST_PREDICT_BOX_LISTS: ["ava_test_predicted_boxes.csv"]

#EXCLUSION_FILE: "ava_train_excluded_timestamps_v2.1.csv"

SLOWFAST:

ALPHA: 4

BETA_INV: 8

FUSION_CONV_CHANNEL_RATIO: 2

FUSION_KERNEL_SZ: 7

RESNET:

ZERO_INIT_FINAL_BN: True

WIDTH_PER_GROUP: 64

NUM_GROUPS: 1

DEPTH: 50

TRANS_FUNC: bottleneck_transform

STRIDE_1X1: False

NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]]

SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [2, 2]]

SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [1, 1]]

NONLOCAL:

LOCATION: [[[], []], [[], []], [[], []], [[], []]]

GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]]

INSTANTIATION: dot_product

POOL: [[[1, 2, 2], [1, 2, 2]], [[1, 2, 2], [1, 2, 2]], [[1, 2, 2], [1, 2, 2]], [[1, 2, 2], [1, 2, 2]]]

BN:

USE_PRECISE_STATS: False

NUM_BATCHES_PRECISE: 200

SOLVER:

BASE_LR: 0.1

LR_POLICY: steps_with_relative_lrs

STEPS: [0, 10, 15, 20]

LRS: [1, 0.1, 0.01, 0.001]

MAX_EPOCH: 20

MOMENTUM: 0.9

WEIGHT_DECAY: 1e-7

WARMUP_EPOCHS: 5.0

WARMUP_START_LR: 0.000125

OPTIMIZING_METHOD: sgd

MODEL:

NUM_CLASSES: 80

ARCH: slowfast

MODEL_NAME: SlowFast

LOSS_FUNC: bce

DROPOUT_RATE: 0.5

HEAD_ACT: sigmoid

TEST:

ENABLE: False

DATASET: ava

BATCH_SIZE: 8

DATA_LOADER:

NUM_WORKERS: 2

PIN_MEMORY: True

NUM_GPUS: 1

NUM_SHARDS: 1

RNG_SEED: 0

OUTPUT_DIR: .

3.2 yaml文件解释

TRAIN 1.1. ENABLE: True。这里将TRAIN设置为TRUE,同样的,也要TEST.ENABLE设置为False(我们只需要训练的过程) 1.2 BATCH_SIZE: 2 #64.这里batch_size是由于我的电脑显存不够,只能设置为2,如果大家的显存够大,可以把这个batch_size设置的大一些。 1.3 CHECKPOINT_FILE_PATH: ‘/home/lxn/0yangfan/SlowFast/configs/AVA/c2/SLOWFAST_32x2_R101_50_50s.pkl’ 这里放的是预训练模型的位置DATA 2.1 PATH_TO_DATA_DIR: ‘/disk6T/ava’ 这里是ava文件的位置

其他也比较简单,大家就自己理解了。

四,训练

python tools/run_net.py --cfg configs/AVA/SLOWFAST_32x2_R50_SHORT3.yaml

优惠劵

计算机视觉-杨帆

关注

关注

10

点赞

80

收藏

觉得还不错?

一键收藏

知道了

34

评论

【slowfast复现 训练】训练过程 制作ava数据集 复现 SlowFast Networks for Video Recognition 训练 train

前言slowfast官网之前写了一个博客,是用slowfast的检测一个自己的视频的demo:【SlowFast复现】SlowFast Networks for Video Recognition复现代码 使用自己的视频进行demo检测我又花了2个月时间熟悉slowfast的框架,今天终于把slowfast的训练和数据集这一块跑通了。这篇博客说一下slowfast的训练过程,这个训练耗时很长,难点体现在训练的数据量巨大,我用了1块GPU,训练了2个视频,估计花了1小时左右,保守估计,要把全部训练完

复制链接

扫一扫

slowfast训练自定义数据集,识别动物行为

盛世芳华

07-15

7628

使用slowfast训练人类的行为没有任何问题,但训练动物行为时,出现了不收敛、map值不变等各种奇怪的问题。为解决这个问题,花了一周时间,故在此记录!动物行为预测,整理动物行为的数据集是最大的难点!刚开始准备的是猪的数据集,但由于猪栏里的猪只太多,导致图片标注的不准确,这应该也是训练过程不收敛的一个原因。所以先用我家的狗做个测试!!!.....................

Character_Recognition_Training__NN_for_classificat_crop_特征训练_特征识

07-14

图像特征识别通过神经网络训练方法实现,是学习参考的好资料

34 条评论

您还未登录,请先

登录

后发表或查看评论

SlowFast训练自己的数据集

weixin_43720054的博客

08-15

4321

SlowFast训练自己的数据集

[SlowFast]在NVIDIA Jetson Xavier 平台复现SlowFast

elegygg的博客

09-05

637

由于NVIDIA Jetson 平台的特殊性,在部署SlowFast时会遇到Python等的版本冲突问题,在此平台上部署比在一般linux平台上部署更加复杂。部署的时候走了太多弯路了,把部署的过程总结成本博客。

【slowfast复现】SlowFast Networks for Video Recognition代码复现

dai_tou_dage的博客

11-13

2594

2021年11月13日复现slowfast

本文记录了利用大佬教程复现的过程,以及过程中遇到的问题和注意点。

教程参考:

https://blog.csdn.net/WhiffeYF/article/details/113527759?spm=1001.2014.3001.5501

https://www.bilibili.com/video/BV1Pt4y1B7N9

极链AI云平台

可以用学生身份注册,会送100云币(100元)

全程跟着大佬教程复现即可,注意路径问题,基本不会遇见bug。

实验室服务器

SlowFast代码运行复现

weixin_41823992的博客

12-14

4109

SlowFast代码复现

SlowFast复现

qq_43428687的博客

03-21

4460

SlowFast复现目录参考环境准备配置slowfast环境代码修改测试有可能出现的错误

目录

参考

论文

github地址

参考博客:

【SlowFast复现】SlowFast Networks for Video Recognition复现代码 使用自己的视频进行demo检测

一、slowfast 代码复现

环境准备

windows下复现问题较多

租用网站的GPU:极链AI云平台

学生认证可以白嫖100云币券

创建实例

选择1个GPU就够用了

选择镜像

pytorch尽量选择最高版本的,上面两个博客

slowfast安装并训练自己的数据集

qq_36072670的博客

06-01

6967

安装

slowfast主页:https://github.com/facebookresearch/SlowFast

【SlowFasr ava数据集制作】

JYD_0307的博客

11-22

1724

slowfast—ava数据集制作

自定义AVA数据集流程及在SlowFast中训练

qq_45672807的博客

03-07

5902

自定义的AVA数据集在Linux系统下的训练

speech-emotion-recognition.rar_speech recognition_情感识别_脑训练_语音情感识

07-14

基于BP神经网络的语音情感识别系统

神经网络是近年来信息科学、脑科学、神经心理学等诸多学科共同关注和研究的热点。由于其具有良好的抽象分类特性,现已应用于语音识别系统的研究和开发,并成为解决识别相关问题的有效工具。文章在讲述语音识别过程的基础上重点讨论利用BP神经网络对语音进行识别,用MATLAB完成对神经网络的训练和测试,并获得满意的结果。

人脸识别之insightface使用自己的数据集制作训练文件以及详细说明

12-22

# 数据处理: 1、使用facenet中的文件或insight项目中的align_dataset_mtcnn.py将原始人脸数据先检测并处理成112x112大小,

2、制作训练集.rec文件

# python insightface/recognition/tools/im2rec.py --list --recursive /准备存放.lst的路径/准备存放.lst文件的名称(NBA) /图像文件夹路径/ #生成.lst

# python im2rec2.py /刚刚生成的.lst文件路径/.lst的文件名 /图像文件夹路径/ ##生成.rec

License Plate Recognition.zip (车牌号码识别,训练集-车牌字符集+测试集-彩色车辆车牌照片)

06-19

最近实验项目用到了车牌识别的数据集,在CSDN上下了格式各样的数据集,发现踩了好多坑。付出许多积分后我将好用的数据打包做了汇总,希望是你们所需要的。 该数据集包含两个文件夹,一是代表训练集的车牌字符集,(分割和标注好的车牌符号(英文+中文)的灰度图片)。 二是,用于作为测试数据的车牌照片(彩色车辆车牌照片)共183张。

SlowFast Networks for Video Recognition中文翻译.pdf

09-13

用知云文献翻译软件+自己的一些理解翻译的何神的这篇SlowFast Networks for Video Recognition论文

AI技术在室内定位的应用

jgtx8888的博客

03-01

1163

通过在室内布置信标节点,用户携带的移动设备可以接收到信标信号并计算出与信标的距离,进而确定自身位置。同时,一些新型的机器学习算法还可以处理复杂环境下的干扰问题,提高定位系统的鲁棒性。其中,AI技术在室内定位领域的应用越来越广泛,为我们的生活和工作带来了诸多便利。(2)提高鲁棒性:随着物联网技术的不断发展,室内定位系统将面临越来越多的干扰和挑战。随着AI技术的不断发展和普及,其在室内定位领域的应用将越来越广泛。(2)复杂环境下的定位精度:在复杂环境下,AI技术可能难以保证高精度的定位效果。

pytorch基础2-数据集与归一化

最新发布

qq_33345365的博客

03-02

1415

Dataset逐个样本检索数据集的特征和标签。在训练模型时,通常希望以“minibatch”的形式传递样本,在每个周期重混洗(reshuffle)数据以减少模型过拟合,并使用Python的多进程加速数据检索。在机器学习中,需要指定数据集中的特征和标签。**特征(Feature)**是输入,**标签(label)**是输出。我们训练特征,然后训练模型以预测标签。特征是图像像素中的模式。标签是10个类别类型:T恤,凉鞋,连衣裙等。DataLoader是一个可迭代对象,用简单的API抽象了这种复杂性。

文献速递:帕金森的疾病分享--多模态机器学习预测帕金森病

weixin_38594676的博客

03-01

1605

在调整后,此模型的性能得到改善,如下所述及表3中,未调整模型在PPMI的平均AUC指标为80.75,标准差为8.84(范围=69.44–88.51),而在PPMI调整后的平均AUC为82.17,标准差为8.96(范围=70.93–90.17)。请注意,x轴的限制可能会有所不同,因为一些模型基于对输入数据的适应度和使用的算法,天生就会产生比其他模型更不极端的概率分布,更详细的图像包含在补充图5中。其次,机器学习(ML)流程自动化和人工智能的进展,以最大化利用这些大量的、容易获得的数据的价值。

如何用ChatGPT+GEE+ENVI+Python进行高光谱,多光谱成像遥感数据处理?

2301_78164062的博客

03-01

1252

如何用ChatGPT+GEE+ENVI+Python进行高光谱,多光谱成像遥感数据处理?

制作训练集怎么标注数据

05-21

标注数据的方法取决于你要训练的模型类型和数据类型。

对于文本数据,常用的标注方法包括:

1. 命名实体识别(Named Entity Recognition,简称NER):标注出文本中的实体(如人名、地名、组织机构名等)。

2. 词性标注(Part-of-Speech Tagging,简称POS):标注每个单词的词性(如名词、动词、形容词等)。

3. 实体关系识别(Relation Extraction,简称RE):标注出文本中实体之间的关系。

4. 情感分析(Sentiment Analysis):标注出文本的情感极性(如正向、负向、中性等)。

对于图像数据,常用的标注方法包括:

1. 目标检测(Object Detection):标注出图像中的物体位置和类别。

2. 语义分割(Semantic Segmentation):将图像中的每个像素分配到一个特定的类别中。

3. 实例分割(Instance Segmentation):与语义分割类似,但是可以对同一类别的不同实例进行区分。

对于语音数据,常用的标注方法包括:

1. 语音识别(Speech Recognition):将语音转换成文本。

2. 说话人识别(Speaker Recognition):标注出语音中的说话人。

3. 语音情感识别(Speech Emotion Recognition):标注出语音的情感极性。

在标注数据时,需要注意保证标注的质量和一致性。可以借助一些工具(如Labelbox、Supervisely等)来辅助标注。

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

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

计算机视觉-杨帆

CSDN认证博客专家

CSDN认证企业博客

码龄6年

暂无认证

193

原创

2万+

周排名

8526

总排名

62万+

访问

等级

5431

积分

1363

粉丝

820

获赞

921

评论

4531

收藏

私信

关注

热门文章

pytorch 池化层——最大值池化nn.MaxPool2d() nn.MaxPool1d()

31983

自定义ava数据集及训练与测试 完整版 时空动作/行为 视频数据集制作 yolov5, deep sort, VIA MMAction, SlowFast

24326

Pytorch-view的用法 torch.view(参数a,参数b,...) 有的时候会出现torch.view(-1)或者torch.view(参数a,-1)这种情况。

24012

【slowfast 训练自己的数据集】自定义动作,制作自己的数据集,使用预训练模型进行训练,并检测其结果

23396

【SlowFast复现】SlowFast Networks for Video Recognition复现代码 使用自己的视频进行demo检测

22221

分类专栏

pytorch

7篇

mmacion2

1篇

slowfast

1篇

mmaction

2

卷积神经网络

13篇

yolo

9篇

机械臂

2篇

机器人

6篇

ros

16篇

moveit

2篇

gazebo

7篇

python

10篇

format

2篇

view

1篇

nn.Linear

1篇

池化层

1篇

nn.MaxPool

1篇

nn.MaxPool1d

nn.conv1d

1篇

nn.conv2d

1篇

kolourpaint

1篇

variable

1篇

tensor

1篇

神经网络

1篇

yolov3

1篇

目标检测

2篇

fcn

1篇

算法

2篇

最新评论

2023 安装 facebookresearch slowfast 自定义数据集训练 yolo数据集转ava数据集

EI-nino:

他应该是改了的 不然不会弹那个和90维度不匹配的报错

【ffmpeg裁剪视频faster rcnn自动检测 via】全自动实现ffmpeg将视频切割为图片帧,再使用faster rcnn将图片中的人检测出来,最后将检测结果转化为via可识别的csv格式

m0_69019262:

我更新了下ffmpeg就好了

【slowfast 训练自己的数据集】自定义动作,制作自己的数据集,使用预训练模型进行训练,并检测其结果

几米的机密:

我也不懂 有解答的嘛?

【win10-cpu-Yolov7】 windows10(cpu)上用yolov7跑视频demo

wdaisies:

请问下视频的大小怎么知道呀?

【faster rcnn 实现via的自动框人】使用detectron2中faster rcnn 算法生成人的坐标,将坐标导入via(VGG Image Annotator)中,实现自动框选出人的区域

几米的机密:

用via自动标注这部分能用你之前发的这篇去标注嘛?https://blog.csdn.net/WhiffeYF/article/details/124358725?spm=1001.2014.3001.5506

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

【读论文】Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?

RT-DETR rtdetr-r18 - ultralytics - YOLOv8版本训练自己的数据集

via 学生行为扩展模块 SCB5制作过程

2024年3篇

2023年20篇

2022年33篇

2021年55篇

2020年89篇

2019年1篇

2018年1篇

目录

目录

分类专栏

pytorch

7篇

mmacion2

1篇

slowfast

1篇

mmaction

2

卷积神经网络

13篇

yolo

9篇

机械臂

2篇

机器人

6篇

ros

16篇

moveit

2篇

gazebo

7篇

python

10篇

format

2篇

view

1篇

nn.Linear

1篇

池化层

1篇

nn.MaxPool

1篇

nn.MaxPool1d

nn.conv1d

1篇

nn.conv2d

1篇

kolourpaint

1篇

variable

1篇

tensor

1篇

神经网络

1篇

yolov3

1篇

目标检测

2篇

fcn

1篇

算法

2篇

目录

评论 34

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

AVA Actions Dataset 详解_ava数据集-CSDN博客

>

AVA Actions Dataset 详解_ava数据集-CSDN博客

AVA Actions Dataset 详解

最新推荐文章于 2023-04-03 13:58:41 发布

清欢守护者

最新推荐文章于 2023-04-03 13:58:41 发布

阅读量1.2w

收藏

132

点赞数

27

分类专栏:

数据集

文章标签:

数据集

时空行为检测

AVA

视频理解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/irving512/article/details/107212801

版权

数据集

专栏收录该内容

10 篇文章

2 订阅

订阅专栏

文章目录

0. 前言1. AVA简介1.1. 基本情况1.2. 如何获取1.3. 数据集构建过程1.4. annotations 解析

2. SlowFast2.1. 构建 `Ava` 对象2.3. 读取某个keyframe信息

3. MMAction

0. 前言

要基于AVA数据集做一些工作,网上的文章都不能满足我的要求,所以自己写一篇记录一下。参考资料:

官网(需要翻墙)相关论文 感想:

行为识别数据集下载真的困难,国内搞过的都懂……作为组里第一个吃螃蟹的,到现在还在跟 Kinetics-700、ActivityNet 等数据集死磕,辛酸泪。AVA 已经是最容易的了,毕竟可以用迅雷下载。 本文主要内容:

第一章:介绍AVA,如何获取、标注过程、annotations解析。第二章:SlowFast中解析AVA的过程。第三章:mmaction中解析AVA的过程。(尚未完成)

1. AVA简介

1.1. 基本情况

数据集类别:Spatio-Temporal Action Detection,即时空行为检测。

举个例子,就是检测出视频中所有人的位置以及对应的行为类别。 数据集形式(这里是简单介绍,后面会有更详细的说明):

要标记的内容包括人物bbox,以及每个人的行为类别,同一时间同一人可能有多个行为。

标记的内容还有还有每个实体编号,即相邻关键帧中的人物如果是同一个人,则拥有相同的实体编号。换句话说,“实体编号”其实就是目标跟踪的标签。 并不是对视频中的每一帧进行标记,而只是对关键帧进行标记。所谓关键帧,按我的理解就是每秒取1帧作为关键帧,对该帧进行标记。 行为类别:标签一共有80类,(但验证时只用到其中的60类)。80类标签分为三类(person movement, object manipulation, person interaction),具体信息如下。

person movement

bend/bow (at the waist)crawlcrouch/kneeldancefall downget upjump/leaplie/sleepmartial artrun/jogsitstandswimwalk object manipulation

answer phonebrush teethcarry/hold (an object)catch (an object)chopclimb (e.g., a mountain)clink glassclose (e.g., a door, a box)cookcutdigdress/put on clothingdrinkdrive (e.g., a car, a truck)eatenterexitextractfishinghit (an object)kick (an object)lift/pick uplisten (e.g., to music)open (e.g., a window, a car door)paintplay board gameplay musical instrumentplay with petspoint to (an object)presspull (an object)push (an object)put downreadride (e.g., a bike, a car, a horse)row boatsail boatshootshovelsmokestirtake a phototext on/look at a cellphonethrowtouch (an object)turn (e.g., a screwdriver)watch (e.g., TV)work on a computerwrite person interaction

fight/hit (a person)give/serve (an object) to (a person)grab (a person)hand claphand shakehand wavehug (a person)kick (a person)kiss (a person)lift (a person)listen to (a person)play with kidspush (another person)sing to (e.g., self, a person, a group)take (an object) from (a person)talk to (e.g., self, a person, a group)watch (a person)

1.2. 如何获取

两种获取方式

标签可以在官网上下载标签,视频可以通过 youtube-dl 获取。官方提供了aws数据源,具体可以参考这里。

可以用迅雷,可以用迅雷,可以用迅雷,重要的事说三遍。写个脚本写上所有视频链接地址,然后批量传入迅雷,美滋滋。(如果Kinetics和ActivityNet都能这么下就好了)可以用百度云离线下载,不过好像不能批量导入下载链接,没仔细研究。 SlowFast/MMAction 中都提供了 AVA 数据预处理相关脚本,具体在后续章节会介绍,可以参考。

1.3. 数据集构建过程

这部分内容主要参考了 数据集论文第一步:Action vocabulary generation

任务:确定要标注的行为类别以及继承关系。选择/设置“行为类别”时有三个准则:

generality,即通用性,而不是特定环境下的特定动作(如“在篮球场打篮球”)。atomicity,即原子性。每个动作都有其特点,且与交互的物体无关(如行为 hold 且不要指定hold的物体)。exhaustivity,即类别尽可能丰富。 第二步:Movie and segment selection

任务:构建原始视频数据集,为后续标注工作做准备。AVA的数据源来自电影片段。每个电影只标注第15-30分钟内的视频每个长度为15分钟的视频都转换为897个长度为3s的视频片段(clip)。

15分钟共900秒,窗口长度为3秒,stride为1秒,滑动897次得到897个clip。每个clip对对应一个keyframe(关键帧),关键帧是1.5秒位置。 搞了一个各个国家顶尖演员列表,然后在Youtube中对每个演员进行搜索,寻找符合条件的电影。

条件包括:有 file/television 标签,时长超过30分钟,发布时间超过1年,观看人数超过1000,且不包含黑白、低清晰度、卡通等类别的电影。 第三步:Person bounding box annotation

任务:针对每个keyframe标注人物bbox。使用了混合标注法:

先用Faster-RCNN标注,(说是 set operating point 从而保证高精度,不知道啥意思,猜测就是提高了阈值吧)。之后在人工标注遗漏的bbox。 bbox对最终结果影响很大,所以这一步会比较注意。 第四步:Person link annotation

任务:对相邻keyframe中的任务bbox进行关联。方法:

先机器标注一波:通过计算相邻两帧不同bbox之间的相似度,然后根据匈牙利算法进行匹配。再手动处理一波:手工删除FP样本。 第五步:Action annotation

任务:标注行为类别。通过众包实现。不可避免的,标注人会少标行为(因为行为太多了)。参考界面如下:

1.4. annotations 解析

以 v2.2 为例,解压 ava_v2.1.zip 得到的结果如下。

V2.1 和 V2.2 的区别:

标签内容没细看,可能v2.2细化了吧。但视频源没有任何变化,即V2.1与V2.2的 train/val/test 的视频是完全相同的。 行为类别文件:

ava_action_list_v2.1_for_activitynet_2018.pbtxt:60类行为,Evaluate时使用ava_action_list_v2.1.pbtxt:80类行为 行为标签文件:

ava_train_v2.1.csv、ava_val_v2.1.csv、ava_test_v2.1.txt其中,train/val有标签,test只是视频名称列表。train/val 每行代表一个样本,共有5个部分

video_id:视频名称,不包括文件后缀,即Youtube对应urlmiddle_Frame_timestamp:关键帧所在位置(第几秒)person_box:包括了四列,(x1, y1, x2, y2),分别代表左上、右下点的位置。action_id:即ava_action_list_v2.1.pbtxt中对应的id。person_id:bbox中人物的编号,即 person link 时产生的标签,每个人的id不同。 ava_included_timestamps_v2.2.txt:每个视频要检测的位置,即第902到1798秒。不需要进行检测的timestamp

ava_train_excluded_timestamps_v2.1.csvava_val_excluded_timestamps_v2.1.csvava_test_excluded_timestamps_v2.1.csv即 train/val/test 数据集中每个视频不需要进行检测的timestamp。

2. SlowFast

相关源码:

数据集预处理数据集解析(结果用于模型训练) 数据集解析源码主要模块

构建 Ava 对象,解析标签文件,设置数据预处理参数,以 clip 为单位保存相关信息。读取某个 clip 的相关信息。 流水账,没兴趣的跳过。

2.1. 构建 Ava 对象

第一步:为每个视频进行编号,并保存对应的帧绝对路径的列表。

从代码角度看保存了两个列表

_video_idx_to_name

每个视频原来有个 video_name,即youtube中对应url后缀,如 1j20qq1JyX4。在代码中,video_name用起来不方便,所以对视频进行编号,即每个 video_name 对应一个 video_id(从0开始编号)。本对象是 list,index就是 video_id,value就是video_name。 _image_paths

保存每个视频对应帧的绝对路径。本对象是list,index是 video_id,value是一个list(中每个元素是帧绝对路径,注意,这个list中帧文件的顺序必须是从小到大,不然后面代码有问题)。 源码细节:主要输入数据就是 frame_lists 文件

该文件不是AVA官方提供的,而是FAIR提供的,可以自己生成。该文件中保存有video_name以及对应所有帧的相对路径,且帧文件的顺序就是从小到大。 主要就是 ava_helper.load_image_lists 实现。 第二步:解析行为标签文件。

从代码角度看,就是构建了一个list boxes_and_labels

该数据类型是:boxes_and_labels[video_id][frame_sec_int] = list([box_i, box_i_labels])

boxes_and_labels[video_id].keys() 就是所有可用的时间点,即range(902, 1799)len(boxes_and_labels[video_id][frame_sec_int]) 就是这个时间点 box 的数量。 boxes_and_labels 整体是一个列表,index是 video_id,value是一个字典。该字典的 key 是 frame_sec_int,即 [902, 1798],表示视频中的第几帧。该字典的 value 是列表,取名为 value_list。value_list通过列表形式保存 bbox(x1, y1, x2, y2形式) 以及对应的labels(同一个box可能有多个标签)两部分信息。其中,box_i 的形式是 x1, y1, x2, y2。 源码细节:

这一步的输入数据主要包括GT与Predict两部分。GT指的就是AVA官方提供的标签文件,如ava_train_v2.1.csv。Predict指的是验证/测试时用的数据,只包括每个视频每一帧的人物bbox以及对应的score,不包括行为类别。包括 video_name, frame_sec, bbox_x1, bbox_y1, bbox_x2, bbox_y2, category, score。在使用Predict数据时会根据 score 筛选一部分数据。 主要通过 ava_helper.load_boxes_and_labels 实现。 第三步:构建关键帧数据。

从源码上看,就是构建了 _keyframe_indices 和 _keyframe_boxes_and_labels 两个列表。

这两个对象是配合使用的。两个列表中相同index的元素就是后续构建 clip 样本的输入数据。保存了所有可用关键帧相关信息。 _keyframe_indices

是个list对象,index的作用就是与 _keyframe_boxes_and_labels 对应。主要保存四个数据 video_idx, sec_idx, sec, frame_idxsec_idx 指的是当前关键帧在这个视频中所有关键帧的idx,从0开始取值。sec 指的是当前关键帧在这个视频中的位置,从902开始取值。frame_idx 指的是当前关键帧的具体编号,计算方法(sec-900)*FPS,其实就是每个clip的中心frame编号。 _keyframe_boxes_and_labels

是个list对象,index的作用就是与 _keyframe_indices 对应。其实就是将上一步中的 boxes_and_labels[video_id][frame_sec_int] 直接保存下来。 主要通过 ava_helper.get_keyframe_data 实现。

2.3. 读取某个keyframe信息

这里,每个keyframe的信息就是对应一个clip数据,主要就是通过 __getitem__ 实现。

输入的idx其实就是 2.2. 中第三步 _keyframe_indices 中的下标。 第一步:获取 _keyframe_indices 对应 idx 下标信息。

video_idx, sec_idx, sec, center_idx,sec_idx 从0开始取值,sec从902开始取值。 第二步:根据输入数据,进行数据采样。

以 center_idx 为中心,根据输入数据 _seq_len 和 _sample_rate 进行采样。采样细节:

从center_idx - _seq_len // 2开始,在 [center_idx - _seq_len // 2, center_idx + _seq_len // 2) 范围内,根据 _sample_rate 进行采样。_seq_len 的取值其实是 _sample_rate * _sample_frames_length 得到的。刚开始在想,为什么这个采样刚好就能用。列了不等式算了算,刚刚好,这个样子采样其实刚好能得到 _sample_frames_length 个帧下标。 第三步:获取 _keyframe_boxes_and_labels 获取该关键帧的所有boxes与对应label信息。第四步:根据采样结果以及 _image_paths 读取帧文件绝对路径,并读取对应图片。

_image_paths[video_idx][frame] for frame in seq,其中 seq 就是上面采样得到的结果。 第五步:图片数据预处理。

有pytorch与cv2两种模式,预处理的过程是一样的,只是调用的库不同。得到的结果都是 C, T, H, W 结构。预处理过程包括:

数据类型/范围转换:[0, 255] -> [0, 1]resize/crop操作:训练集 随机短边resize -> random crop -> random flip;验证集 短边resize -> center crop;测试集 短边resize。

随机短边resize通过 transform.random_short_side_scale_jitter 实现,根据输入参数 TRAIN_JITTER_SCALES 指定短边范围,随机获取其中数值作为短边的size,然后进行resize。 随机色彩变换,主要通过 transform.color_jitter 与 transform.lighting_jitter 实现。图像标准化,减去平均数除以标准差。 第六步:构建行为识别 one-hot 形式label。

label的shape为 [num_boxes, num_classes]。注意,每行可能不止一个类别为1。 第七步:分别为不同分支构建输入数据。

对于I3D模型,这一步其实也没做什么。对于SlowFast模型,这一步会分别对 Slow 分支与 Fast 分支构建对应的输入图片。

Fast分支就是之前输入的。Slow分支就是在T纬度上进行sample rate为SLOWFAST.ALPHA的采样。 第八步:构建输出数据。

输出数据包括四部分 imgs, labels, idx, extra_data。imgs 是第七步图像预处理的结果,是个list,分别对应每个分支的结果,每个分支的shape为 [C, T, H, W]labels 就是第六步的结果,shape为 [num_boxes, num_classes]idx 即 __getitem__ 的输入数据。extra_data 是个字典,包括三个数据:

boxes 经过数据预处理后的bbox。ori_boxes 原始 boxes,即在resize/crop等操作前的bbox。metadata 元数据列表,列表长度与 boxes 相同,每个元素都是 [video_id, sec]。sec从902开始取值。

3. MMAction

相关源码:

数据集预处理数据集解析(结果用于模型训练) 等待补充

优惠劵

清欢守护者

关注

关注

27

点赞

132

收藏

觉得还不错?

一键收藏

知道了

36

评论

AVA Actions Dataset 详解

文章目录0. 前言1. AVA简介1.1. 基本情况1.2. 如何获取1.3. 数据集构建过程1.4. annotations 解析2. SlowFast2.1. 构建 `Ava` 对象2.3. 读取某个keyframe信息3. MMAction0. 前言要基于AVA数据集做一些工作,网上的文章都不能满足我的要求,所以自己写一篇记录一下。参考资料:官网(需要翻墙)相关论文感想:行为识别数据集下载真的困难,国内搞过的都懂……作为组里第一个吃螃蟹的,到现在还在跟 Kinetics-7

复制链接

扫一扫

专栏目录

ava_v2.2.zip

07-26

ava_v2.2.zip数据集。包含了标签和视频链接。

AVA数据集下载链接.rar

06-10

Google发布AVA:一个用于理解人类动作的精细标记视频数据集,内存较大,30多G,支持广大网友下载~

36 条评论

您还未登录,请先

登录

后发表或查看评论

自定义AVA数据集流程及在SlowFast中训练

qq_45672807的博客

03-07

5902

自定义的AVA数据集在Linux系统下的训练

AVA数据集下载链接.txt

11-22

本文档中包含了AVA数据集的下载磁力链接,本文档中包含了AVA数据集的下载磁力链接,本文档中包含了AVA数据集的下载磁力链接,本文档中包含了AVA数据集的下载磁力链接,本文档中包含了AVA数据集的下载磁力链接

AVA数据集百度云地址

08-01

大规模美学质量评估数据库,图片有30多个G,迅雷没有会员下载不了,故上传至百度云(虽然不开会员也慢但是好在能下)

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

m0_50355568的博客

04-03

2262

(简称AVA)是由Google在2018年所发表的一个用于训练动作检测的数据集,该数据集注释430个15分钟电影切片中的80个原子视觉动作,在空间和时间上定位了动作,从而产生了1.62万个动作标签。这个数据中的内容有以下特点更多的使用原子动作而不是复合动作(如bow、kneel、jump、sleep等)对于每个人有更多的的时空标注(每个人会同时具有多种行为)在切片内的标注尽可能的详细(每个切片中的动作种类会尽可能丰富)物体在跨段中尽可能的连续(对于出现过的人会有ID进行标注)

AVA时空检测数据集下载—AVA_Actions&AVA_Kinetics

sleepinghm的博客

07-16

4210

这里写目录标题AVA系列AVA-ActionsAVA-KineticsAVA标注规范标签类别标注方式CSV格式旧版视频下载AVA-Actions下载AVA-Kinetics视频

以下代码可以在我的github找到。

欢迎访问个人主页、博客。

AVA系列

AVA数据集官方网站,需要科学上网,AVA提供4类数据集:

AVA-Kinetics(v1.0)):时空动作检测,包含来自 AVA v2.2 的原始 430 个视频,以及来自Kinetics-700 数据集的238k 个视频 。

AVA-Action

行为识别Action Recognition 数据集介绍

NcepuKZH的博客

04-30

5687

首先感谢 https://blog.csdn.net/dake1994/article/details/82591852,对其博客进行的转载。

对其中的部分数据集进行介绍:

UCF101

动作识别数据集,从youtube收集而得,共包含101类动作。其中每类动作由25个人做动作,每人做4-7组,共13320个视频,分辨率为320*240,共6.5G。

UCF101在动作的采集上具有非常大的多...

【论文笔记】AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions

WhiffeYF的博客

02-03

2412

摘要

本文介绍了一种具有时空定位(Spatio-temporally Localized)的原子视觉动作(AVA)视频数据集。这里的原子视觉动作即为谷歌推出的一个新的视频数据库,名称为“原子视觉行为(AVA)。AVA数据集在430个15分钟的视频剪辑中密集地注释了80个动作,动作在空间和时间上进行了定位,标注了1.58万个动作标签,每个人都有多个动作标签出现。

我们的数据集的关键特征是:

(1)定义原子视觉动作,而不是复合动作;

(2)精确的时空标注,每个人可能有多个标注;

(3)在15分钟的视频剪辑中对这

【ava数据集】ava数据集下载 使用迅雷

WhiffeYF的博客

03-18

7386

ava数据

ava_downloader:下载AVA数据集(用于审美视觉分析的大型数据库)

05-11

:flower_playing_cards: AVA数据集

大规模的审美视觉分析数据库

数据集下载

通过Mega或Torrent下载

:cloud: 巨型云

链接:

整个数据集已拆分为64个7z文件。 下载所有zip文件,解压缩第一个文件,它应该可以工作。 约32GB和255,500个图片文件。

:link: 激流

下载并与或其他客户端打开。

还支持磁铁链接。 有关更多详细信息,请访问 。

注意:由于torrent服务器的网络状况,下载过程可能会不稳定。 如果是这样,请改用Mega。

Bibtex:

@article{,

title= {AVA: A Large-Scale Database for Aesthetic Visual Analysis},

keywords= {images, aesthetics, semantic, quality, AVA, DPChallenge},

journal= {},

author= {N

谷歌发布AVA数据库 1705.08421 论文中文版

11-07

个人翻译的中文版,谷歌发布AVA数据库1705.08421 论文,如有问题请指出。侵权的话、会立即删除。

谷歌AVA数据集的论文 1705.08421

11-07

谷歌AVA数据集的1705.08421 原版论文。供有兴趣的了解的朋友分享,参考使用。

如有侵权,提出立即删除。

Vuex中mutations与actions的区别详解

08-27

下面小编就为大家分享一篇Vuex中mutations与actions的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Vuex mutitons和actions初使用详解

10-17

主要介绍了Vuex mutitons和actions初使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

vuex学习之Actions的用法详解

08-29

本篇文章主要介绍了vuex学习之Actions的用法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

vuex actions异步修改状态的实例详解

10-16

今天小编就为大家分享一篇vuex actions异步修改状态的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

HICO/HICO-Det 数据集介绍

清欢

03-23

9528

文章目录1. 基本信息2. HICO 概述2.1. 标注文件介绍3. HICO-DET3.2. 标注文件介绍附录80类物体列表117类行为列表600类 HOI 行为(动名词组合)列表

1. 基本信息

这是HOI(Human Object Interaction)领域最常用的数据集之二。

官方资料:官网,HICO论文,另一篇相关论文

PapersWithCode:HICO榜单,HICO-Det榜单

基本信息:包括117类行为,80类物体,600类动名词组合(查看附录)。

HICO-DET:共

AVA美学数据集下载

最新发布

10-20

AVA美学数据集是一个用于时空行为检测的数据集,包含430个视频,每个视频15分钟,每一秒标注一帧。如果您需要下载该数据集,可以通过官方数据源进行下载。为了提高下载速度,您可以在设置中同时下载最高值。此外,您可以参考《AVA Actions Dataset 详解》中提供的链接文档来获取训练集和测试集的下载链接。具体来说,您需要下载两个文件:ava_file_names_trainval_v2.1.txt(训练集)和ava_file_names_test_v2.1.txt(测试集)。

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

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

清欢守护者

CSDN认证博客专家

CSDN认证企业博客

码龄7年

暂无认证

224

原创

4万+

周排名

62万+

总排名

48万+

访问

等级

4410

积分

480

粉丝

411

获赞

337

评论

1999

收藏

私信

关注

热门文章

标注工具 VoTT 详细教程

16437

Java并发(1) i++的线程安全问题

12856

AVA Actions Dataset 详解

12109

文章汇总

11439

Yolov5 (1) 训练过程记录与解析

10906

分类专栏

OpenVINO

1篇

ROS

7篇

公开课

6篇

MNN

2篇

CV

98篇

CS194

5篇

工具

19篇

数据集

10篇

TensorRT

11篇

TVM

2篇

Docker

6篇

NCNN

2篇

CVAT

5篇

GCN

1篇

查漏补缺

2篇

Python

26篇

运维相关

3篇

C++

26篇

Linux

1篇

PyTorch

16篇

最新评论

在 VS2019 中编译/使用 Protobuf

TaroYang:

为什么需要在 *.ph.h 最前面添加 #define PROTOBUF_USE_DLLS

HICO/HICO-Det 数据集介绍

m0_56458478:

你好你现在知道怎么搞了吗

深入理解 TensorRT (1) TensorRT Python API 详解

biao.yan:

博主您好,我想请问一下get binding shape这里,一般默认的是分配的onnx的大小么?比如一个unet模型的输入大小在训练是用的是256×256的,而在推理的时候想要使用更大的图,应该怎么分配内存呢?

CVAT 使用(1) 界面与标注功能介绍

cornflowerzbq:

您好,我想询问一下在进行关键点标注的时候,如何添加visible的值呢

CVAT 系列开篇

_BEYOND_:

离线部署可以吗

最新文章

在 VS2019 中编译/使用 ZeroMQ

在 VS2019 中编译/使用 Protobuf

Windows 中使用 VS2019 开发 CMake 项目

2022年5篇

2021年79篇

2020年140篇

目录

目录

分类专栏

OpenVINO

1篇

ROS

7篇

公开课

6篇

MNN

2篇

CV

98篇

CS194

5篇

工具

19篇

数据集

10篇

TensorRT

11篇

TVM

2篇

Docker

6篇

NCNN

2篇

CVAT

5篇

GCN

1篇

查漏补缺

2篇

Python

26篇

运维相关

3篇

C++

26篇

Linux

1篇

PyTorch

16篇

目录

评论 36

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

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

>

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

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

喵芬奇

已于 2023-04-03 14:02:17 修改

阅读量2.2k

收藏

25

点赞数

4

分类专栏:

使用YOLO为动作识别制作数据集

文章标签:

YOLO

python

开发语言

于 2023-04-03 13:58:41 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/m0_50355568/article/details/129928179

版权

使用YOLO为动作识别制作数据集

专栏收录该内容

1 篇文章

2 订阅

订阅专栏

AVA数据集

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

数据集概述

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

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

数据集格式

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,总分为三大类的原子动作

人的姿势(pose)人和物体的交互(interactions with objects )人和其他人的交互(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)

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

一般性(generality):所选择的动作类别尽可能在全部环境下通用,而不是在特定环境中的特定动作原子性(atomicity):动作尽可能的独立并且基本完全性(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数据集的主要模式与其结构,确认了我们自己标注最终所需要的文件结构。同时我们了解了官方在标注的时候的过程,这将有助于我们更好地安排我们后续制作数据集所需要的步骤。在下一个部分中,我们将讲述如何对于视频进行预处理,使得其满足动作识别的任务要求。

优惠劵

喵芬奇

关注

关注

4

点赞

25

收藏

觉得还不错?

一键收藏

知道了

9

评论

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

(简称AVA)是由Google在2018年所发表的一个用于训练动作检测的数据集,该数据集注释430个15分钟电影切片中的80个原子视觉动作,在空间和时间上定位了动作,从而产生了1.62万个动作标签。这个数据中的内容有以下特点更多的使用原子动作而不是复合动作(如bow、kneel、jump、sleep等)对于每个人有更多的的时空标注(每个人会同时具有多种行为)在切片内的标注尽可能的详细(每个切片中的动作种类会尽可能丰富)物体在跨段中尽可能的连续(对于出现过的人会有ID进行标注)

复制链接

扫一扫

专栏目录

创建自己的AVA行为识别数据集以及MMLAB系列训练、测试自己的数据

qq_52053775的博客

10-29

741

新建好这些文件夹,也就是接下来咱们完成的内容配置好ffmpeg的环境变量,也就是把这个bin所在路径添加到环境变量这一步完成之后,可能需要重启才能用ffmpeg,然后打开命令行试一下这个命令表示成功对已经选择好的视频进行切割,比如固定长度是45秒(自己定)右键git bash打开命令行,执行脚本文件sh cut_videos.sh脚本文件对裁剪好的视频进行截帧操作,默认一秒30张图像即每1s只取一帧图像,同时去掉头部和尾部,执行video2img.py即可使用VIA来进行数据标注。

YOLO车辆行人四类别识别数据集

04-22

1、YOLO车辆行人四类别识别数据集,目标类别为person、car、bus、truck 共4个类别,4000多张行人车辆检测数据集,标签格式为txt和xml两种,分别保存在两个文件夹中

2、数据集和检测结果参考:https://blog.csdn.net/zhiqingAI/article/details/124230743

9 条评论

您还未登录,请先

登录

后发表或查看评论

基于yolov5 人体行为检测 跌倒 站立 蹲下 坐下 跑 五种行为检测目标检测

c9_0019的博客

11-07

2047

本文章用于学习与参考基于YOLOv5模型,实现了对人体行为的准确检测和分析。通过实验结果和分析,验证了该模型在人体行为检测领域的有效性和潜力。人体行为检测技术在安防、智能驾驶、人机交互等领域具有广泛应用前景,未来还有更多的研究和改进空间。通过不断探索和创新,我们有望进一步提升人体行为检测技术的性能和应用范围,为社会带来更多的便利和安全。

自定义ava数据集及训练与测试 完整版 时空动作/行为 视频数据集制作 yolov5, deep sort, VIA MMAction, SlowFast

热门推荐

WhiffeYF的博客

04-24

2万+

前言

这一篇博客应该是我花时间最多的一次了,从2022年1月底至2022年4月底。

我已经将这篇博客的内容写为论文,上传至arxiv:https://arxiv.org/pdf/2204.10160.pdf

欢迎大家指出我论文中的问题,特别是语法与用词问题

在github上,我也上传了完整的项目:https://github.com/Whiffe/Custom-ava-dataset_Custom-Spatio-Temporally-Action-Video-Dataset

关于自定义ava数据集,也是后台

自定义AVA数据集流程及在SlowFast中训练

qq_45672807的博客

03-07

5902

自定义的AVA数据集在Linux系统下的训练

AVA数据集下载链接.rar

06-10

Google发布AVA:一个用于理解人类动作的精细标记视频数据集,内存较大,30多G,支持广大网友下载~

AVA Actions Dataset 详解

清欢

07-08

1万+

文章目录0. 前言1. AVA简介1.1. 基本情况1.2. 如何获取1.3. 数据集构建过程1.4. annotations 解析2. SlowFast2.1. 构建 `Ava` 对象2.3. 读取某个keyframe信息3. MMAction

0. 前言

要基于AVA数据集做一些工作,网上的文章都不能满足我的要求,所以自己写一篇记录一下。

参考资料:

官网(需要翻墙)

相关论文

感想:

行为识别数据集下载真的困难,国内搞过的都懂……

作为组里第一个吃螃蟹的,到现在还在跟 Kinetics-7

AVA时空检测数据集下载—AVA_Actions&AVA_Kinetics

sleepinghm的博客

07-16

4210

这里写目录标题AVA系列AVA-ActionsAVA-KineticsAVA标注规范标签类别标注方式CSV格式旧版视频下载AVA-Actions下载AVA-Kinetics视频

以下代码可以在我的github找到。

欢迎访问个人主页、博客。

AVA系列

AVA数据集官方网站,需要科学上网,AVA提供4类数据集:

AVA-Kinetics(v1.0)):时空动作检测,包含来自 AVA v2.2 的原始 430 个视频,以及来自Kinetics-700 数据集的238k 个视频 。

AVA-Action

行为识别Action Recognition 数据集介绍

NcepuKZH的博客

04-30

5687

首先感谢 https://blog.csdn.net/dake1994/article/details/82591852,对其博客进行的转载。

对其中的部分数据集进行介绍:

UCF101

动作识别数据集,从youtube收集而得,共包含101类动作。其中每类动作由25个人做动作,每人做4-7组,共13320个视频,分辨率为320*240,共6.5G。

UCF101在动作的采集上具有非常大的多...

【论文笔记】AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions

WhiffeYF的博客

02-03

2412

摘要

本文介绍了一种具有时空定位(Spatio-temporally Localized)的原子视觉动作(AVA)视频数据集。这里的原子视觉动作即为谷歌推出的一个新的视频数据库,名称为“原子视觉行为(AVA)。AVA数据集在430个15分钟的视频剪辑中密集地注释了80个动作,动作在空间和时间上进行了定位,标注了1.58万个动作标签,每个人都有多个动作标签出现。

我们的数据集的关键特征是:

(1)定义原子视觉动作,而不是复合动作;

(2)精确的时空标注,每个人可能有多个标注;

(3)在15分钟的视频剪辑中对这

YOWO:你只看一次

05-10

您只看一次(YOWO)

PyTorch实施“只看”一文。 该存储库包含用于在AVA,UCF101-24和JHMDB数据集上使用PyTorch进行实时时空动作本地化的代码!

可以通过访问更新的论文

AVA数据集可视化!

UCF101-24和J-HMDB-21数据集可视化!

在这项工作中,我们目前YOWO(Y OU唯一一句W¯¯ATCHØNCE),统一CNN架构在视频流实时时空行动本地化。 YOWO是一个单阶段框架,输入是一个剪辑,由视频中的几个连续帧组成,而输出则预测边界框的位置以及当前帧中的相应类别标签。 然后,使用特定策略,可以将这些检测结果链接在一起,以在整个视频中生成“动作管”。

由于我们没有将人类检测和动作分类程序分开,因此可以通过在端到端框架中的联合损失来优化整个网络。 我们对两个具有挑战性的代表性数据集UCF101-24和J-HMDB-21进行了一系列比较评估。 我们

YOLO车辆行人识别数据集

05-26

1、YOLO车辆行人识别数据集 目标类别为person和car 共2个类别,5000多张行人车辆检测数据集,标签格式为txt和xml两种,分别保存在两个文件夹中 2、数据集和检测结果参考:...

YOLO人脸性别识别数据集+2300图片.rar

08-21

1、YOLO人脸性别识别数据集,真实场景的高质量图片数据,图片格式为jpg。 2、数据集详情展示和更多数据集下载:https://blog.csdn.net/m0_64879847/article/details/132301975

yolo5手势识别数据集+模型-.zip

07-13

标注的1300张数据集,以及训练好的模型,制作不易,欢迎下载

yolo格式手势识别数据集2

02-24

1、yolo格式手势识别数据集2,使用lableimg标注软件,标注好的真实场景的高质量图片数据,图片格式为jpg,标签yolo格式,txt文件,可以直接用于YOLO、Faster-RCNN等算法手机识别,数据场景丰富,包含图像,标注文件...

YOLOv9 最简训练教学!

最新发布

深度学习炼丹师,偶尔分享炼丹技术!

02-29

800

YOLOv9 最简训练教学!

【将标注信息为VOC格式的XML文件转换为YOLOv格式的TXT文件】

ban102055的博客

02-27

460

当将XML标签转换为YOLOv格式的TXT文件时,通常需要提取XML文件中的对象(物体)标注信息,并将其转换为适合YOLOv格式的文本。YOLOv格式的文本文件通常包含每个物体的类别、边界框的归一化坐标和宽高等信息。

yolov8-更换卷积模块-ContextGuidedBlock_Down

搬砖小能手

02-28

428

YOLOv6、YOLOv7、YOLOv8网络结构图(清晰版)

YMilton的专栏

02-26

416

YOLO系列网络结构图

水果识别数据集yolo

11-28

水果识别数据集yolo是一个为了训练和测试目的而创建的数据集,目标是通过使用yolo算法来在图像中准确地检测和识别各种水果。该数据集包含了大量水果的图像和相应的边界框标注。

在水果识别数据集yolo中,图像被标记为包含一个或多个水果的情况,并制定了每个水果的边界框。这些边界框能够精确地框选出水果的位置,在训练模型中起到关键作用。

数据集中包含了不同种类的水果,如苹果、香蕉、橙子等,并对每个水果的类别进行了明确的标记。这样的标记使得模型能够正确地将图像中的水果进行分类。

通过使用yolo算法进行训练,可以将水果识别模型与该数据集进行绑定,从而使其能够自动识别图像中的水果。该模型可以应用于各种场景,如农产品检测、水果购物、餐饮服务等,提供快速且准确的水果识别。

总之,水果识别数据集yolo是一个用于训练和测试水果识别模型的数据集,它能够为模型提供大量的水果图像和标注信息,帮助模型实现准确的水果检测和分类。

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

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

喵芬奇

博客等级

码龄4年

4

原创

11

点赞

65

收藏

13

粉丝

关注

私信

热门文章

【实例分割】Labelme数据集转换YOLO格式

2561

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

2256

基于SAM和Label Studio搭建半自动实例分割标注平台

225

Docker非守护式进程的持续运行

161

分类专栏

使用YOLO为动作识别制作数据集

1篇

最新评论

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

Ccola.:

好啊,最近刚开完题

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

m0_51497073:

您好,我近期也想做行为识别方面,可以一块交流学习吗

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

Ccola.:

大佬如果我想做动态手势识别数据集,这个方法是不是也可以

【实例分割】Labelme数据集转换YOLO格式

I_amwhite:

我找到了一个说是支持的,但是我没有用

【实例分割】Labelme数据集转换YOLO格式

w781425160:

兄弟 你找到支持多边形转yolo的了吗?

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

基于SAM和Label Studio搭建半自动实例分割标注平台

Docker非守护式进程的持续运行

【实例分割】Labelme数据集转换YOLO格式

2023年4篇

目录

目录

分类专栏

使用YOLO为动作识别制作数据集

1篇

目录

评论 9

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

自动化测试(五)01-js测试框架AVA——AVA简介 & ava特点-轻量和高效 & ava安装测试-不需安装依赖babel_ava 前端框架 测试框架-CSDN博客

>

自动化测试(五)01-js测试框架AVA——AVA简介 & ava特点-轻量和高效 & ava安装测试-不需安装依赖babel_ava 前端框架 测试框架-CSDN博客

自动化测试(五)01-js测试框架AVA——AVA简介 & ava特点-轻量和高效 & ava安装测试-不需安装依赖babel

最新推荐文章于 2024-03-05 22:02:34 发布

viceen

最新推荐文章于 2024-03-05 22:02:34 发布

阅读量754

收藏

3

点赞数

分类专栏:

架构和运维

文章标签:

javascript

自动化

前端

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_44867717/article/details/123159255

版权

架构和运维

专栏收录该内容

77 篇文章

15 订阅

订阅专栏

自动化测试(五)01-js测试框架AVA——AVA简介 & ava特点-轻量和高效 & ava安装测试-不需安装依赖babel

简约之美AVA

官网——https://github.com/avajs/ava

简单的说ava是mocha的替代品:

es6语法支持更好,对aysnc/await有支持执行效率更高,使用io并发,就必须保证测试的原子性语义上更简单,集众家之长

虽然 JavaScript 是单线程,但在 Node.js 里由于其异步的特性使得 IO 可以并行。AVA 利用这个优点让你的测试可以并发执行,这对于 IO 繁重的测试特别有用。另外,测试文件可以在不同的进程里并行运行,让每一个测试文件可以获得更好的性能和独立的环境。

AVA特点

轻量和高效 简单的测试语法 并发运行测试 强制编写原子测试 一旦开始,就一直运行到结束,中间不会切换到另一个测试 没有隐藏的全局变量 为每个测试文件隔离环境 用 ES2015 编写测试——不需安装依赖babel 支持 Promise 支持 Generator 支持 Async 支持 Observable 强化断言信息 可选的 TAP 输出显示

简明的堆栈跟踪

安装&开始

情景一:

// 创建一个ava项目

npm init ava

形成package.json

{

"name": "awesome-package",

"scripts": {

"test": "ava"

},

"devDependencies": {

"ava": "^1.0.0"

}

}

生成命令,进行测试

npm run test

npx ava

情景二:(推荐)

npm init -y

// npm & cnpm

npm install -D ava

// yarn

yarn add ava -D

测试ava正常安装:

➜ npx ava --version

2.2.0

优惠劵

viceen

关注

关注

0

点赞

3

收藏

觉得还不错?

一键收藏

知道了

0

评论

自动化测试(五)01-js测试框架AVA——AVA简介 & ava特点-轻量和高效 & ava安装测试-不需安装依赖babel

自动化测试(五)01-js测试框架AVA——AVA简介 & ava特点-轻量和高效 & ava安装测试-不需安装依赖babel简约之美AVA官网——https://github.com/avajs/ava简单的说ava是mocha的替代品:es6语法支持更好,对aysnc/await有支持执行效率更高,使用io并发,就必须保证测试的原子性语义上更简单,集众家之长虽然 JavaScript 是单线程,但在 Node.js 里由于其异步的特性使得 IO 可以并行。AVA 利用这

复制链接

扫一扫

专栏目录

参与评论

您还未登录,请先

登录

后发表或查看评论

Ava 自动化测试----对函数的简单测试和对Http接口的测试

Little_Pig_Bug的博客

07-30

1339

准备工作。。。。。。。。

简单的js文件测试

1.在本地新建一个文件夹ava-test,cmd定位到改文件下,将ava安装到该项目下,即npm install ava --save-dev,然后在此文件下面新建一个package.json文件,如下图:

{

"scripts": {

"test": "ava",

},

"devDependencies": {

"ava": "^.

前端测试框架与工具

_

01-01

533

TestCafe

Write tests in JS or TypeScript, run them and view results

Puppeteer

Headless Chrome Node.js API

Storybook

UI component dev & test: React, Vue, Angular, React Native, Ember, Web Components & more!

Cypress

Fast, easy and reliab..

9大高效的前端测试工具与框架!

12-07

30

在每个Web应用程序中,作为用户直接可见的应用程序外观,“前端”包括:图形化的用户界面、相应的功能、及其整体站点的可用性。我们可以毫不夸张地说:如果前端无法正常工作,您将无法“拉新”网站的潜在用户。这也正是我们需要对Web应用执行前端测试的重要原因。为了确保Web应用无论发生了何种变更之后,其对应的前端都能够与bug“隔离”,我们需要针对前端开展各种测试,主要包括:测试应用程序的基本功能、用户的界面和整体的可用性。

前端框架Avalon:简介

热门推荐

南城叁蜀

09-19

1万+

avalon 2

迷你 、 易用 、 高性能 的前端MVVM框架

测试页面avalon仓库perf目录下的index.html, index.*.html文件

简介

avalon2是一款基于虚拟DOM与属性劫持的 迷你、 易用、 高性能 的 前端MVVM框架, 拥有超优秀的兼容性, 支持移动开发, 后端渲染, WEB Component式组件开发, 无需编译, 开箱即用

web前端框架avalon使用详解

mengtianqq的博客

08-23

1958

web前端框架avalon使用详解

目录

一、avalon介绍:

二、avalon使用详解:

1、 引入avalon.js。

2、创建avalon实例。

3、编写引用的代码,注意事项,

一、avalon介绍:

        avalon是一款基于虚拟DOM与属性劫持的迷你,易用,高性能的前端MVVM框架,拥有超优秀的兼容性,支持移动开发,后端渲染,WEB Component式组件...

前端测试框架简述

kaiyuanheshang的博客

04-14

2748

基础框架为:mocha 和 ava。这两个基础框架没有断言。需要配合断言库一起使用,常用的断言库有:chai should.js expect better-assert

开箱即用的集成框架有:Jasmine Jest

【前端学java】JAVA开发的依赖安装与环境配置

weixin_46769087的博客

07-21

316

学习java,我们首先需要了解什么是JDKJRE、JVM。名称释义JDK是一个完整的开发环境,包含JRE 和开发人员使用的工具JRE是Java程序的运行时的环境,包含JVM 和运行时所需要的核心类库JVMJVM是Java虚拟机的缩写,是Java应用程序运行时的执行环境。简单来说,作为开发者,我们的电脑安装JDK就可以。

七款优秀的Java测试框架,你最适合哪一个?

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。

04-27

574

Java是当今最流行的编程语言之一,常年位居最受欢迎编程语言排行榜前三。

一个优秀的Java程序员,在研发时离不开对测试框架的了解,从而开发出更安全和更高效的代码。使用这些测试框架的其中一个最重要的原因是减少出错的可能性,提高开发效率,并降低研发成本。

自动化测试(五)03-js测试框架AVA——ava中的断言api之pass、fail、false、is、regex、not、throws

weixin_44867717的博客

02-27

526

自动化测试(五)03-js测试框架AVA——ava中的断言api之pass、fail、false、is、regex、not、throws

ava中的断言:

.pass([message])

.fail([message])

.assert(value, [message])

.truthy(value, [message])

.falsy(value, [message])

.true(value, [message])

.false(value, [message])

.is(value, expecte

nuxt-ava-e2e单元测试::test_tube:Nuxt + Ava用于端到端和单元测试

01-31

Nuxt和Ava 带有应用->单元测试和E2E测试 构建设置 # install dependencies $ npm install # serve with hot reload at localhost:3000 $ npm run dev # build for production and launch server $ npm run build $ ...

ava-playback:记录和回放ava测试中的http请求

02-06

在测试中处理HTTP请求可能很痛苦,更重要的是容易出错,因为我们必须手工处理所有内容。 很少有库可以解决这种情况,例如 。 但是它们的设置有些复杂...安装第一件事yarn add ava-playback要么npm i ava-playback --sa

ava-fast-check:基于快速检查的AVA基于属性的测试

05-01

将基于属性的测试框架的强大功能带入AVA。 ava-fast-check简化了将快速检查集成到AVA测试框架中的过程。 入门 安装ava-fast-check及其对等项依赖项: npm install --save-dev ava fast-check ava-fast-check 例子 ...

gulp-ava:运行AVA测试

02-03

gulp-ava 运行测试安装$ npm install --save-dev gulp-ava用法const gulp = require ( 'gulp' ) ;const ava = require ( 'gulp-ava' ) ;exports . default = ( ) => (gulp . src ( 'test.js' )// `gulp-ava` needs ...

ava-ts:with具有本机打字稿支持的AVA测试运行器的前叉

02-06

AVA-TS 本机TypeScript支持sindresorhus...安装npm install --save-dev ava-ts ava ts-node# Using yarn:yarn add --dev ava-ts ava ts-node用法像往常一样用TypeScript编写测试,并像往常一样从ava而不是从ava-ts导

Vue.js 修饰符:精准控制组件行为

你若盛开,清风自来

03-04

993

本文将带你深入了解 Vue.js 中的修饰符,学会如何使用修饰符来精确控制组件的行为。通过 MD 语法和多级标题结构,为你呈现一部适合 CSDN 发布的技术博客。修饰符是 Vue.js 提供的一种特殊属性,用于修改组件的默认行为。它们通常用于事件监听器和属性绑定上,可以让我们更精确地控制组件的行为。Vue 修饰符是 Vue.js 中的一个核心功能,允许你在 Vue 模板中使用自定义的 HTML 属性来扩展元素的功能。修饰符通常用于对事件处理程序或表达式进行额外的操作。

Vue2/3如何强制重新渲染整个页面

Fisher的专栏

03-05

649

VoerkaI18n是一个非常优秀的前端多语言解决方案库,提供初始化、提取文本、自动翻译、编译、自动补丁等工具链支持。本文介绍了在开发@voerkai18n/vue时如何制刷新页面的经验和技巧

JS实现禁止浏览器的一些常规操作

huaweichenai的博客

03-05

329

【代码】JS实现禁止浏览器的一些常规。

Echarts+D3气泡图

最新发布

qq_52696618的博客

03-05

344

【代码】Echarts+D3气泡图。

open-vm-tools packages are ava

03-16

ilable for installation on most Linux distributions. These packages provide the necessary drivers and tools for running virtual machines on a Linux host using VMware software. They are open source and...

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

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

viceen

CSDN认证博客专家

CSDN认证企业博客

码龄5年

暂无认证

1303

原创

12万+

周排名

7976

总排名

219万+

访问

等级

1万+

积分

509

粉丝

902

获赞

257

评论

4633

收藏

私信

关注

热门文章

gitlab添加SSH密钥——查看本地密钥 & 生成ssh密钥

54406

Vue中失去焦点时所触发的事件

38630

vue中this.$route.query和this.$route.params & query传参和params传参的使用和区别

37573

vue中,动态绑定样式——动态绑定style写法 & 动态class写法

34287

内容管理(八)02-删除-响应无内容处理- JSONBIG.parse(null) 报错-代码最好使用try{}catch(){},弹出框确认消息组件使用

28201

分类专栏

node.js进阶

54篇

工具

152篇

vue3+ts-运维

66篇

html和css

14篇

node-axios

43篇

js知识

147篇

vue3.0知识

20篇

vue-创新

63篇

vue知识

102篇

面试类

8篇

node.js基础

43篇

jQuery

7篇

可视化

130篇

vue项目-运维

98篇

webpack

25篇

vue-评分-前后台

36篇

vue.js进阶

45篇

架构和运维

77篇

ts知识

10篇

休闲

6篇

项目-vue-PC端

53篇

redux

46篇

react知识

54篇

项目-react-移动端

85篇

项目-小程序-mpvue框架

62篇

小程序知识

40篇

vuex

12篇

项目-vue-移动端

65篇

最新评论

可视化工具D3.js教程 入门 (第十三章)—— 树状图

Linuxerrrr:

请问一下,value:100这个值的作用是干什么的

GIS工具maptalks开发手册(四)01——渲染地图信息框之添加绘制工具、获取点的坐标数据信息框进行展示

viceen:

确实挺好用

GIS工具maptalks开发手册(四)01——渲染地图信息框之添加绘制工具、获取点的坐标数据信息框进行展示

nishiwangbaduzi:

打点 画线面的 用GIS土豆就挺好 https://gistodo.com

小程序项目之猫眼案例-代码

2301_81391244:

获取后台接口数据版页面是js吗还是wxml

禅道项目管理——bug管理工具

viceen:

好的 我访问一下看看

自荐文章

记一次接口性能优化实践总结:优化接口性能的八个建议

516

如何恢复未保存的 Excel 文件

327

cesium 修改实体颜色

306

Power Apps-操作SharePoint数据表

BIM+物联网,打开数字孪生世界之门

最新文章

网络爬虫开发(五)02-爬虫高级——Selenium的使用-反爬虫机制简介 & Selenium的API学习 & 实战之自动打开浏览器输入关键字进行搜索、爬取需要的数据、自动翻页 & 相关爬虫知识总结

网络爬虫开发(五)01-爬虫高级——Selenium简介 & 根据平台选择安装selenium-webdriver包 & Selenium的基本使用

网络爬虫开发(四)-爬虫基础——环境准备、定义options接口、抽取公共部分代码、定义抽象方法、实现TeacherPhotos类、实现NewsList类及总结

2023年132篇

2022年301篇

2021年482篇

2020年388篇

目录

目录

分类专栏

node.js进阶

54篇

工具

152篇

vue3+ts-运维

66篇

html和css

14篇

node-axios

43篇

js知识

147篇

vue3.0知识

20篇

vue-创新

63篇

vue知识

102篇

面试类

8篇

node.js基础

43篇

jQuery

7篇

可视化

130篇

vue项目-运维

98篇

webpack

25篇

vue-评分-前后台

36篇

vue.js进阶

45篇

架构和运维

77篇

ts知识

10篇

休闲

6篇

项目-vue-PC端

53篇

redux

46篇

react知识

54篇

项目-react-移动端

85篇

项目-小程序-mpvue框架

62篇

小程序知识

40篇

vuex

12篇

项目-vue-移动端

65篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值