大家好,又见面了,我是你们的朋友全栈君。
在进行Segmentation 训练之前需要准备训练集和验证集,本文将要来介绍如何使用LabelMe进行标记。LabelMe 是个可以绘制多边形、矩形、圆形、直线、点的一套标记工具,可用于分类、目标检测、语义分割、实例分割任务上的数据标注。
1.labelMe安装与数据标注
首先安装LabelMe
,我使用Anaconda
进行安装。打开Anaconda Prompt
执行以下指令:
pip install labelme
接着输入labelme
会出现以下UI 介面,点选Open Dir
选择要标记的图片资料夹
labelme
在图片上按右键选择Create Polygans
后,就可以开始画标记点了~
画好后填入要标记的label
,
若有多个相同类别的目标物也选择一样的label
:
再按左边的Save
,最后选择左边的Next Image
。
2.数据格式转换
标注好数据以后,若需要转换label
格式,可使用labelme
进行转换。接下来会分为用于Semantic Segmentation
和Instance Segmentation
git clone https://github.com/wkentaro/labelme
并且在刚刚标记好的图片资料夹外,建立一个label.txt
,内容必须要有__ignore__, _background_
档案放置如下图:
2.1 Semantic Segmentation
进入labelmeexamplessemantic_segmentation
文件夹,有支持转换VOC 格式的代码
cd/d D:chingilabelmeexamplessemantic_segmentation
然后在Anaconda Prompt
执行以下指令进行转换,<data>
是标记图片的文件夹路径、<data_output>
是转换标记格式的文件夹路径、<label.txt path>
是刚刚建立在图片文件夹外的label.txt
的路径
python labelme2voc.py <data> <data_output> --labels <label.txt path>
# It generates:
# - data_dataset_voc/JPEGImages
# - data_dataset_voc/SegmentationClass
# - data_dataset_voc/SegmentationClassVisualization
python labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
转换格式后,会在<data_output>
文件夹中会看到以下文件:
请注意,标签文件仅包含非常低的标签值(例如 0、4、14)
,而 255
表示 __ignore__
标签值(npy
文件中的 -1
)。 您可以通过以下方式查看标签 PNG
文件。
labelme_draw_label_png data_dataset_voc/SegmentationClassPNG/2011_000003.png
2.2 Instance Segmentation
进入labelmeexamplesinstance_segmentation
文件夹,有支持转换COCO 及VOC 格式的代码:
cd/d D:chingilabelmeexamplesinstance_segmentation
然后在Anaconda Prompt
执行以下指令进行转换,<data>
是标记图片的资料夹路径、<data_output>
是转换标记格式的资料夹路径、<label.txt path>
是刚刚建立在图片资料夹外的label.txt
的路径
# 转换为coco 格式
$ python labelme2coco.py <data> <data_output> --labels <label.txt path>
# It generates:
# - data_dataset_coco/JPEGImages
# - data_dataset_coco/annotations.json
$ python ./labelme2coco.py data_annotated data_dataset_coco --labels labels.txt
# 转换为VOC 格式
$ python labelme2voc.py <data> <data_output> --labels <label.txt path>
# It generates:
# - data_dataset_voc/JPEGImages
# - data_dataset_voc/SegmentationClass
# - data_dataset_voc/SegmentationClassVisualization
# - data_dataset_voc/SegmentationObject
# - data_dataset_voc/SegmentationObjectVisualization
$ python ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
若转换为COCO
格式,会在<data_output>
文件夹中会看到以下文件
JPEGImages
是原本的图片,Visualization
是框起来的图片,annotations.json
是标记好的label
若转换为VOC
格式,会在data_output
文件夹中会看到以下文件:
参考目录
https://medium.com/ching-i/segmentation-label-標註教學-26b8179d661
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172450.html原文链接:https://javaforall.cn