图片打标

在物体检测问题中,第一个需要解决的就是给训练集中的图片打标,所谓打标,就是用一个文件来描述图中物体的位置框坐标(xmin,ymin,xmax,ymax),以定位物体的位置。

一个比较好的打标工具是LabelImg (推荐用windows版本,安装比较方便,https://pan.baidu.com/s/1d27UMi )。编译好后只要要在图片上轻点鼠标就可以得到PASCAL VOC格式的XML文件(PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge,这种XML就是他们定义的一种图像标注文件的格式),再利用一个脚本就可以转换成Tensorflow需要的TFRecord格式了;有时候在Mac上打开jpeg图像会出现问题,需要将其转换为png来解决;

上图存在不规范的标注问题,猜猜是哪里?详见下文。

使用步骤

  1. 运行主程序.
  2. 点击 'Change save dir ' ,设置图像标记文件(XML)的默认存储位置
  3. 点击 'Open Dir',打开图片所在的目录
  4. 点击 'Create RectBox' ,用鼠标创建一个矩形框,框出你需要识别的物体
  5. 松开鼠标后,在弹出框中选择或新录入物体的类别名称。
  6. 点击Next Image或Save,工具会保存该标注信息到XML文件

你可以使用如下的快捷键来加速标注的过程:

 

快捷键

Ctrl + u加载一个目录的所有图片文件,相当于Open Dir按钮
Ctrl + r更改标注文件默认的存储位置,相当于Change Save Dir 按钮
Ctrl + s保存当前标图片标注
Ctrl + d将当前的矩形框复制一份
Space标记当前图像标注信息为已核验,通常在多人协作时才会用到
w创建一个矩形框,最为常用的按钮
d下一张图片,最为常用
a上一张图片
del删除矩形框
Ctrl++放大
Ctrl--缩小
↑→↓←移动矩形框

图像标注的原则

标注什么

预定义的所有类别的所有对象实例(就是说,如果图片里面有3只浣熊,就要分别标注3只浣熊), 除非:

  • 你拿不准那玩意儿是不是。
  • 对象非常非常的小(尺度自己拿捏)
  • 只能看见对象的不到 10-20%的部分 , 因此你拿不准那个到底是哪一类的,比如你只能看见一个轮胎,你不确定是卡车还是小轿车,这种就可以不用标注.

如果图片中的对象肉眼都难以识别,就丢掉这张图片

难以识别

difficult

若肉眼虽然可以大致识别,但确信度不是很高,则勾选difficult复选框,表示这个对象不是很好识别。

矩形框

用矩形框标注对象的可见区域, 不可见的区域不要标注. 非对象的区域不要标注

矩形框应该要且仅包括对象的所有可见的像素点, 除非为了包括很小一部分的对象部件,需要扩大很大一个矩形框面积,比如,小轿车的天线可以不用框进来,因为他太小了,且天线对于汽车来说无关紧要,并非主要特征。

 

上面的截图的标注就不是很规范,不要学他哟。

截断Truncated

如果对象超过 15-20% 的部分不在矩形框内,则将对象标记为Truncated. 这个标记意味着矩形框内没有包含完成的对象实例。这个属性在LabelImg中无法直接勾选,需要手工编辑XML文件里的对应标签。

遮挡Occlusion

如果矩形框内,对象有超过 5% 的部分被遮挡, 标记为 Occluded. 这个标记指示矩形框内的图像存在被遮挡的情况。这个属性在LabelImg中无法直接勾选,需要手工编辑XML文件里的对应标签。

 

 

衣服、雪、泥etc.

如果遮挡物是跟对象强相关的,则不用标记为遮挡,比如 人身上的衣服,应视为人的一部分。

透明

透过玻璃看到的对象也应该被标记, 但是若玻璃是有点反光的,则玻璃上的映像,应被标记为遮挡 occlusion.

镜子

镜子里的对象也应该被标记。

海报

图片里面的海报、杂志等上面的对象也应该被标记,除非是一些很浮夸的卡通画

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

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

相关文章

动态定时任务与动态生成class代码

动态定时任务 原理 采用定时任务线程池ThreadPoolTaskScheduler来实现定时任务。动态定时任务就是可以配置的,而不是写死在代码中。所以我们要将其写入到数据库中,然后暴露接口就可以进行配置比如创建、启动、结束任务。 数据库脚本 DROP TABLE IF EXIS…

docker登录mysql数据库_Docker下搭建mysql数据库

1.获取官方镜像:[rootCentos7 mysql]# docker pull mysql/mysql-server:latestlatest: Pulling from mysql/mysql-server1f5b026b07bc: Pull complete3d5697fc1304: Pull complete2747c84403db: Pull completedc0c445a852b: Pull completeDigest: sha256:7aba8c77f9…

LNMP与CA认证的童话故事

在前面的一篇博客中,我已经介绍过,如何通过源码编译安装LAMP,见教你源码编译制作LAMP详细过程 ,这里就介绍下如何编译安装LNMP,以及如何在LNMP中添加ssl认证。LNMP,也叫做LEMP。L,即linux操作系…

Zabbix 最新版 5.2 版本源码安装

Zabbix 最新版 5.0 LTS 版本安装 zabbix 5.0 版本于 5 月 11 日正式发布,是最新的 LTS(长期支持)版本,5.0 带来很多功能和特性,后面会陆续推出文章介绍,下面主要介绍下 5.0 版本的安装。 环境要求 5.0 版…

【声卡驱动】安装realtek high definition audio后重启电脑被自动卸载替换成系统自带的realtek auto

解决步骤 先断网安装前先记录realtek auto的GUID,可以从设备管理器中事件中找到它,复制保留备用 安装 realtek high definition audio ,重启(断网)在断网状态下,winr ,输入gpedit.msc&#xff…

mysql explain是什么意思_mysql explain的作用是什么?

mysql explain的作用是模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理用户的SQL语句,提高数据检索效率,降低数据库的IO成本。mysql explain的作用是:模拟Mysql优化器是如何执行SQL查询语句的,从而知…

d3.js 搭建 d3-force-directed-graph 例子

d3.js 搭建 d3-force-directed-graph 例子 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <script src&q…

js 创建快捷方式

代码 <script type"text/javascript"language"javascript">//创建快捷方式[浏览器设置要低,ff不支持]functioncreateShortcut() { varfso newActiveXObject("Scripting.FileSystemObject"); varshell newActiveXObject(&quo…

OpenLDAP在linux上的部署和原理应用centos7

轻型目录访问协议&#xff08;英文&#xff1a;Lightweight Directory Access Protocol&#xff0c;缩写&#xff1a;LDAP&#xff09;是一个开放的&#xff0c;中立的&#xff0c;工业标准的应用协议&#xff0c;通过IP协议提供访问控制和维护分布式信息的目录信息。 OpenLDAP…

c# 检测cpu使用率[测试通过]

创建一个控制台应用程序&#xff0c;代码如下 代码 usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;//引用2命名空间usingSystem.Diagnostics;usingSystem.Threading;namespaceConsoleApplication1{ classProgram { staticvoidM…

mysql怎么修改表中的文字_mysql表中怎么修改字段?

在mysql表中&#xff0c;可以使用“ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型;”语句来修改字段名称&#xff1b;使用“ALTER TABLE 表名 MODIFY 字段名 新数据类型;”语句来修改字段数据类型。修改字段名称MySQL 中修改表字段名的语法规则如下&#xff1a;ALTER TA…

重置mariadb密码

基本的思路是&#xff0c;以安全模式启动MariaDB&#xff0c;这样不需要密码可以直接以root身份登录&#xff0c;然后重设密码。 在Centos 7.0上的操作步骤如下&#xff1a; 首先&#xff0c;我们停掉MariaDB服务&#xff1a; systemctl stop mariadb.service #停止MariaDB在…

asp.net 取windows的所有进程

代码如下&#xff1a; 代码 #region取得windows的所有进程publicstaticstringGetCourse(){ System.Text.StringBuilder sb newSystem.Text.StringBuilder(); stringtempName ""; intbegpos, endpos; foreach(Process thisProc inSystem.Diagnostics.Proc…

asp.net 操作ftp 通用代码[测试通过]

代码如下&#xff1a; 代码 //建立目录FtpWebRequest Request (FtpWebRequest)WebRequest.Create("ftp://113.107.160.135:2121/vadmin.uuu9.com/aaa"); Request.Credentials newNetworkCredential("wanglei", "}}XnJXt4a\7datr"); …

AirFlow官方入门DAG示例

经过前两篇文章的简单介绍之后&#xff0c;我们安装了自己的AirFlow以及简单了解了DAG的定义文件&#xff0e;现在我们要实现自己的一个DAG&#xff0e; 1. 启动Web服务器 使用如下命令启用: airflow webserver 现在可以通过将浏览器导航到启动Airflow的主机上的8080端口来…

三层业务类(DAL)必用的通用方法之一

写代码有两年多的时间了&#xff0c;越来越觉得代码的通用性是衡量一个程序员的标准。 代码 #regionSqlDataReader > List///<summary>///author:Stone_W///date:2010.11.29///desc:SqlDataReader 转 List///</summary>///<param name"dr">SqlD…

使用 Packer、Ansible 和 Terraform 构建不可变的基础设施Devops工具链

在容器编排领域&#xff0c;Kubernetes 已成为事实上的标准&#xff0c;而容器镜像 (Docker Image) 作为容器技术栈中最关键的创新之一&#xff0c;极大的推动了企业内部 Devops 运动的进程。 容器镜像所具有的轻量性、便携性、分层机制和内核共享机制真正意义上实现了 “Buil…

用于检测敏感词的 PHP 扩展

2019独角兽企业重金招聘Python工程师标准>>> 敏感词过滤是我朝程序员必须具备的一种特殊技能&#xff0c;随着敏感词越来越多&#xff0c;是时候写个扩展来快速的进行敏感词检测了使用说明 1. 安装 libdatrie tar zxf libdatrie-0.2.4.tar.gz cd libdatrie-0.2.4 .…

缓存通用管理类 + 缓存 HttpContext.Current.Cache 和 HttpRuntime.Cache 的区别

以前写asp.net时用HttpContext.Current.Cache存缓存很好用&#xff0c;今天写了一个windows服务程序&#xff0c;HttpContext.Current.Cache存缓存的时候还好&#xff0c;取的时候一直报错“未将对象引用到实例”很郁闷&#xff0c;查询了一下资料才明白引用程序缓存要用HttpRu…

Ubuntu 加速安装Opencv 3.4.3

Ubuntu 18.04 完美安装Opencv 3.4.3 1.1 下载Opencv 3.4.3 在http://opencv.org/网址中找到下载连接&#xff0c;版本选择&#xff1a;https://github.com/opencv/opencv/releases 下载地址&#xff1a;https://github.com/Itseez/opencv/archive/3.4.3.zip (此处可以使用w…