win10 labelme 使用记录

前言

准备搞一搞实例分割,自己准备一下数据集进行训练,在使用 labelme 进行进行一下标注与格式转换,中途遇到一些坑,这里记录一下。

环境

  • win10 1909
  • conda 4.7.12
  • 配置时间:2020.02.14(情人节我就干这些?!?)

使用流程

1. 安装

为了方便管理,决定单独给 labelme 单独建立一个 conda 环境,中间出错了也不会乱套(conda 真的是好用啊)。
在控制台执行以下命令:

conda create -n labelme python=3.6
conda activate labelme
pip install labelme

至此,labelme 的安装就完成了,在控制台直接舒服 labelme,即可启动 labelme 的 GUI 界面,网上有很多打标教程,这里就不赘述了。
labelme GUI 界面

检验打标结果

这里随便找了张 .jpg 格式的网图进行了标注工作,之后会在图片目录生成一个 .json 文件。

标注界面
在控制台中运行:

labelme_draw_json <your_json_file_name>.json

即可得到刚才的标注结果:
标注结果展示
这里要注意的是,最好使用 jpg 格式图片进行标注,因为 png 格式可能存在 RGBA 四个通道,会导致后续识别的一些问题,在运行上一步绘制的时候也会爆出如下错误:

Traceback (most recent call last):
  File "d:\software\anaconda\envs\labelme\lib\runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "d:\software\anaconda\envs\labelme\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "D:\Software\Anaconda\envs\labelme\Scripts\labelme_draw_json.exe\__main__.py", line 9, in <module>
  File "d:\software\anaconda\envs\labelme\lib\site-packages\labelme\cli\draw_json.py", line 53, in main
    img=imgviz.rgb2gray(img),
  File "d:\software\anaconda\envs\labelme\lib\site-packages\imgviz\color.py", line 21, in rgb2gray
    assert rgb.shape[2] == 3, "rgb shape must be (H, W, 3)"
AssertionError: rgb shape must be (H, W, 3)

3. 将标注转为 COCO 格式

因为最终使用的网络读取是按照 COCO 数据集的格式,所以要将刚刚标注的图片与数据进行一个转换,labelme 也包含这样的工具。

3.1 pycocotools 安装

在转换之前,首先要安装 coco 数据集的 python API,试了很多方法,下面的方法最为简单快捷:

conda install git
pip install Cython
pip install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"

至此,完成 pycocotools 的安装。

3.2 数据集格式的转换

首先在 labelme_InstanceSegmentation 中获得labelme2coco.py 文件,然后同一目录下放置文件如下:

data
│  labelme2coco.py
│  labels.txt	# 该文件中包含数据集中所有的类别名称
│  
└─data_annotated
      0.jpg
      0.jsons
      1.jpg
      1.json
      2.jpg
      2.json
      3.jpg
      3.json
      4.jpg
      4.json
      5.jpg
      5.json

做好上述准备后,即可在控制台运行:

python labelme2coco.py data_annotated data_dataset_coco --labels labels.txt

labelme2coco.py 后跟三个参数,第一个为输入文件夹的名称,第二个为转化为 coco 数据格式后的数据存储的路径,第三个则为数据中包含的类别及其次序。转换完毕后即可得到:

data
│  labelme2coco.py
│  labels.txt
│  
├─data_annotated
│      0.jpg
│      0.json
│      1.jpg
│      1.json
│      2.jpg
│      2.json
│      3.jpg
│      3.json
│      4.jpg
│      4.json
│      5.jpg
│      5.json
│      
└─data_dataset_coco
    │  annotations.json
    │  
    └─JPEGImages
            0.jpg
            1.jpg
            2.jpg
            3.jpg
            4.jpg
            5.jpg

至此,数据集准备完毕。

小结

整个流程并不算很复杂,就是第一次做遇到了很多奇奇怪怪的坑耽误了整整一天的时间……希望看到这篇博客的朋友不要重蹈覆辙,能够快速上手哈哈。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页