labelme是一款标注软件,我用来创建自己的语义分割的数据集。我使用的是windows环境。
源码:https://github.com/wkentaro/labelme
之前搜索到的大部分教程都是通过anaconda安装的。但实际上现在labelme已经支持直接通过exe文件直接使用。下载,打开即是labelme的图形界面。
这个方法是在有安装包之前比较普遍的方法。其实我建议如果只是用来标注,可以先使用方法1。等到需要进行数据集转换的时候再来通过方法2安装labelme环境。
官网:https://www.python.org/
anaconda和labelme都是与python环境相关的。如果没有安装python环境的,可以先安装一个。当然安装anaconda的时候也可以附带安装。我自己是选择单独安装的。
至于版本,可以考虑3.6及以上。
官网:https://www.anaconda.com/
清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
Anaconda可以实现对多个python环境的管理,同时也方便了我们安装和管理许多python的包和库。其创建的虚拟环境小白可以这样理解:A需要python3.6环境,B需要python3.9环境,则可以通过anaconda为A和B配置两个互不干扰的环境供其运行。
在官网下载速度超级慢,经常担心会出错。这个时候我们需要镜像源。(镜像源的东西可以理解为就是那边官网一样的东西)我是在官网下载以后,选择了当时镜像源同版本(同名)的版本。
下载以后双击运行安装即可。
安装时几个tips:
安装完成以后,我们现在所处的环境就是名为“base”的环境。
可以通过在控制台输入以下指令查看现有的环境:
conda env list
如图所示,就会弹出现有的所有环境(包括其名称和地址)。名称后有“*”的为当前所处环境。
然后我们使用以下指令创建新环境:
conda create --name labelme python=3.6
这代表我们创建了一个名为“labelme”的,使用python3.6环境的环境类型。
如果是和我一样直接打开控制台,而不是通过安装好的anaconda powershell,我们一开始是无法直接看到自己所处的环境的。
如图,先输入activate,就会看到路径前出现了(base)。
这代表我们进入了base环境。
然后我们再输入 activate labelme,就激活了labelme环境。
之后输入指令:
conda install pyqt
conda install pillow
pip install labelme
弹出以后按“y”即可安装好库。
最后输入labelme,就会弹出图形界面。该图形界面同直接双击exe文件打开的图形界面。
指令:
图形界面:
点击OpenDir打开文件夹后,可以看到右下角的Filelist出现了这个文件夹里所有的图片文件。方框中有勾的是已经标注的文件,没勾的是未处理的文件。
打开文件夹后可以看到这两个图标亮起:
可以按这两个图标,把当前处理的图片跳转到前一张(快捷键A)或后一张(快捷键D)。
这两个图标分别为创建多边形(用来创建新标注),编辑多边形(用来对已经创建的标注进行编辑)
我们通过Open的两个选项,都可以打开图片。
打开以后,点击Create Polygons,然后在图片上创建多个点以构成多边形,最后首尾相接,就创建了一个标注。此是会弹出如下:
如果是新标注的一种类型,输入名字即可。如果是以前已经标注过的类型,点击下面的类型名字即可,我们就创建好了一个标注。其他以此类推。
每次点好名字,不用再次点击CreatePolygon工具,可以直接创建下一个多边形。
当我们需要调整我们创建的多边形时,可以选择Edit Polygon工具。然后我们
标注完成以后,crtl+S可以保存。默认是和照片同路径、同文件名的一个json文件。
然后依次进入examples -> semantic_segmentation,找到labelme2voc.py,打开。
__ignore__
_background_
label1
label2
...
其中将“label1 label2 …”内容修改为你自己标注的文件里面的标签名字,一行一个。比如我的是这样:
最后在控制台中,先用前面的方法进入labelme环境。
然后在路径中进入我们的“semantic_segmentation”文件夹,输入指令:
python labelme2voc.py images target --labels labels.txt
其中target是我们新的数据集的文件夹名字,必须是一个没有创建过的文件夹。
然后等待一张一张图运行就好了。
最后我们会在“semantic_segmentation”文件夹里找到一个“target”文件夹:
其中
JPEGImages存放了原图
SegmentationClassPNG存放了我们需要的掩码图片
恭喜你第一步大功告成~