用户在采集完用于训练、评估和预测的图片之后,需使用数据标注工具LabelMe完成数据标注。LabelMe支持在Windows/macOS/Linux三个系统上使用,且三个系统下的标注格式是一样。具体的安装流程请参见官方安装指南。
打开终端输入labelme
会出现LableMe的交互界面,可以先预览LabelMe
给出的已标注好的图片,再开始标注自定义数据集。
- 预览已标注图片
获取LabelMe
的源码:
git clone https://github.com/wkentaro/labelme
终端输入labelme
会出现LableMe的交互界面,点击OpenDir
打开<path/to/labelme>/examples/semantic_segmentation/data_annotated
,其中<path/to/labelme>
为克隆下来的labelme
的路径,打开后示意的是语义分割的真值标注。
- 开始标注
请按照下述步骤标注数据集:
(1) 点击OpenDir
打开待标注图片所在目录,点击Create Polygons
,沿着目标的边缘画多边形,完成后输入目标的类别。在标注过程中,如果某个点画错了,可以按撤销快捷键可撤销该点。Mac下的撤销快捷键为command+Z
。
(2) 右击选择Edit Polygons
可以整体移动多边形的位置,也可以移动某个点的位置;右击选择Edit Label
可以修改每个目标的类别。请根据自己的需要执行这一步骤,若不需要修改,可跳过。
(3) 图片中所有目标的标注都完成后,点击Save
保存json文件,请将json文件和图片放在同一个文件夹里,点击Next Image
标注下一张图片。
LableMe产出的真值文件可参考我们给出的文件夹。
Note:
对于中间有空洞的目标的标注方法:在标注完目标轮廓后,再沿空洞区域边缘画多边形,并将其指定为其他类别,如果是背景则指定为_background_
。如下:
最后用我们提供的数据转换脚本将上述标注工具产出的数据格式转换为模型训练时所需的数据格式。
- 经过数据格式转换后的数据集目录结构如下:
my_dataset # 根目录
|-- annotations # 数据集真值
| |-- xxx.png # 像素级别的真值信息
| |...
|-- class_names.txt # 数据集的类别名称
|-- xxx.jpg(png or other) # 数据集原图
|-- ...
|-- xxx.json # 标注json文件
|-- ...
- 运行以下代码,将标注后的数据转换成满足以上格式的数据集:
python pdseg/tools/labelme2seg.py <PATH/TO/LABEL_JSON_FILE>
其中,<PATH/TO/LABEL_JSON_FILE>
为图片以及LabelMe产出的json文件所在文件夹的目录,同时也是转换后的标注集所在文件夹的目录。
我们已内置了一个标注的示例,可运行以下代码进行体验:
python pdseg/tools/labelme2seg.py docs/annotation/labelme_demo/
转换得到的数据集可参考我们给出的文件夹。其中,文件class_names.txt
是数据集中所有标注类别的名称,包含背景类;文件夹annotations
保存的是各图片的像素级别的真值信息,背景类_background_
对应为0,其它目标类别从1开始递增,至多为255。