点击上方↑↑↑“OpenCV学堂”关注我
从此以后图像与视频数据标注不用为找工具发愁!好东西记得分享
图像数据标注概述
在深度学习领域,训练数据对训练结果有种至关重要的影响,在计算机视觉领域,除了公开的数据集之外,对很多应用场景都需要专门的数据集做迁移学习或者端到端的训练,这种情况需要大量的训练数据,取得这些数据方法有如下几种
人工数据标注
自动数据标注
外包数据标注
人工数据标注的好处是标注结果比较可靠,自动数据标注一般都需要二次复核,避免程序错误,外包数据标注很多时候会面临数据泄密与流失风险。人工数据标注特别是图像数据标注常用的标注工具从标注工具的软件属性上分类可以分为客户端与WEB端标注工具,推荐大家使用客户端标注工具或者离线的WEB端标注工具,在线的WEB端标注工具面临数据流失风险!请慎用!
十大常用工具
01
LabelImg
主页地址
https://github.com/tzutalin/labelImg
下载以后根据作者提供的安装指南即可安装,如果安装不上怎么办,不用这么麻烦,下面这个地址提供了直接下载的地址,下载预编译exe即可:
https://github.com/zhaobai62/labelImg
支持VOC2012格式与tfrecord自动生成!
强烈推荐,简单好用。
02
Labelme
主页地址
https://github.com/wkentaro/labelme
支持对象检测、图像语义分割数据标注,实现语言为Python与QT。
支持矩形、圆形、线段、点标注
支持视频标注
支持导出VOC与COCO格式数据实例分割
强烈推荐,实例分割都可以用它标注!
03
RectLabel
https://rectlabel.com/
支持对象检测,图像实例分割数据标注
支持导出YOLO、KITTI、COCOJSON与CSV格式
读写Pascal VOC格式的XML文件
04
OpenCV/CVAT
官方主页
https://github.com/opencv/cvat
高效的计算机视觉标注工具,支持图像分类、对象检测框、图像语义分割、实例分割数据标注在线标注工具。支持图像与视频数据标注,最重要的是支持本地部署,无需担心数据外泄!
05
VOTT
官方主页
https://github.com/microsoft/VoTT
微软发布的基于WEB方式本地部署的视觉数据标注工具。
支持图像与视频数据标注
支持导出CNTK/Pascal VOC格式
支持导出TFRecord、CSV、VoTT格式
当前主要分支版本有V1与V2版本。
06
LableBox
官方主页
https://github.com/Labelbox/Labelbox
支持对象检测框、实例分割数据标注
WEB方式的标注工具
提供自定义标注API支持
纯JS+HTML操作支持
07
VIA-VGG Image Annotator
http://www.robots.ox.ac.uk/~vgg/software/via/
VGG发布的图像标准工具
支持对象检测、图像语义分割与实例分割数据标注
基于WEB方式的标注工具
可以下载运行部署在本地
特别之处,对人脸数据标注提供了各种方便的操作,人脸数据标注首选工具。
08
PixelAnnotationTool
https://github.com/abreheret/PixelAnnotationTool
图像语义分割与实例分割标注神器,交互式标注算法思想是基于OpenCV中分水岭算法实现。支持,可以直接下载编译好的二进制文件使用,下载地址如下:
https://github.com/abreheret/PixelAnnotationTool/releases
09
point-cloud-annotation-tool
https://github.com/springzfx/point-cloud-annotation-tool
3D点云数据标注神器
支持点云数据加载、保存与可视化
支持点云数据选择
支持3D BOX框生成
支持KITTI-bin格式数据
10
Boobs
https://github.com/drainingsun/boobs
专属的YOLO BBox标注工具,支持图像数据标准为YOLO格式
现在也支持VOC/COCO格式数据导出
基于WEB方式的标注工具
支持下载zip包本地部署
无需服务器端支持,直接浏览器支持打开boobs.html即可开始数据标注
特别声明一下,上述排名不表示先后顺序!
往期精选
告诉大家你 在看
OpenCV中各种类型Mat数据读取
2019 半年原创技术文章汇总
基于感知损失的实时风格迁移与超分辨率重建
源代码来了 | 英伟达开源行人生成/重识别代码
asp.net2.0有许多一旦你发现了就会大幅提高性能和扩展性的秘密。比如:在membership和Profile provider 中就有快速实现验证和授权的秘密。此外:Asp.net的http管道可以避免每个请求中的不必要代码。还不只是这些,asp.net的线程可以充分发挥性能。浏览器的页面片断缓存机制(不是服务器缓存)可以在反复的访问中节约下载时间。在界面加载完成后给你的网站提供快...
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make
全文搜索对于中文分词很重要,所以需要ik插件分词支持中文分词 英文使用空格很容易分词,中文需要根据词意进行分词,需要【字典】支持插件项目:https://github.com/medcl/elasticsearch-analysis-ik未安装前【分词测试】 postmanpost http://localhost:9200/_analyze{ "text":"活...
效果预览按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。https://codepen.io/comehope/pen/KBxYZg/可交互视频此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。请用 chrome, safari, edge 打开观看。https://scrimba.com/p/p...
linux上一个使程序后台运行的软件tmux新建一个tmux 任务tmux new -s name在一个任务里面[1] 新建一个窗口 ctrl+z+c[2] 上一个窗口 ctrl+z+p[3] 下一个窗口 ctrl+z+n[4] 退出窗口 ctrl+z+d任务列表 tmux ls进入某一个任务 tmux a -t name...
掉盘就是使本来完好的硬盘退出RAID阵列,从而造成不应有的硬盘更换和卷重建,影响用户的使用。根据目前情况来看,掉盘的原因是因为RAID卡或者RAID控制器为了保证数据的安全,都会在一定的时间段对硬盘进行侦测,如果硬盘在规定的时间内没有作出无错误的响应,RAID卡或者RAID控制器就认为这块硬盘坏了,从而出现掉盘的现象。转载于:https://blog.51cto.com...
因为Resteasy随着servlet容器运行,所以你可以使用大多数在servlet容器中可用的身份验证机制。基本和摘要身份验证可能是最容易的一种设置方式,也正好符合REST的无状态的原则。方式安全可以使用,但是需要通过每一次请求的session的cookie值。我们已经做了基于OAuth(开发性验证)的准备工作,也计划在未来做OpenID和SAML(Security Assertion Mark
争论有一些没有唯一正确答案的“永恒”的问题,例如,更好的是:Windows还是Linux,Java还是C#;谁更强大:Chuck Norris还是Van Damme。其中的一个Holy War便是Java和IDE的选择:有许多争论的话题是讨论它们哪个有更多的插件、快捷键等等。它们之间有太多的不同而很难决定什么才是最重要的。因此,人们都表示两个IDE在功能上都差不多,选择某一个则...
logback.xml配置参考1:<?xml version="1.0" encoding="UTF-8"?><configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <springProperty scop...
class StackArray: def __init__(self): # 建空栈 self.array = [] def is_empty(self): # 栈的判空 if len(self.array) == 0: # 如果为零 return 0 else: retur...
当你想用Git,而源代码服务器是Windows系统时,你将面临一个问题:如何在Windows上搭建Git服务器?Bonobo Git Server基于.NET Framework 4.0+ASP.NET MVC 3开发,数据库用的是SQLite,Git部分用的是GitSharp – Git for .NET and Mono。运行Bonobo Git Server,只需要IIS+WebDA
count函数count函数返回的是一个容器中,某一元素出现的次数,对于map,即返回key出现的次数,但是map中的key是不允许重复出现的,故count函数返回值只能是1(存在)或0(不存在)。换句话说,在map中使用count()函数作用是判断map中有无此键使用方式 :map<int,int> a; if(a.count(key)) { ............