定向目标检测是一种在图像或视频中识别和定位对象的同时,还估计它们方向的技术。这种技术特别适用于处理有一定旋转或方向变化的对象,例如汽车、飞机或文本。定向目标检测器的输出是一组旋转的边界框,这些框精确地包围了图像中的对象,并且每个框都带有类别标签和置信度分数。
LabelImg2是LabelImg的一个改进版本,它不仅支持传统的轴对齐矩形边界框标注,还支持旋转边界框(即定向边界框)的标注。这对于需要精确捕捉物体方向的目标检测任务非常有用。以下是关于如何安装和使用LabelImg2进行定向目标检测数据集标注的详细介绍:
1.LabelImg2环境配置
为了能够在Windows操作系统下顺利使用LabelImg2,需要先安装Anaconda来管理Python环境。下面是详细的步骤:
(1)安装Anaconda:访问Anaconda官网下载适合你系统的版本并安装。安装过程中,建议勾选“Add Anaconda to my PATH environment variable”选项,以便将Anaconda添加到系统环境变量中。
(2)创建虚拟环境:打开Anaconda Prompt,创建一个名为`label`的新环境,并指定Python版本为3.6(指定Python版本为3.6的原因后面会细说)。命令如下:
conda create --name label python=3.6
(3)激活虚拟环境:通过以下命令激活刚刚创建的虚拟环境:
conda activate label
(4)安装依赖库:在激活的环境中安装LabelImg运行所需的依赖库,包括sip、PyQt5和 lxml。推荐使用清华镜像源加快下载速度。
pip install sip PyQt5 lxml
(5)下载LabelImg2:从GitHub或其他可信来源下载LabelImg2源码,解压后进入该目录。
打开目录中的名为setup.py的python文件,可以看到如下代码,其中支持的python最高版本为3.6,所以前面配置的python版本为3.6。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from setuptools import setup, find_packages
from libs.version import __version__
with open('README.rst') as readme_file:
readme = readme_file.read()
with open('HISTORY.rst') as history_file:
history = history_file.read()
requirements = [
# TODO: Different OS have different requirements
]
required_packages = find_packages()
required_packages.append('labelImg')
APP = ['labelImg.py']
OPTIONS = {
'argv_emulation': True,
'iconfile': 'icons/app.icns'
}
setup(
app=APP,
name='labelImg2',
version=__version__,
description="LabelImg2 is a graphical image annotation tool and label object bounding boxes in images",
long_description=readme + '\n\n' + history,
author="TzuTa Lin",
author_email='tzu.ta.lin@gmail.com',
url='https://github.com/chinakook/labelImg2',
package_dir={'labelImg': '.'},
packages=required_packages,
entry_points={
'console_scripts': [
'labelImg2=labelImg2.labelImg:main'
]
},
include_package_data=True,
install_requires=requirements,
license="MIT license",
zip_safe=False,
keywords='labelImg labelTool development annotation deeplearning',
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Natural Language :: English',
"Programming Language :: Python :: 2",
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
],
package_data={'data/predefined_classes.txt': ['data/predefined_classes.txt']},
options={'py2app': OPTIONS},
setup_requires=['py2app']
)
(6)编译资源文件:如果直接使用源码安装,可能需要编译资源文件。在LabelImg2目录下执行以下命令:
pyrcc5 -o resources.py resources.qrc
(7)启动LabelImg2:最后,cd进入文件夹,通过以下命令启动LabelImg2界面:
python labelImg.py
(也可在Anaconda Prompt中CD进入LabelImg2文件夹,输入上面的命令,目前测试中文路径不影响)
2.使用LabelImg2进行定向目标检测数据集标注
(1)选择标注格式:在LabelImg2界面中,可以通过菜单栏选择YOLO格式或者PASCAL VOC格式。对于定向目标检测,我们通常选择YOLO格式,因为它能够更好地支持旋转边界框。
(2)加载图片:点击“Open Dir”按钮,选择包含待标注图片的文件夹。同样设置保存标注文件的目录。
(3)创建预定义类:可以在界面右上角添加你的项目中所有需要标注的类别名称。这样可以在标注时快速选择类别。
点击标记1的地方即可添加类别名称,点击标记2的地方即可选择自己的类别作为旋转框标注的类别
(4)绘制旋转边界框:使用鼠标左键在图片上绘制边界框,然后输入相应的类别名。对于LabelImg2,你可以通过鼠标右键拖动边界框的角点来调整其旋转角度,以适应物体的方向。
标记1的地方是水平框标注,标记2的地方是旋转框标注
(5)保存标注结果:完成标注后,记得保存标注信息。如果你选择了自动保存模式,则切换到下一张图片时会自动保存当前图片的标注信息。
3.注意事项
在标注过程中,确保你的图片文件名不包含中文字符,否则可能会导致无法正确读取或保存。
如果遇到任何问题,比如软件崩溃或无法启动,检查是否有遗漏的依赖项未被安装,或者尝试重新配置环境。