Ошибка преобразования набора данных в tfrecord для DeepLab v3 + - PullRequest
1 голос
/ 14 января 2020

Я пытаюсь преобразовать пользовательский набор данных в tfrecord для DeepLab v3 +, следуя этому руководству . Моя директория настроена следующим образом:

+ datasets
  + pascal_voc_seg/custom_dataset
    + VOCdevkit
      + VOC2012
        + JPEGImages
        + SegmentationClassRaw
        + ImageSets
           +Segmentation
    + tfrecord

Я также скачал набор данных Pascal VO C, и две структуры каталогов теперь идентичны. Когда я запускаю сценарий build_voc2012_data.py для набора данных PascalVO C следующим образом:

#from models/research/deeplab/dataset/pascal_voc_seg

python build_voc2012_data.py \
--image_folder="./VOCdevkit/VOC2012/JPEGImages" \
--semantic_segmentation_folder="./VOCdevkit/VOC2012/SegmentationClassRaw" \
--list_folder="./VOCdevkit/VOC2012/ImageSets/Segmentation" \
--image_format="jpg" \
--output_dir="./tfrecord"

... все работает нормально, набор данных преобразуется в файлы tfrecord с отображением индикатора выполнения. Однако, когда я запускаю тот же сценарий из своего каталога пользовательских наборов данных, возникает следующая ошибка:

>> Converting image 1/164 shard 0Traceback (most recent call last):
  File "build_voc2012_data.py", line 146, in <module>
    tf.compat.v1.app.run()
  File "/home/delanyn/.local/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 40, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/home/delanyn/.local/lib/python2.7/site-packages/absl/app.py", line 299, in run
    _run_main(main, args)
  File "/home/delanyn/.local/lib/python2.7/site-packages/absl/app.py", line 250, in _run_main
    sys.exit(main(argv))
  File "build_voc2012_data.py", line 142, in main
    _convert_dataset(dataset_split)
  File "build_voc2012_data.py", line 121, in _convert_dataset
    image_data = tf.io.gfile.GFile(image_filename, 'rb').read()
  File "/home/delanyn/.local/lib/python2.7/site-packages/tensorflow/python/lib/io/file_io.py", line 122, in read
    self._preread_check()
  File "/home/delanyn/.local/lib/python2.7/site-packages/tensorflow/python/lib/io/file_io.py", line 84, in _preread_check
    compat.as_bytes(self.__name), 1024 * 512)
.jpg; No such file or directoryors_impl.NotFoundError: ./VOCdevkit/VOC2012/JPEGImages/2020_0

Чего мне здесь не хватает? Мои изображения в формате JPEG с такими же размерами, что и изображения Pascal VO C. Маски сегментации также имеют ту же цветовую карту, и я заранее использую сценарий удаления цветовой карты.

1 Ответ

0 голосов
/ 01 апреля 2020

Что касается сообщения об ошибке, я могу только сказать, что запись в файле train.txt или val.txt в папке: pascal_voc_dataset / VOCdevkit / VOC2012 / ImageSets / Segmentation не совпадает ни с чем (изображением) в JPEG папка: pascal_voc_dataset / VOCdevkit / VOC2012 / JPEGImages.

...