打标工具labelme或者labelimg遇到图片闪退的完美解决方案

在对数据集进行数据标注的时候,采用labelimg或者labelme标注标签的时候,我们有时候会遇到闪退或者卡住的的情况。

在通过我的分析之后,我找到了问题所在并且解决问题。

1、labelimg刚刚开始可以打标签,打到一半或者后面就卡住闪退,遇到这样的问题就是你的类别对不上。labelimg里面定义的类别 predefined_classes.txt 里面的类别要和你要打标的数据集里面的类别一样。或者是你的图片的标签和classes对不上。

在这里插入图片描述
在这里插入图片描述

2、如果在两边的类别一样情况下还是出问题,那么可能你的标签出现了问题导致读取出错闪退,你可以打开你打标的数据集,如下图,一般来说你的数据打标后的标签的大小都是一样或者差不多的字节内存,你截图看到你卡住闪退的那张图片的名字,在卡住这张图片胡总或者上下几张去看它的label的文件大小是否相差很大,如果是,那就是那一张出错了,你把它删除再重新打就好了。

在这里插入图片描述

3、labelme打标打到一半闪退出错,这是因为那张图片有问题,因为我们用了PIL模块,对于PIL模块来说,其模式包括以下几种:

1        1位像素,黑和白,存成8位的像素
L        8位像素,黑白
P        8位像素,使用调色板映射到任何其他模式
RGB       3×8位像素,真彩
RGBA       4×8位像素,真彩+透明通道
CMYK       4×8位像素,颜色隔离
YCbCr       3×8位像素,彩色视频格式
I          32位整型像素
F         32位浮点型像素
在这里插入图片描述
报错原因也很明显,因为有图片的模式是“P”,不是"RGB",所以无法直接写入保存。对于这个问题,你可以把将该图片模式从“P”转化为“RGB”模式,再保存为“jpg”就可以了,这是代码:

from PIL import Image
img = Image.open('C:/Users/lenovo/Desktop/新建文件夹 (3)/time(111).jpg')
print(img.mode)
if img.mode == "P":
   img = img.convert('RGB')
img.save('C:/Users/lenovo/Desktop/新建文件夹 (3)/save.png')

或者你不要这张图片把它去掉也行。

4、检查一下你的数据集等相关文件目录有没有中文,其实我中文命名也没问题,不过网上有人出错说是中文路径问题,你们如果以上解决不了可以改成不要中文的试试。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qiuzitao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值