用于深度网络训练的数据集做标注的方法和工具有好多,像Labelme、labelImg、yolo_mark、Vatic、Sloth等等,此处暂时只介绍其中的一种标注工具:labelImg。等到后期熟悉其他的标注工具会一一介绍。
1、 安装labelImg
推荐在anaconda下安装,需要具备python3以上的环境+lxml,没有的话使用pip安装即可。
1.1下载labelImg
github地址: https://github.com/tzutalin/labelImg.
1.2 解压
下载下来之后,解压。打开Anaconda Prompt 切换至解压缩后的LabelImg目录
1.3 安装pyqt5
查看一下有没有安装lxml,没有安装的话:pip install lxml
pip install pyqt5
pyrcc5 -o libs/resources.py resources.qrc
1.4 打开labelImg工具
python labelImg.py
得到如下界面
二、labelImg工具使用方法
1、在任意目录下创建两个文件夹,一个JPEGImages文件夹存储需要标注的图片,另外一个Annotations文件夹存储与voc数据集格式一样的xml文件;
2、 在labelImg界面ctrl+R选择标注图片时生成的xml文件保存的路径,即选择Annotations文件夹(或者点击界面上的Change save dir);
3、 点击labelImg界面的open dir选择创建的文件夹JPEGImages,就可以导入需要标注的图片,图片列表显示在标注界面的右下角,如下图所示:
4、 点击界面左下角,选中create\nRectBox就可以在图片上进行标注,标注好的区域及标签会显示在右边中间位置,图片标注完成之后,点击按钮save即可保存生成和图片名命名相同的xml文件到Annotations文件夹下。标注后如下:
其中,xml的格式如下:
注意
1、当需要打开一个别人标注好的数据时,先点击Change save dir打开存放xml的文件夹,然后在点击open dir打开图像所在问价夹。可直接对已有标注数据进行调整,保存后对应的xml文件也会更改。
2、更改预定义类别:labelimg问价夹下data目录下的predefined_classes.txt文件为预先定义好的label值,可以根据实际数据集修改label值。
常用的快捷键
项目 | Value |
---|---|
w | 创建一个标注框 |
d | 下一张图片 |
a | 上一张图片 |
Ctrl + s | 保存 |
Ctrl + R | 更改xml目录(Change Save Dir) |
Ctrl + U | 打开图片目录(open Dirr) |
Ctrl + E | 编辑标签 |
Ctrl + Q | 退出软件 |
ctrl + L | 标注框颜色 |
del | 删除选定的矩形框 |
Ctrl + d | 复制当前标签和矩形框 |
空格 | 前图像标记为已验证 |
Ctrl ++ | 放大 |
Ctrl - - | 缩小 |
↑→↓← | 键盘箭头移动选定的矩形框 |