教程概述
本教程将讲解labelimg的下载,及其使用方式(针对yolo),以及复现导致闪退BUG问题的操作并强调正确的使用方式。本教程所使用的数据集来自于文章 桥梁缺陷YOLO免费数据集分享 – 6308张已标注8类缺陷图像。
labelImg的下载
方式一:官网下载
如果你有自己的代理,可自行在github官网下载,链接= > https://github.com/HumanSignal/labelImg
如图
方式二:网盘下载
如果你的没有代理或代理无法使用(特别是新疆的用户),可在我的网盘分享链接中下载=> labelImg网盘下载链接
labelImg的使用
下载并启动
1.将源码用Pycharm打开,如图
在上方我框起来的地方是使用labelImg需要的库,如有PyQT5和lxml库你可以直接启动labelImg.py,否则需要先下载这两个库,分别执行如下命令下载PyQT5和lxml,如图
pip install pyqt5
pip install lxml
然后直接启动labelimg.py即可开始使用,如图
初步配置
labelimg是拿来标注图片的,对于yolo类的项目,我们需要将存储的标签更改为yolo格式,如图直接点击切换即可
其次还有个重要的前提配置是预设标签,所谓预设标签就是说比如我们这次要标注的内容中包括了8类 腐蚀、裂缝、退化混凝土、混凝土空洞、潮湿、路面劣化、收缩裂缝、底层收缩裂缝
那么我们就应当提前设置好这8类,在labelimg项目根目录中可以看到一个名为data的目录,其下有 predefined_classes.txt 文件,我们将这8类要识别的对象放进去然后重启labelimg,注意换行,如图
导入图片开始标注
我这里使用的是文章开头提到的数据集,如图,点击labelImg的打开目录,选择包含图片的文件夹
如上图我们已经打开了需要标注的图片,这里需要提醒的是,我所提供的数据集其实是有标注的,下面的报错复现我将讲解如何导入已有标签的数据集,这里为了演示如何标注暂不导入标签文件。
关于如何标注,记住4个快捷键就行了
- W键:开启标注模式,需要取消的话直接点击任意地方即可
- A键:返回上一张图
- D键:进入下一张图
- Ctrl+S:保存
如图,由于我们设置了预设标签,标注一个区域后直接选择对象即可
然后保存进入下一张,如果没保存也没关系,labelimg会提示,如图直接选择yes即可
分析刚才标注的错误操作并纠正(重要)
我们刚才标注了一张图,那么labelimg做了什么事呢?
我们上方使用labelimg时,首先是打开了含有图片的文件夹images,然后就直接开始标注并保存了,来到images文件夹可以看到多了两个文件 ,如图,一个是和图片名称相同的txt文件,一个是classes.txt文件
这样的操作是不建议的,因为将标签和图片混在了一起,正确的做法是,先打开图片目录,再点击改变存放目录->选择一个空的文件夹用于存放标签,如图
可以看到,这样就可以将标签和图片隔离开了,如图(注意别忘了将images中的标签删了)
复现导致闪退BUG问题的操作
以上是labelImg的正确使用方式,下面来复现闪退Bug,
Bug1:改变存放目录就闪退(无clasess.txt文件)
在文章头我提供的数据集中,有标签文件,但是没有classes.txt文件,但是我们又需要打开别人标注的数据集。
第一步:打开图片文件夹,如图
第二步:打开标签文件,如图
当你一打开标签目录labelimg就会闪退,这是因为标签目录中没有clasess.txt文件,因此需要先在标签目录中配置自己的clasess.txt文件。
根据我所提供的数据集中的yaml配置文件可以知道有8个类别,如图,为
在labels目录中新建clasess.txt,并将这8中类别放进去,换行分隔,如图
如上图,我们配置了类别,然后我们再次打开labelImg并导入图片目录和标签,会发现还是闪退<=这是第二个导致闪退的原因,文件编码不正确,见下方
Bug2:改变存放目录就闪退(clasess.txt编码不正确)
我们打开clasess.txt,然后ctrl+shift+s或者直接点击文件->另存为,然后将文件格式切换为ANSI格式保存,如图
将clasess.txt文件用正确格式保存后便可以正常使用labelImg了,如图可以看到我们成功导入了标签
结语:
以上是幽络源提供的labelImg的下载、使用方式、及复现导致闪退BUG问题的操作并强调正确的使用方式的教程,有问题可加群询问,一起交流
暂无评论内容