2

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

作为说明,我按照教程安装了 Labelimg。

这是我创建错误的方式:

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

conda activate labelimg

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

cd D:\labelimg

  1. 打开 python 脚本,然后是图像目录的位置,之前创建的带有标签名称的文本文件 (weed),以及之前创建的带有类名的文本文件 (weed):

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训练样本时程序不崩溃?除了重新安装程序之外,我已经完成了所有工作,这对我来说没有意义,因为我刚刚下载了它。

4

2 回答 2

2

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

于 2021-01-28T09:12:42.933 回答
1

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

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

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

于 2020-09-17T17:13:02.263 回答