LabelImg是一个图形图像注释工具。
它是用Python编写的,并使用Qt作为其图形界面。
注释以PASCAL VOC格式保存为XML文件,这是ImageNet使用的格式。此外,它还支持YOLO格式
观看演示视频
安装
从源头构建
Linux / Ubuntu / Mac至少需要Python 2.6并且已经使用PyQt 4.8进行了测试。但是,强烈建议使用Python 3或更高版本以及PyQt5。
Ubuntu Linux
Python 2 Qt4
代码语言:javascript复制sudo apt-get install pyqt4-dev-tools
sudo pip install lxml
make qt4py2
python labelImg.py
python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
Python 3 Qt5 (Recommended)
代码语言:javascript复制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]
macOS
Python 2 Qt4
代码语言:javascript复制brew install qt qt4
brew install libxml2
make qt4py2
python labelImg.py
python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
Python 3 Qt5 (Recommended)
代码语言:javascript复制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 (Recommended)
Virtualenv can avoid a lot of the QT / Python version issues
代码语言:javascript复制brew install python3
pip3 install pipenv
pipenv --three # or pipenv install pyqt5 lxml
pipenv run pip install pyqt5 lxml
pipenv run make qt5py3
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
视窗
安装Python, PyQt5 并安装lxml。
打开cmd并转到labelImg目录
代码语言:javascript复制pyrcc4 -o line / resources.py resources.qrc
对于pyqt5,pyrcc5 -o libs / resources.py资源qrc
python labelImg.py
python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
Windows Anaconda
下载并安装Anaconda(Python 3 )
打开Anaconda Prompt并转到labelImg目录
代码语言:javascript复制conda install pyqt = 5
pyrcc5 -o libs / resources.py resources.qrc
python labelImg.py
python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
从PyPI获取但只有python3.0或更高版本
代码语言:javascript复制pip3 install labelImg
labelImg
labelImg [IMAGE_PATH] [预先定义的课程文件]
使用Docker
代码语言:javascript复制码头运行-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
您可以提取具有所有已安装和所需依赖项的映像。观看演示视频
用法
步骤(PascalVOC)
- 使用上述说明构建和启动。
- 单击“菜单/文件”中的“更改默认保存的注释文件夹”
- 点击“打开目录”
- 点击“创建RectBox”
- 单击并释放鼠标左键以选择要注释矩形框的区域
- 您可以使用鼠标右键拖动矩形框进行复制或移动
注释将保存到您指定的文件夹中。
您可以参考以下热键来加快工作流程。
步骤(YOLO)
- 在
data/predefined_classes.txt
定义将用于培训的类列表中。 - 使用上述说明构建和启动。
- 在工具栏右下方的“保存”按钮下,单击“PascalVOC”按钮切换到YOLO格式。
- 您可以使用Open / OpenDIR处理单个或多个图像。完成单个图像后,单击“保存”。
YOLO格式的txt文件将与具有相同名称的图像保存在同一文件夹中。名为“classes.txt”的文件也会保存到该文件夹中。“classes.txt”定义YOLO标签引用的类名列表。
注意:
- 您的标签列表在处理图像列表的过程中不得更改。保存图像时,classes.txt也会更新,而以前的注释不会更新。
- 保存为YOLO格式时不应使用“默认类”功能,不会引用它。
- 保存为YOLO格式时,丢弃“难”标志。
创建预定义的类
您可以编辑 data / predefined_classes.txt 以加载预定义的类
热键
Ctrl u | 从目录加载所有图像 |
---|---|
Ctrl r | 更改默认注释目标目录 |
Ctrl s | 保存 |
Ctrl d | 复制当前标签和矩形框 |
空间 | 将当前图像标记为已验证 |
w ^ | 创建一个矩形框 |
d | 下一张图片 |
一个 | 上一张图片 |
德尔 | 删除所选的矩形框 |
按Ctrl | 放大 |
Ctrl-- | 缩小 |
↑→↓← | 键盘箭头移动选定的矩形框 |
验证图片:
按空格键时,用户可以将图像标记为已验证,将显示绿色背景。这在自动创建数据集时使用,然后用户可以浏览所有图片并标记它们而不是注释它们。
难:
难度字段设置为1表示该对象已被注释为“困难”,例如,在没有充分利用上下文的情况下清晰可见但难以识别的对象。根据您的深度神经网络实现,您可以在训练期间包含或排除困难对象。
如何贡献
发送拉取请求
执照
免费软件:MIT许可证
引用:Tzutalin。LabelImg。Git代码(2015)。https://github.com/tzutalin/labelImg