0、背景

最近需要实践deeplabv3+,因此觉得最好从数据准备——数据格式转换——模型训练——测试评估这条路径进行学习。网上大家都推荐使用labelme进行数据标注。看了官网,教程详细不费脑,确实觉得很赞。

1、开始安装

1.1 安装教程

由于我是Windows系统,所以选用了基于python3.6的anaconda 安装教程。具体流程为:安装anaconda、新建环境、进入新环境、用pip安装labelme这四步。详细代码如下:

  1. # python3
  2. conda create --name=labelme python=3.6
  3. source activate labelme
  4. # conda install -c conda-forge pyside2
  5. # conda install pyqt
  6. # pip install pyqt5 # pyqt5 can be installed via pip on python3
  7. pip install labelme
  8. # or you can install everything by conda command
  9. # conda install labelme -c conda-forge

1.2 遇到的问题

1.2.1 重复下载、无效安装

在用pip安装labelme的时候,由于没提前安装依赖项,pip给我一直从labelme4.6.0下载到了3.0.1都还没找到合眼缘的对象。要不是我主动终止,还不知道它会不会给我找到负数去。
image.png
image.png

1.2.2 缺少依赖项

我以为是没有指定版本导致了上面的问题。正好看到谋篇教程里提到3.19.0版本的labelme可以成功标注和导出指定格式的数据,因此我键入了pip install labelme==3.19.0。马上得到了以下的报错:

  1. ERROR: Could not find a version that satisfies the requirement PyYAML (from labelme) (from versions: none)
  2. ERROR: No matching distribution found for PyYAML

其实你安装好这个库之后运行上面那个命令,还是会报错。因为labelme的还有依赖项,这些依赖项一般在新环境中需要自己安装。于是我依次安装了PyYAML、numpy、Pillow、qtpy、matplotlib、lxml、pyqt5这些包。
安装成功后可以得到反馈:Successfully installed imgviz-1.4.1 labelme-3.19.0 termcolor-1.1.0

1.2.3 使用报错(找不到配置文件)

报错信息为FileNotFoundError: [Errno 2] No such file or directory: 'C:\\xxx\\xxx\\.labelmerc'
这个文件确实不存在,但是也没什么头绪。键入了labelme —help,想听听它的帮助与指导。

  1. usage: labelme [-h] [--version] [--reset-config]
  2. [--logger-level {debug,info,warning,fatal,error}]
  3. [--output OUTPUT] [--config CONFIG] [--nodata] [--autosave]
  4. [--nosortlabels] [--flags FLAGS] [--labelflags LABEL_FLAGS]
  5. [--labels LABELS] [--validatelabel {exact,instance}]
  6. [--keep-prev] [--epsilon EPSILON]
  7. [filename]
  8. positional arguments:
  9. filename image or label filename
  10. optional arguments:
  11. -h, --help show this help message and exit
  12. --version, -V show version
  13. --reset-config reset qt config
  14. --logger-level {debug,info,warning,fatal,error}
  15. logger level
  16. --output OUTPUT, -O OUTPUT, -o OUTPUT
  17. output file or directory (if it ends with .json it is
  18. recognized as file, else as directory)
  19. --config CONFIG config file or yaml-format string (default:
  20. C:\xxx\xxx\.labelmerc)
  21. --nodata stop storing image data to JSON file
  22. --autosave auto save
  23. --nosortlabels stop sorting labels
  24. --flags FLAGS comma separated list of flags OR file containing flags
  25. --labelflags LABEL_FLAGS
  26. yaml string of label specific flags OR file containing
  27. json string of label specific flags (ex. {person-\d+:
  28. [male, tall], dog-\d+: [black, brown, white], .*:
  29. [occluded]})
  30. --labels LABELS comma separated list of labels OR file containing
  31. labels
  32. --validatelabel {exact,instance}
  33. label validation types
  34. --keep-prev keep annotation of previous frame
  35. --epsilon EPSILON epsilon to find nearest vertex on canvas

从反馈信息来看,我安装的labelme缺少配置文件。那怎么办呢?再重新装一下试试!
马上重装了一个高一点的版本,于是labelme就可以正常使用啦。现在还有美中不足的是,每次使用的提示信息都是乱码。

  1. (labelme) D:\open-source-code\labelme\examples\tutorial>labelme apc2016_obj3.jpg
  2. [INFO ] __init__:get_config:73 - Loading config file from: C:\xxx\xxx\.labelmerc

1.3 使用教程(摘抄自官网)

建议去官网学习。

  1. labelme # just open gui
  2. # tutorial (single image example)
  3. cd examples/tutorial
  4. labelme apc2016_obj3.jpg # specify image file
  5. labelme apc2016_obj3.jpg -O apc2016_obj3.json # close window after the save
  6. labelme apc2016_obj3.jpg --nodata # not include image data but relative image path in JSON file
  7. labelme apc2016_obj3.jpg \
  8. --labels highland_6539_self_stick_notes,mead_index_cards,kong_air_dog_squeakair_tennis_ball # specify label list
  9. # semantic segmentation example
  10. cd examples/semantic_segmentation
  11. labelme data_annotated/ # Open directory to annotate all images in it
  12. labelme data_annotated/ --labels labels.txt # specify label list with a file

1.3.1 中文教程推荐