在对数据集进行数据标注的时候,采用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、检查一下你的数据集等相关文件目录有没有中文,其实我中文命名也没问题,不过网上有人出错说是中文路径问题,你们如果以上解决不了可以改成不要中文的试试。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐