尝试导出 YOLO 训练样本时 Labelimg 崩溃

Labelimg crashes when attempting to export YOLO training samples

我对 Python 和深度学习标记数据还很陌生。我已经安装了 Labelimg 程序来标记自定义数据集,但是当我创建 YOLO 训练样本时它总是崩溃。每次打开程序并指定图像目录时,我都可以浏览图像,但是当我创建边界框并尝试单击“下一张图像”按钮时,它会崩溃并显示错误消息。

请注意,我按照 this 教程安装了 Labelimg。

以下是我创建错误的方式:

  1. 打开 Anaconda 提示符
  2. 在conda中激活之前创建的labelimg环境

conda activate labelimg

  1. 指定解压缩的 labelimg 文件夹的位置

cd D:\labelimg

  1. 打开 python 脚本,然后是图像目录的位置、先前创建的带有标签名称(杂草)的文本文件,以及先前创建的带有 class 名称的文本文件它(杂草):

python labelimg.py D:\photo_directory D:\label.txt D\:classes.txt

然后程序打开,显示如下:

请注意,我正在尝试将样本导出为 YOLO 训练样本。图片的名称是“weed0”。每当我创建样本并单击“下一张图片”按钮时,程序就会崩溃并出现以下错误:

Traceback (most recent call last):
  File "labelimg.py", line 1299, in openNextImg
    self.saveFile()
  File "labelimg.py", line 1339, in saveFile
    self._saveFile(savedPath)
  File "labelimg.py", line 1371, in _saveFile
    if annotationFilePath and self.saveLabels(annotationFilePath):
  File "labelimg.py", line 837, in saveLabels
    self.lineColor.getRgb(), self.fillColor.getRgb())
  File "D:\labelimg\libs\labelFile.py", line 89, in saveYoloFormat
    writer.save(targetFile=filename, classList=classList)
  File "D:\labelimg\libs\yolo_io.py", line 64, in save
    out_file = codecs.open(targetFile, 'w', encoding=ENCODE_METHOD)
  File "D:\anaconda3\envs\labelimg\lib\codecs.py", line 898, in open
    file = builtins.open(filename, mode, buffering)
FileNotFoundError: [Errno 2] No such file or directory: 'D:\weed0.txt'

如何保证导出YOLO训练样本时程序不崩溃?除了重新安装程序,我什么都做了,这对我来说没有意义,因为我刚刚下载了它。

解决方案是将图像文件从 .jpg 转换为 .png 文件。在此之后,它完美地工作。本教程非常有帮助:

https://www.youtube.com/watch?v=FGr3N3DLGEI

此外,由于我正在收集无人机图像(尺寸为 4000x3000 像素)的图像,因此该程序不喜欢那么大的图像。当涉及到大图像时,您可以使用 PascalVOC 格式导出它们,但 YOLO 格式不喜欢那么大的图像。缩小到 1000 x 1000 的尺寸效果很好。

只需删除位于C:\Users\your_account.labelImgSettings.pkl的文件.labelImgSettings.pkl,删除此文件并重新打开工具。