API обнаружения объектов tenorflow: генерировать TF-запись из набора пользовательских данных - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь переобучить API обнаружения объектов tenorflow с моими собственными данными, я пометил свое изображение с labelImg, но когда я использую сценарий create_pascal_tf_record.py , который включен в tenorflow / models / research, я получил некоторые ошибки, и я действительно не знаю, почему это происходит

python object_detection/dataset_tools/create_pascal_tf_record.py --data_dir=/home/jim/Documents/tfAPI/workspace/training_cabbage/images/train/ --label_map_path=/home/jim/Documents/tfAPI/workspace/training_cabbage/annotations/label_map.pbtxt --output_path=/home/jim/Desktop/cabbage_pascal.record --set=train --annotations_dir=/home/jim/Documents/tfAPI/workspace/training_cabbage/images/train/ --year=merged
Traceback (most recent call last):
  File "object_detection/dataset_tools/create_pascal_tf_record.py", line 185, in <module>
    tf.app.run()
  File "/home/jim/.virtualenvs/enrouteDeepDroneTF/local/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 125, in run
    _sys.exit(main(argv))
  File "object_detection/dataset_tools/create_pascal_tf_record.py", line 167, in main
    examples_list = dataset_util.read_examples_list(examples_path)
  File "/home/jim/Documents/tfAPI/models/research/object_detection/utils/dataset_util.py", line 59, in read_examples_list
    lines = fid.readlines()
  File "/home/jim/.virtualenvs/enrouteDeepDroneTF/local/lib/python2.7/site-packages/tensorflow/python/lib/io/file_io.py", line 188, in readlines
    self._preread_check()
  File "/home/jim/.virtualenvs/enrouteDeepDroneTF/local/lib/python2.7/site-packages/tensorflow/python/lib/io/file_io.py", line 85, in _preread_check
    compat.as_bytes(self.__name), 1024 * 512, status)
  File "/home/jim/.virtualenvs/enrouteDeepDroneTF/local/lib/python2.7/site-packages/tensorflow/python/framework/errors_impl.py", line 528, in __exit__
    c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.NotFoundError: /home/jim/Documents/tfAPI/workspace/training_cabbage/images/train/VOC2007/ImageSets/Main/aeroplane_train.txt; No such file or directory

папка train содержит xml и jpg
папка аннотации содержит мой labelmap.pbtxt для моего пользовательского класса
иЯ хочу опубликовать файл записи TF на рабочем столе

. Кажется, он не может найти файл в моей папке с изображениями и аннотациями, но я не знаю, почему. Если у кого-то есть идея, заранее спасибо

1 Ответ

0 голосов
/ 05 февраля 2019

Эта ошибка возникает из-за того, что вы используете код для POSCAL VOC, который требует определенной структуры папок данных.По сути, вам нужно скачать и распаковать VOCdevkit, чтобы скрипт работал.Как указал пользователь phd, вам нужен файл VOC2007/ImageSets/Main/aeroplane_train.txt.

. Я рекомендую вам написать собственный скрипт для создания tfrecords, это не сложно.Вам нужны всего два ключевых компонента:

  • Цикл по вашим данным, который считывает изображения и аннотации
  • Функция, которая кодирует данные в tf.train.Example.Для этого вы можете в значительной степени повторно использовать dict_to_tf_example

Внутри цикла, создав tf_example, передав его TFRecordWriter:

writer.write(tf_example.SerializeToString())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...