图像标注工具labelImg和labelme是最常用的两个。而在使用过程中labelimg可以直接生成yolo格式,且为中文页面,而labelme目前还不行。虽然稳定性和功能上labelme有优势,但从方便性考虑,还是首选labelimg。
github上labelimg主页中也挂了windows的可执行文件,但版本是1.8.1,使用时非常不稳定,几乎不可使用,网上也有打包成一个单独exe文件的下载,但由于预设的分类无法更改,造成标注后自己设置的分类名称不是从0开始,标注时还要在10几个预设类中下拉到最下面选择自己设定的分类名称,非常不方便。
自己动手,一切都有。在此详细记录整个过程。嫌麻烦,下个文章直接贴打包生成的exe文件包,亲测可用。
文章最后一部分是使用labelimg过程中的一些注意事项,主要是闪退问题的解决。
参考文章 LabelImage安装以及打包exe教程,win10+anaconda3-CSDN博客
一、Conda新建虚拟环境
在开始中输入 anaconda,打开conda命令窗口
下面都在conda命令窗口中操作
退出当前虚拟环境
E:\>conda deactivate
用下面这条指令在特定的路径中创建新的虚拟环境
conda create --prefix /path/to/environment_name
其中,/path/to/environment_name是你想要创建环境的目录和环境名称。请将其替换为实际的目录和名称。
E:\>conda create --prefix=E:\python_dev\envs\labelimg python=3.6
其中 python_dev\envs 是提前创建好的文件夹, labelimg 是虚拟环境名称
执行结束后提示成功:
done
To activate this environment, use
$ conda activate E:\python_dev\envs\labelimg
To deactivate an active environment, use
$ conda deactivate
激活并进入环境labelimg
E:\>conda activate E:\python_dev\envs\labelimg
(labelimg) E:>cd python_dev\envs\labelimg
二、安装依赖包
下载并安装PyQt5(使用镜像)
(labelimg) E:\python_dev\envs\labelimg>pip install PyQt5 -i https://pypi.douban.com/simple
Installing collected packages: PyQt5-sip, PyQt5-Qt5, PyQt5
Successfully installed PyQt5-5.15.6 PyQt5-Qt5-5.15.2 PyQt5-sip-12.9.1
其他镜像地址:
阿里镜像 -i https://mirrors.aliyun.com/pypi/simple/
清华镜像 -i https://mirrors.aliyun.com/pypi/simple/
安装PyQt5_tools库
(labelimg) E:>pip install pyqt5-tools -i https://pypi.douban.com/simple
安装lxml库
pip install lxml
三、下载安装运行labelimg
因为后面要为后面打包生成exe文件准备,故本文采用直接下载源代码的方式。 不需打包可以使用conda或pip直接安装运行。
在github上下载了labelimg源代码并解压到本地,
下载地址 https://github.com/HumanSignal/labelImg
github无法访问,可使用国内镜像地址https://hub.fgit.cf/HumanSignal/labelImg
(labelimg) E:>cd python_dev\labelimg-master
尝试运行
(labelimg) E:\python_dev\labelImg-master>python labelimg.py
-------------
Traceback (most recent call last):
File "labelimg.py", line 29, in <module>
from libs.resources import *
ModuleNotFoundError: No module named 'libs.resources'
会报错 , 解决方法:将 labelImg-master 文件夹下面的 resources.py 复制到libs文件夹下面,就可解决报错问题。参考 https://blog.csdn.net/qq_44191346/article/details/131961138
是拷贝的,不是剪切的,在执行下面语句
(labelimg) E:\python_dev\labelImg-master>pyrcc5 -o resources.py resources.qrc
(labelimg) E:\python_dev\labelImg-master>python labelimg.py
成功运行了 labelimg 版本是 1.8.6 , 而在github上发布的exe文件版本是 1.8.1
四、LabelImg使用中遇到的问题
1. 预设分类名称: 在文件 data/predefined_classes.txt 中设置即可,一行一个,在标记文件中编码数字从0开始
2. 闪退问题: 当首次标注一个图片库时,会自动在图片库文件夹中创建一个 classes.txt文件,初始内容取自predefined_classes.txt, 标记过程中临时添加的标记也会被写到该文件。 但当打开一个新文件夹时,如果predefined_classes.txt 和 classes.txt的文件内容有冲突,比如同一个类的序号不同,就会闪退。解决防范就是保证两个文件内容一致。如果图片库需要多次标记,注意每次都要检查下classes.txt的内容,保证包含之前的标记类别以及排序保持前后一致。
3. 标记生成的文件
选择生成格式为yolo时,生成的txt标记文件,是一行一个标记。但当用记事本打开时,会看到多个标记数据都写在了一行,并没有换行,这是因为记事本默认编码不是utf-8. 用支持utf-8的编辑器打开即可看到是一行一个标记数据。
以上为安装和使用labelimg的过程, 下篇文章将用pyinstaller工具打包生成可执行exe文件。