labelimg的基本使用
labelimg是专注于标注矩形框的工具。
labelimg是专注于标注矩形框的工具
目录
1 安装
创建一个新的环境
然后激活环境
然后执行 labelimg
就可以打开了
打开后按w可以显示画框的坐标十字,点击左键移动鼠标然后再点击左键可以绘制矩形框,按D键可以切换到下一张
2 可能遇到的问题
2.1 浮点型坐标问题
当我们刚安装完成后,按w开始标注的时候,可能会爆出这个问题
找到提示的这个文件 E:\Anaconda\envs\labelimg\Lib\site-packages\libs\canvas.py,然后找到提示的行数(530行)
将drawLine()的参数全部转换为整形参数
之后再打开,然后画框就会遇到第二个问题
找到提示的代码、提示的行,将drawRect()的参数全部改为int
之后就可以正常画框了,然后用着用着可能会出现这个问题,同样是浮点的问题
将这一句的参数改为int
3 参数
labelimg有三个参数,一个选项,选项是-h,可以查看基本的使用方法
三个参数
- image_dir 图片路径
- class_file 标签文件
- save_dir 存放路径
我们首先创建这三个东西
Annotations是空的文件夹,放标注文件用的
JPEGImages里面放的是要标注的图像
labels.txt是要标注的标签,我这里是马 狗 人
执行 labelimg ./JPEGImages labels.txt ./Annotations 后可以打开labelimg
标注好矩形框后会出现labels.txt中出现的标签
你不用参数直接打开labelimg也可以,打开后可以再labelimg中点击Open Dir可以选择图片路径,Change Save Dir可以选择标注文件存放路径
标签名称可以在画完矩形框后手动输入
4 标注文件类型
4.1 PascalVOC
在左侧可以进行选择PascalVOC
标注保存后会得到与图像同名的xml文件
内容如下,我们可以从中提取一些信息,比如
- folder 标注时图像所在的文件夹名称
- fliename 标注是图像的名称
- path 标注是图像所在的路径
- size
- width 图像的宽度,单位px
- height 图像的高度,单位px
- depth 图像的通道数,3表示是彩色的图像
- object 每画一个框就会多一个object
- name 框子的标签
- bandbox
- xmin 框子的左上角点横坐标,单位px
- ymin 框子的左上角点纵坐标,单位px
- xmax 框子的右下角点横坐标,单位px
- ymax 框子的右下角点纵坐标,单位px
JPEGImages 1.jpg D:\笔记\一些软件的基本操作\labelimg的基本使用\dataset\JPEGImages\1.jpg
Unknown 640 424 3 0 person Unspecified 0 0 192 99 275 373 dog Unspecified 0 0 67 264 206 347 horse Unspecified 0 0 407 139 601 345
4.2 YOLO
在左侧可以选择YOLO
标注保存后会得到图像同名的txt文件和classes.txt
classes.txt无论标注多少张只会出现一次,内容为标签名称,如果下一张有新的标签会在classes.txt中再添加
与图像同名的txt文件(1.txt)内容如下
- 第一列是标签的索引,在这个例子里 person是2 dog是1 horse是0 (与classes.txt中的顺序一致)
- 后面四个依次是
- 中心点x坐标 ÷ 图像宽度
- 中心点y坐标 ÷ 图像高度
- 矩形框宽度 ÷ 图像宽度
- 矩形框高度 ÷ 图像高度
我们搞个例子看一下
- 2对应person
- 0.364844 = [(192+275)÷ 2] ÷ 640
- 0.556604 = [(99+373)÷ 2] ÷ 424
- 0.129688 = (275-192) ÷ 640
- 0.646226 = (373-99) ÷424
4.3 CreateML
在左侧可以选择CreateML
保存标注后会获得图像同名的json文件
我们可以看到该张图像标注内容的标签和坐标
5 自动保存
把这个勾上就不会每到下一张询问你一次了
6 验证图像
每次标注后可以找一个人验证,验证成功之后可以点一下verify Image按钮,点完之后背景就变成绿色了,变成绿色表示这个图像是被验证过的
切到下一张由于这张照片没被验证,所以背景是灰色的
如果再切回去表示图像已经被验证了,所以背景是绿色的
被验证的图像会被加上verified这个属性
- 别的类型我就不看了,大致应该都差不多
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)