1.是什么
LabelImg 是一个图形化的图像标注工具,主要用于机器学习和计算机视觉领域中的数据预处理。它是由 GitHub 用户 tzutalin 开发的开源项目,基于 Python 和 Qt 框架编写。LabelImg 允许用户手动为图像添加边界框(bounding boxes)标注信息,可以用来训练目标检测、图像分割等任务的模型。
英文版,可生成yolo格式、voc、CreatML标签格式的目标检测数据集标签。
2.安装方式
首先进入虚拟环境,有两种方式进行安装:
第一种,在命令窗口输入如下命令
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
第二种,源码网站拉取:
https://github.com/HumanSignal/labelImg
命令行输入labelimg,会弹出一个UI界面
说明安装成功。
3.前置准备
接下来先创建一个文件夹用以存放自己的数据集。
一个存放图片,一个存放标签。
往image中存放一些图片以供标注。
接着即可进行标注。
4.如何使用
命令行输入labelimg以打开工具。如图所示,每个按钮的作用已在图中标出,右边是操作栏,中间是图像操作区,右边展示已经标注的标签框,右下是当前文件夹的图片列表。
具体操作流程:
点击Open标注单张图像/点击Open Dir选择数据集路径以批量操作->点击Create RectBox在中间图像区进行操作,区域选择操作完成后会弹窗输入标签(你每次输入的标签都会被存储起来),点击ok保存标签->点击save保存标签文件。
进阶操作:
点击上方菜单栏view,可以选择标注模式。
从上至下依次:
勾选第一个能够在你选择下一张图像时自动保存标签。
勾选第二个代表接下来标注的都是同一类物体。
勾选第三个能展示标签。
勾选第四个展示右边标签面板。
勾选第五个时能连续进行多次标注操作。
标注完成后,可在目标文件夹发现如下文件:
即图像jpg文件,yolo标签txt文件和标签类别classes.txt文件。
记得第三步时,让大家创建的label文件了吗?把你生成的标签转移进去即可。
5.训练注意
1.如何对自己通过以上步骤生成好的数据集进行处理?
通过上述步骤,你能获得标签,但实际训练时需要对数据集进行一些更多操作。
采用yolo进行目标检测训练时,应对数据集进行分类,首先在image和label文件夹下均分别创建train和val文件夹(有需要的可以准备test文件夹),然后进行数据集的划分,对你的图片及对应的标注文件划分为合适的比例。
如你数据集有100张图片,划分train:val为9:1。则可以给train90张,val10张。
如你还需划分test文件夹,对100张图片划分数据集使得train:val:test为7:2:1,则给train70张,val20张,test10张。
一般来说,若数据集数量多则任意,若数据集少往往带来训练出的模型具有较低的准确率、鲁棒性和容易过拟合,应根据需求加大数据量。
2.实际训练时,输出指标和loss曲线的问题
进行训练过程中,有许多小伙伴经常会遇到一个问题,就是训练效果很差很差,大部分时候loss曲线不为0,但指标是0,于是乎怀疑是否标注存在问题。其实是因为许多目标检测算法本身对训练的要求较为苛刻,对训练数据的数量要求高。
这里建议若你检测的目标物体形状较复杂,拥有较为丰富的特征语义信息,则多标注几张,多训练几轮即可解决。
6.常见报错
1.标注图像时即闪退,同时,控制台报错:
TypeError: setValue(self, int): argument 1 has unexpected type 'float'
TypeError: arguments did not match any overloaded call:drawLine(self, QLineF): argument 1 has unexpected type 'float'drawLine(self, QLine): argument 1 has unexpected type 'float'drawLine(self, int, int, int, int): argument 1 has unexpected type 'float'drawLine(self, QPoint, QPoint): argument 1 has unexpected type 'float'drawLine(self, Union[QPointF, QPoint], Union[QPointF, QPoint]): argument 1 has unexpected type 'float'
解决方法:
我重新开了一个虚拟环境,python版本是3.9.18,即解决,且不再闪退、标注、放缩等操作没有报错。
不知道如何新建虚拟环境可见我该文章的第二段大标题部分。
【保姆级最简洁教程】零基础如何快速搭建YOLOv5/v7?_yolo安装-CSDN博客
2.暂时未遇到其他报错,如有欢迎评论区评论以交流!持续更新中。