Я обучаю нейронную сеть, используя API обнаружения объектов Tensorflow для обнаружения автомобилей. Я использовал следующее видео на YouTube от senddex, чтобы изучить и выполнить этот процесс.
https://www.youtube.com/watch?v=srPndLNMMpk&t=65s
Также текстовая версия его видео:
https://pythonprogramming.net/testing-custom-object-detector-tensorflow-object-detection-api-tutorial/?completed=/training-custom-objects-tensorflow-object-detection-api-tutorial/
Часть 1-6 его серии.
Мои тренировочные данные имеют ~ 300 изображений. Тестовые данные ~ 20 изображений
Поскольку я использую концепцию трансферного обучения, я выбрал ssd_mobilenet_v1.model.
Tensorflow версия 1.10 (на процессоре) Python версия 3.6
Я тренировался до ~ 8000 шагов и потерял ~ 1.
Все идет гладко, пока я не попытаюсь экспортировать граф вывода.
Я запускаю следующую команду:
python3 export_inference_graph.py \
--input_type image_tensor \
--pipeline_config_path training/ssd_mobilenet_v1_pets.config \
--trained_checkpoint_prefix training/model.ckpt-7882 \
--output_directory car_inference_graph
После этой команды я получаю
Предупреждение:
WARNING:tensorflow:From
/home/mydir/Desktop/models/research/object_detection/exporter.py:280:
get_or_create_global_step (from
tensorflow.contrib.framework.python.ops.variables) is deprecated and will be
removed in a future version.
Instructions for updating:
Please switch to tf.train.get_or_create_global_step
WARNING:tensorflow:From
/home/mydir/Desktop/models/research/object_detection/exporter.py:434:
print_model_analysis (from tensorflow.contrib.tfprof.model_analyzer) is
deprecated and will be removed after 2018-01-01.
Instructions for updating:
Use `tf.profiler.profile(graph, run_meta, op_log, cmd, options)`. Build
`options` with `tf.profiler.ProfileOptionBuilder`. See README.md for details
106 ops no flops stats due to incomplete shapes.
Parsing Inputs...
Incomplete shape.
После этого есть список отчетов модели. (Могу опубликовать, если хотите)
У меня есть экспортированная папка car_inference_graph, в которой есть файлы контрольных точек и т. Д. внутри, как и должно быть.
Но когда я запускаю эту модель на изображениях автомобилей (тестовые изображения или новые изображения), она не обнаруживает автомобили. т.е. нет ограничивающего прямоугольника!
Я не уверен, повлияло ли это предупреждение на обнаружение, и если оно имело место, пожалуйста, помогите мне решить его!
Спасибо!
PS: чтобы помочь определить причину «отсутствия ограничивающего прямоугольника», стоит упомянуть, что на изображениях, на которых обучалась модель, даже не показаны ограничивающие рамки вокруг автомобилей. Это означает, что что-то не так с экспортом графа вывода или самой функцией ограничивающего прямоугольника.
Я только что узнал, что файл .pbtxt имеет имя: macncheese вместо имени: машина. Это вызвало проблему?