На этом этапе обучения вы выбрали предварительно обученную модель обнаружения объектов, адаптировали существующий набор данных или создали свой собственный и превратили его в файл TFRecord, изменили файл конфигурации модели и начали обучение. Однако теперь вам нужно сохранить модель и развернуть ее в своем проекте.

Сохранение модели контрольной точки (.ckpt) как файла .pb

Вернитесь в папку обнаружения объектов TensorFlow и скопируйте файл export_inference_graph.py в папку, содержащую файл конфигурации вашей модели.

python export_inference_graph.py --input_type image_tensor --pipeline_config_path ./rfcn_resnet101_coco.config --trained_checkpoint_prefix ./models/train/model.ckpt-5000 --output_directory ./fine_tuned_model

Это создаст новый каталог fine_tuned_model, внутри которого будет ваша модель с именем frozen_inference_graph.pb.

Использование модели в вашем проекте

Проект, над которым я работал на протяжении всего этого руководства, - это создание классификатора светофора. В Python я реализовал этот классификатор как класс. В части инициализации класса я создал сеанс TensorFlow, чтобы его не нужно было создавать каждый раз, когда требовалась классификация.

В этом классе я создал функцию, которая запускает классификацию изображения и возвращает ограничивающие прямоугольники, оценки и класс всего, что классифицируется на изображении.

На этом этапе вы захотите отфильтровать результаты ниже указанного порогового значения. Результаты автоматически сортируются от наивысшего к самому низкому, так что это довольно просто. С результатами вашей классификации, возвращенными функцией выше, готово!

Ниже вы можете увидеть мой классификатор светофора в действии.

Изначально я создал это руководство, потому что изо всех сил пытался найти информацию о том, как использовать определенные части API обнаружения объектов. Я надеюсь, что, прочитав это руководство, я помог вам быстрее запустить свой проект, чтобы вы могли уделять больше времени тому, что вам действительно интересно!