目录
创建roLabelImg环境
安装pyqt5和lxml
下载roLabelImg源码包
使用roLabelImg
roLabelImg常用操作指令
标注展示
由于最近一些项目需要标注旋转数据集,在网上找了一些教程,但大多数都显得比较杂乱,因此想把这些重新整理一下,省去一些繁琐的工作。
创建roLabelImg环境
由于roLabelImg的需求,python的版本不能太高,官方建议是3.7及以下。因此在这里我是新建了一个Anaconda虚拟环境来专门存放这个东西。Anaconda创建虚拟环境
conda create -n roLabelImg python==3.7.6
安装pyqt5和lxml
激活roLabelImg环境
roLabelImg属于labelimg的改版,同样需要pyqt5包
pip install pyqt5 -i https://mirrors.aliyun.com/pypi/simple
大家可能会遇到这样的报错(当然,没遇到是最好的)
这个是提示缺少C++插件造成的,网上许多教程遇到这一步都是需要安装vscode,但是我不太建议这个方法,毕竟有好几个G呢。下面提供第二种方法(已成功)
方法二
降低pyqt5的版本(不要安装最新版的)
pip install pyqt5==5.10.1 -i https://mirrors.aliyun.com/pypi/simple
安装lxml
pip install lxml -i https://mirrors.aliyun.com/pypi/simple
下载roLabelImg源码包
GitHub地址:https://github.com/cgvict/roLabelImg
这里建议使用GitBash下载,当然不了解的直接正常下载、解压即可。
最重要的一步
找到roLabelImg软件包的存放路径,如下:
D:\Anaconda3\envs\roLabelImg\Lib\site-packages
这里大家注意,为防止有人不太清楚,简单说一下,我们创建的所有虚拟环境都会在envs的路径下生成对应的名称
找到后把解压后的源码包剪切到该路径下
以上操作就完成了roLabelImg的所有安装
使用roLabelImg
进入roLabelImg目录
小技巧:大家使用cd指令时可以用Tab键快速补齐指令哦
进入标注界面
(base) D:\Anaconda3\envs\roLabelImg\Lib\site-packages\roLabelImg>python roLabelImg.py
不仅是界面和labelImg相似,连功能都是差不多的,只不过多了一个旋转的标注而已,但是二者生成的xml文件数据信息是有很大差异的。labelImg的使用教程
roLabelImg常用操作指令
Ctrl + s | 保存 |
Ctrl + d | 复制当前标签和矩形框 |
w | 创建一个矩形框 |
e | 创建一个可旋转的矩形框 |
d | 下一张图片 |
a | 上一张图片 |
r | 隐藏/显示旋转的矩形框 |
n | 隐藏/显示普通矩形框 |
del | 删除选定的矩形框 |
Ctrl++ | 放大 |
Ctrl-- | 缩小 |
↑→↓← | 移动选定矩形框的键盘箭头 |
zxcv | 旋转所选矩形框的键盘 |
注意:z:左旋大角度;x:左旋小角度;c:右旋小角度;v:右旋大角度
标注展示
样本
xml标签
<annotation verified="no">
<folder>Desktop</folder>
<filename>cat</filename>
<path>E:/Desktop/cat.jpg</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>526</width>
<height>350</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<type>robndbox</type>
<name>cat</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<robndbox>
<cx>848.8417</cx>
<cy>681.9751</cy>
<w>805.717</w>
<h>659.5556</h>
<angle>3.061593</angle>
</robndbox>
</object>
<object>
<type>robndbox</type>
<name>cat</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<robndbox>
<cx>233.1928</cx>
<cy>185.2913</cy>
<w>222.2155</w>
<h>177.4439</h>
<angle>3.051593</angle>
</robndbox>
</object>
</annotation>
内容和结构释义
-
<annotation>
: 标注的根元素,包含一个verified
属性,表示这个标注是否已经被验证。在这个例子中,verified="no"
意味着这个标注还没有被验证。 -
<folder>
: 包含图像的文件夹名称,这里是Desktop
。 -
<filename>
: 图像文件的名称,这里是cat.jpg
。 -
<path>
: 图像文件的完整路径,这里是E:/Desktop/cat.jpg
。 -
<source>
: 标注数据的来源信息,这里<database>Unknown</database>
表示来源未知。 -
<size>
: 图像的尺寸信息,包括<width>
宽度为526像素,<height>
高度为350像素,<depth>
深度为3,表示这是一个RGB图像。 -
<segmented>
: 一个属性,通常用于表示图像是否被分割,这里0
表示没有被分割。 -
<object>
: 描述图像中的一个对象,可以有多个<object>
元素来描述多个对象。-
<type>
: 对象的类型,这里使用的是robndbox
,表示这是一个旋转的矩形框。 -
<name>
: 对象的类别名称,这里是cat
。 -
<pose>
: 对象的姿态,这里Unspecified
表示姿态未指定。 -
<truncated>
: 对象是否被截断,0
表示没有。 -
<difficult>
: 对象是否难以识别,0
表示不困难。 -
<robndbox>
: 旋转矩形框的具体参数,包括:<cx>
和<cy>
: 矩形框的中心坐标。<w>
和<h>
: 矩形框的宽度和高度。<angle>
: 矩形框的旋转角度。
-