labelImg 使用教程
LabelImg简介
LabelImg是一个图形图像注释工具。
它是用Python编写的,并使用Qt作为其图形界面。
注释以PASCAL VOC格式保存为XML文件,这是ImageNet使用的格式。此外,它还支持YOLO格式和 CreateML 格式
LabelImg用法
步骤 (PascalVOC)
- 使用上述说明构建和启动。
- 单击菜单/文件中的“更改默认保存的注释文件夹”
- 点击“打开目录”
- 单击“创建矩形框”
- 单击并释放鼠标左键选择一个区域来注释矩形框
- 您可以使用鼠标右键拖动矩形框来复制或移动它
注释将保存到您指定的文件夹中。
您可以参考以下热键来加快您的工作流程。
步骤 (YOLO)
- 在
data/predefined_classes.txt
定义将用于您的培训的课程列表。 - 使用上述说明构建和启动。
- 在工具栏中“保存”按钮的正下方,单击“PascalVOC”按钮切换到 YOLO 格式。
- 您可以使用 Open/OpenDIR 处理单个或多个图像。完成单个图像后,单击保存。
YOLO 格式的 txt 文件将与您的图像同名保存在同一文件夹中。一个名为“classes.txt”的文件也保存到该文件夹中。“classes.txt”定义了你的 YOLO 标签所引用的类名列表。
笔记:
- 您的标签列表在处理图像列表的过程中不应更改。保存图像时,classes.txt 也会更新,而之前的注释不会更新。
- 保存为 YOLO 格式时不应该使用“默认类”功能,它不会被引用。
- 当保存为 YOLO 格式时,“困难”标志被丢弃。
创建预定义的类
您可以编辑 data/predefined_classes.txt 以加载预定义的类
注释可视化
- 将现有的标签文件复制到与图像相同的文件夹中。标签文件名必须与图像文件名相同。
- 单击文件并选择“打开目录”,然后打开图像文件夹。
- 在文件列表中选择图像,它将显示该图像中所有对象的边界框和标签。
(在视图中选择显示标签模式以显示/隐藏标签)
热键
验证图片
当按下空格键时,用户可以将图像标记为已验证,然后将显示绿色背景。在自动创建数据集时使用此功能,然后用户可以浏览所有图片并标记它们,而不用对其进行注释
设置困难识别对象
困难字段设置为1表示该对象已被注释为“困难”,例如,清晰可见但在不大量使用上下文的情况下很难识别的对象。根据您的深度神经网络实现,您可以在训练期间包括或排除困难对象。
如何重置设置
如果加载类时出现问题,您可以:
- 从 labelimg 的顶部菜单中单击 Menu/File/Reset All
- 从您的主目录中删除 .labelImgSettings.pkl。在 Linux 和 Mac 中,您可以执行以下操作:rm ~/.labelImgSettings.pkl
实际操作
- 先准备好两个文件夹,一个存放已经采集好的图片,另一个存放准备标定后的xml文件,并修改
文件夹下的data
类文件(我这里只设置一个类 )并保存:predefined_classes.txt
- 在LabelImg文件夹右键控制台运行
启动程序:python labelImg.py
3.点击
open dir
,选择我们存放图片的文件夹,然后再选择我们准备存放xml文件的文件夹:
(注意:打开已有标注的文件夹时,务必保证里面有class.txt文件,否则程序将崩溃)
4.然后点击
Create/nRectBox
或按快捷键
W
开始画框:
- 选择目标类别并点击ok
- 标完后点击Next Image或按快捷键D切换到下一张图片
- 当一张图片标记完成后,会在一开始我们设置存储xml文件的文件夹下生成一个xml文件:
- 打开可观察里面的内容:
相关和附加工具
- ImageNet Utils用于下载图像、为机器学习创建标签文本等
- 使用 Docker 运行 labelImg
- 生成 PASCAL VOC TFRecord 文件
- 基于 Nick Roach (GPL) 的 Icon 的 App Icon
- 在 vscode 中设置 python 开发
- 本项目在iHub平台的链接
- 将注释文件转换为 CSV 格式或 Google Cloud AutoML 格式
labelImg安装
在gitbash的安装
用gitbash打开,运行git clone https://github.com/tzutalin/labelImg
然后pip install pyqt5 ,报错,先安装SIP:pip install SIP,再次执行pip install pyqt5,仍然报错,
(直接下载源码安装),链接:PyQt5,下这个:
下好后,直接在.whl文件当前文件夹右键运行cmd,执行
pip install PyQt5-5.13.0-5.13.0-cp35.cp36.cp37.cp38-none-win_amd64.whl
然后安装lxml:
pip install lxml
接下来:
Open cmd and go to the labelImg directory
pyrcc4 -o line/resources.py resources.qrc
For pyqt5, pyrcc5 -o libs/resources.py resources.qrc
python labelImg.py
python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
执行
pyrcc4 -o line/resources.py resources.qrc
时报错:
原来我们安装的是PyQt5,不用执行上面那句,直接执行:
pyrcc5 -o libs/resources.py resources.qrc
,然后运行
py
thon labelImg.py
就好了。
从源代码构建
Linux/Ubuntu/Mac 至少需要Python 2.6并且已经使用PyQt 4.8进行了测试。但是,强烈建议使用Python 3 或更高版本和 PyQt5 。
Ubuntu Linux
Python 3 + Qt5
sudo apt-get install pyqt5-dev-tools
sudo pip3 install -r requirements/requirements-linux-python3.txt
make qt5py3
python3 labelImg.py
python3 labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
IOS系统
Python 3 + Qt5
brew install qt # Install qt-5.x.x by Homebrew brew install libxml2 or using pip pip3 install pyqt5 lxml # Install qt and lxml by pip make qt5py3 python3 labelImg.py python3 labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
Python 3 Virtualenv(推荐)
Virtualenv 可以避免很多 QT/Python 版本的问题
brew install python3
pip3 install pipenv
pipenv run pip install pyqt5==5.15.2 lxml
pipenv run make qt5py3
pipenv run python3 labelImg.py
[Optional] rm -rf build dist; python setup.py py2app -A;mv "dist/labelImg.app" /Applications
注意:Last 命令为您提供了一个漂亮的 .app 文件,其中包含 /Applications 文件夹中的新 SVG 图标。可以考虑使用脚本:build-tools/build-for-macos.sh
Windows
安装Python、 PyQt5 并安装 lxml。
打开cmd进入labelImg目录
pyrcc4 -o libs/resources.py resources.qrc
For pyqt5, pyrcc5 -o libs/resources.py resources.qrc
python labelImg.py
python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
如果要打包成单独的EXE文件
Install pyinstaller and execute:
pip install pyinstaller
pyinstaller --hidden-import=pyqt5 --hidden-import=lxml -F -n "labelImg" -c labelImg.py -p ./libs -p ./
** Windows + anaconda**
下载并安装Anaconda (Python 3+)
打开Anaconda Prompt,进入labelImg目录
conda install pyqt=5
conda install -c anaconda lxml
pyrcc5 -o libs/resources.py resources.qrc
python labelImg.py
python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
使用 Docker
docker run -it \
--user $(id -u) \
-e DISPLAY=unix$DISPLAY \
--workdir=$(pwd) \
--volume="/home/$USER:/home/$USER" \
--volume="/etc/group:/etc/group:ro" \
--volume="/etc/passwd:/etc/passwd:ro" \
--volume="/etc/shadow:/etc/shadow:ro" \
--volume="/etc/sudoers.d:/etc/sudoers.d:ro" \
-v /tmp/.X11-unix:/tmp/.X11-unix \
tzutalin/py2qt4
make qt4py2;./labelImg.py
拓展
roLabelImg简介
roLabelImg是基于labelImg改进的,也是用来标注为VOC格式的数据,但是在labelImg的基础上增加了能够使标注的框进行旋转的功能。
最后
文章到这里就先结束了,后面还会持续更新,希望能帮助到各位大佬。如果文章有需要改进的地方还请大佬斧正🎉🎉🎉。
制作不易,希望能得到各位小伙伴儿的支持😘😘😘。
再次感谢大家了🤞🤞🤞。
相信小伙伴们使用labelimgdui 数据打标签以及有一定的了解, 更多干货请看这里:更多知识点总结
参考:VOC数据集图片标注工具labelImg简介、安装、使用方法详细攻略(windows) PyQt4、PyQt5GitHub - tzutalin/labelImg: 🖍️ LabelImg is a graphical image annotation tool and label object bounding boxes in images
版权归原作者 Bevis_OTL 所有, 如有侵权,请联系我们删除。