【问题标题】:object_detector.DataLoader.from_pascal_voc returning empty dataobject_detector.DataLoader.from_pascal_voc 返回空数据
【发布时间】:2022-01-12 14:00:41
【问题描述】:

train_data = object_detector.DataLoader.from_pascal_voc( 'images_jpg_splitted/train/img', 'images_jpg_splitted/train/xml', ['蝙蝠'] )

val_data = object_detector.DataLoader.from_pascal_voc( 'images_jpg_splitted/test/img', 'images_jpg_splitted/test/xml', ['蝙蝠'] )

我正在尝试从图像中检测蝙蝠。我已经使用 labelImg 标记了数据。 尝试从 tflite_model_maker 加载数据时,object_detector.DataLoader.from_pascal_voc 返回空数据。我试过不分割图片和XML文件,还是不行。

【问题讨论】:

  • 您找到解决方案了吗?
  • 是的。我会尽量自己回答。

标签: python tensorflow object-detection


【解决方案1】:

错误出现在图像文件中。支持的文件只有 jpeg,但虽然扩展名是 jpeg,但它无法将图像识别为 jpeg,可能是因为它是 png 文件并且扩展名已重命名。因此,我使用 PIL 将它们转换为 jpeg。

import PIL.Image
import glob
import os

if not "converted" in os.listdir():
    os.mkdir("converted")

lst_imgs = [i for i in glob.glob("*.jpeg")]
print(lst_imgs)
for i in lst_imgs:
    img = PIL.Image.open(i)
    img = img.convert("RGB")
    img.save("converted\\"+i, "JPEG")


print("Done.")
os.startfile("converted")

【讨论】:

    【解决方案2】:

    你能把代码写成下面的样式吗?

    dataloader = object_detector.DataLoader.from_pascal_voc(image_dir, annotations_dir, label_map={1: "person", 2: "notperson"})

    可能是语法问题。

    【讨论】:

    • 试过了还是一样
    猜你喜欢
    • 1970-01-01
    • 2019-08-06
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多