深度学习半自动化视频标注工具——VATIC使用教程

2023-11-17

Vatic简介

 Vatic是一个带有目标跟踪的半自动化视频标注工具,适合目标检测任务的标注工作。输入一段视频,支持自动抽取成粒度合适的标注任务并在流程上支持接入亚马逊的众包平台Mechanical Turk,当然也可以自己在本地标注。最大的特点是它内含基于opencv的tracking,这样一段视频只需抽样标注就好了,大大减少了工作量。下图是官网一个标注篮球比赛球员的示例。

Vatic使用方法

vatic安装及启动

如果想自己手动配置,可以参考vatic的github

但更推荐使用docker,可以使用如下命令拉取vatic镜像:

docker pull jldowns/vatic-docker-contrib

接着设置一个自己的标注project文件夹DATA_DIR,映射到vatic的工作文件夹病运行镜像:

docker run -it -p 8080:80 -v $DATA_DIR:/home/vagrant/vagrant_data jldowns/vatic-docker-contrib:0.1

启动MySQL和Apache服务:

/home/vagrant/start_services.sh

vatic标注

在标注前,首先要把自己的视频文件中的帧抽取出来:

cd /home/vagrant/vatic
turkic extract /home/vagrant/vagrant_data/your_video.mp4 /home/vagrant/vagrant_data/your_video_frames/

vatic默认把每一帧resize到720x480,可以通过width和height指定自己想要的尺寸:

turkic extract /home/vagrant/vagrant_data/your_video.mp4 /home/vagrant/vagrant_data/your_video_frames/ 
--width 1000 --height 1000

如果你已经将视频抽取为帧,可以使用如下命令讲其转化为vatic使用的格式:

turkic formatframes /home/vagrant/vagrant_data/your_video_frames /home/vagrant/vagrant_data/vatic_video_frames/

第二步载入视频帧文件夹,为该标注任务设置一个job_id,并指定标注的label:

turkic load job_id /home/vagrant/vagrant_data/your_video_frames/ Label1 Label2 Label3 --offline

离线在本地发布任务:

turkic publish --offline

vatic会自动将视频分割成几段来进行标注,每一段都会有一个URL,执行上一条命令会返回每一段任务的URL:

http://localhost/?id=1&hitId=offline
http://localhost/?id=2&hitId=offline
http://localhost/?id=3&hitId=offline
http://localhost/?id=4&hitId=offline
http://localhost/?id=5&hitId=offline

访问上述地址进行标注,端口号为启动vatic时指定的映射端口号,在本例中为8080,所以URL应该是http://localhost:8080/?id=1&hitId=offline

如图所示是在浏览器打开URL的标注页面。

结束标注并保存后使用如下命令讲标注结果导出,

turkic dump job_id -o /home/vagrant/vagrant_data/annotations --pascal --pascal-skip 1

vatic支持以下保存格式,可以在保存时指明自己想要的格式,默认txt,例如常用的pascal格式,--pascal-skip用来指定相隔多少帧保存一次数据,默认是15帧。

--xml       Use XML
--json      Use JSON
--matlab    Use MATLAB
--pickle    Use Python's Pickle
--labelme   Use LabelMe video's XML format
--pascal    Use PASCAL VOC format, treating each frame as an image

以上就是vatic最基本的功能,更多细节请参考vatic github主页

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习半自动化视频标注工具——VATIC使用教程 的相关文章

随机推荐

  • PackagesNotFoundError: The following packages are not available from current channels

    因为要用到lifelines 包 在cmd中使用conda install lifelines 显示如下错误 PackagesNotFoundError The following packages are not available fr
  • uniapp 离线打包webview无法上传图片问题

    离线打包上传文件选择文件上传失败 从文件点击选择的内容可以上传成功 其他路径进去上传失败 查了好久是因为清单文件的目标版本targetSdkVersion 写了29 改成28或者不填就好了
  • SpringBoot + Spring Security多种登录方式:账号+微信网页授权登录

    大家好 我是宝哥 一 概述 实现账号用户名 微信网页授权登录集成在Spring Security的思路 最重要的一点是要实现微信登录通过Spring Security安全框架时 不需要验证账号 密码 二 准备工作 要实现该功能 首先需要掌握
  • win10台式机rtl8188eu(FW 150 UM V2.0)无线网卡无法连接wifi(无法连接到这个网络)

    同一个网卡 同一个WiFi 在笔记本上能用 能连接wifi 但是在台式机上就不能连接wifi 提示 无法连接到这个网络 如下图 win10版本都是1903 尝试换各种驱动都没解决 最后更新主板bios 然后从微星主板客服得知可以问京东自营的
  • 高校评优评奖管理系统

    这是一个高校评优评奖管理系统 供大家参考学习 不懂的地方可以联系本人 1 管理员登陆 学生申请 管理员后台 评优记录 数据维护 信息统计 系统设置 学生申报 微信 17777665965 QQ 1161724197
  • 纯 CSS 开关切换按钮

  • brk和sbrk及内存分配函数相关

    brk和sbrk主要的工作是实现虚拟内存到内存的映射 在GNUC中 内存分配是这样的 每个进程可访问的虚拟内存空间为3G 但在程序编译时 不可能也没必要为程序分配这么大的空间 只分配并不大的数据段空间 程序中动态分配的空间就是从这 一块分配
  • 【Spark系列2】reduceByKey和groupByKey区别与用法

    在spark中 我们知道一切的操作都是基于RDD的 在使用中 RDD有一种非常特殊也是非常实用的format pair RDD 即RDD的每一行是 key value 的格式 这种格式很像Python的字典类型 便于针对key进行一些处理
  • 微前端--qiankun原理概述

    demo放最后了 一 微前端 一 微前端概述 微前端概念是从微服务概念扩展而来的 摒弃大型单体方式 将前端整体分解为小而简单的块 这些块可以独立开发 测试和部署 同时仍然聚合为一个产品出现在客户面前 可以理解微前端是一种将多个可独立交付的小
  • Android 热补丁动态修复框架小结

    转载 http blog csdn net xdgaozhan article details 51848570 一 概述 最新github上开源了很多热补丁动态修复框架 大致有 https github com dodola HotFix
  • Python与OpenCV(三)——基于光流法的运动目标检测程序分析

    光流的概念是指在连续的两帧图像当中 由于图像中的物体移动或者摄像头的移动而使得图像中的目标形成的矢量运动轨迹叫做光流 本质上光流是个向量场 表示了一个像素点从第一帧过渡到第二帧的运动过程 体现该像素点在成像平面上的瞬时速度 而当我们对图像当
  • oracle 游标 上限,ORA-01000: 超出打开游标的最大数

    语言 java 数据库 oracle 开发中通过jdbc做批量删除对象时 出现了如下异常 java sql SQLException ORA 01000 超出打开游标的最大数 at oracle jdbc driver T4CTTIoer
  • UE5_创建C++项目报错

    UE官方VS安装推荐 https docs unrealengine com 4 26 en US ProductionPipelines DevelopmentSetup VisualStudioSetup UE5报错 A fatal e
  • 下拉框怎么用ajax实现添加功能,ajax实现动态下拉框示例

    许多页面上都涉及有下拉框 即select标签 对于简单的下拉框 被选择的数据是不需要改变的 我们可以用写死 这样下拉框的数据永远都是那几条 示例 信息一 信息二 信息三 信息四 但是有些项目或者工程是需要将数据库中的数据呈现出来并提供选择的
  • CH3-栈和队列

    文章目录 3 1栈和队列的定义和特点 栈的应用 队列的应用 3 1 1栈的定义和特点 3 1 2队列的定义和特点 3 2案例引入 案例3 1 进制转换 案例3 2 括号匹配的检验 案例3 3 表达式求值 案例3 4 舞伴问题 3 3栈的表示
  • 网络传输方式

    1 单播 1 1 定义 单播是指一种向单个目标地址传送数据的方式 即单独的一对一通讯方式 1 2 可使用协议 UDP TCP等协议 1 3 常见的场景 发送电子邮件 传输文件 2 广播 2 1 定义 一种向本地网络中所有设备发送数据的方式
  • FISCO BCOS 三、多群组部署以及新节点加入群组

    本章主要以星形组网和并行多组组网拓扑为例 指导您了解如下内容 了解如何使用build chain sh创建多群组区块链安装包 了解build chain sh创建的多群组区块链安装包目录组织形式 学习如何启动该区块链节点 并通过日志查看各群
  • 正确加载 Javascript 和 CSS 到 WordPress

    原文 http technerdia com 1789 include jquery css html 正确加载 jQuery Javascript 和 CSS 到你的WordPress网站也许是一件比较痛苦的事情 本文将讲解如何使用Wor
  • 使用python处理selenium中的获取元素属性

    获取我的订单元素class属性值 get class name driver find element by link text 我的订单 get attribute class 判断class属性值是否为active self asser
  • 深度学习半自动化视频标注工具——VATIC使用教程

    Vatic简介 Vatic是一个带有目标跟踪的半自动化视频标注工具 适合目标检测任务的标注工作 输入一段视频 支持自动抽取成粒度合适的标注任务并在流程上支持接入亚马逊的众包平台Mechanical Turk 当然也可以自己在本地标注 最大的