Обучение Inception-v3 распознаванию собственных изображений

В моем предыдущем посте мы увидели, как выполнять распознавание изображений с помощью TensorFlow с использованием API Python на CPU без какого-либо обучения. Мы использовали предобученную модель Inception-v3, которую Google уже обучил на тысяче классов, но что, если мы хотим сделать то же самое, но с нашими собственными изображениями?

Перевод статьи Train Inception with Custom Images on CPU, автор — Sagar Sharma. Ссылка на оригинал — в подвале статьи.

  • Мы будем использовать transfer learning, который поможет нам переобучить финальный слой уже обученной модели Inception-v3 новым категориям с нуля.
  • Это займет около 30 минут на ноутбуке и не требует каких-либо графических процессоров.
  • Мы будем обучать модель на открытой базе данных цветов, которая есть в TensorFlow и бесплатна для скачивания.

Прежде чем мы начнем, давайте сделаем проверку на случайном изображении одуванчика на моем компьютере.

одуванчик
dandelion-in-seed.jpg

А вот результат:

результат распознавания изображений Tensorflow

Мы будем использовать Python 3 и TensorFlow 1.4.

Если у вас установлена не последняя версия TensorFlow, используйте следующую команду для обновления:

pip install --upgrade tensorflow

Обучение на датасете произведем за 4 этапа.

1. Скачайте tensorflow-for-poets-2

Создайте новую папку Flowers_Tensorflow. Теперь откройте командную строку и введите:

git clone https://github.com/googlecodelabs/tensorflow-for-poets-2

цветы tensorflow

Это позволит скачать папку «tenorflow-for-poets-2» из репозитория TensorFlow в папку Flower_Tensorflow.

Эта папка содержит такие файлы, как скрипты, tf_folder и т. д.

2. Скачайте датасет

Перейдите по ссылке и загрузите данные цветов. Затем извлеките папку «flower_photos» из только что загруженного файла .tgz и скопируйте ее в папку tf_files. Эта папка содержит 5 категорий: ромашка, одуванчик, роза, подсолнух, тюльпаны и файл LICENSE.txt.

3. Переобучите модель

Откройте командную строку в папке tenorsflow-for-poets-2 и введите

python scripts/retrain.py --output_graph=tf_files/retrained_graph.pb --output_labels=tf_files/retrained_labels.txt --image_dir=tf_files/flower_photos

tensorflow image recognition training

Примечание: это одна строка. Просто скопируйте всю команду и вставьте ее в командную строку.

После нажатия Enter программа начнет создавать файлы .txt в папке C:/tmp/bottleneck/rose и т. д. Она создаст около 7300 файлов bottleneck.txt с и выдаст примерно такой результат:

bottleneck training

После этого она начнет обучение и выполнит около 4000 итераций:

python image recognition tensorflow

Пока ваш компьютер обучается на новом датасете цветов, я объясню смысл каждой части введенной команды.

Вся команда может быть разделена на 4 части:

Вызвать/запустить скрипт retrain.py.

python scripts/retrain.py

Создать новый файл графов в папке tf_files (после завершения обучения).

--output_graph=tf_files/retrained_graph.pb

Создать новый файл меток в папке tf_files (после завершения обучения).

--output_labels=tf_files/retrained_labels.txt

Указать путь к датасету цветов.

--image_dir=tf_files/flower_photos

Примечание: вы можете добавить/изменить аргументы в этой части команды.

Изменить модель, отличную от Inception-v3, «Mobilenet Models»

--architecture mobilenet_1.0_224

Tensorboard

--summaries_dir=tf_files/training_summaries/${write the architecture here}

Изменение расположения Bottleneck

--bottleneck_dir=tf_files/bottlenecks

Изменение количества итераций

--how_many_training_steps=500

4. Проверка переобученной модели

Чтобы проверить модель, просто скачайте любое изображение и скопируйте его в папку «tenorflow-for-poets-2», а затем введите (image.png — это имя файла):

python scripts/label_image.py --image image.png

Однако может вылезти ошибка:

ошибка распознавания

Чтобы ее устранить, откройте файл label_image.py в папке scripts.

Перейдите к 74-й строке и измените значения или перейдите по ссылке.

Измените эти значения:

input_height = 224 input_width = 224 input_mean = 128 input_std = 128 input_layer = "input"

На эти:

input_height = 299 input_width = 299 input_mean = 0 input_std = 255 input_layer = "Mul"

Теперь, когда мы внесли изменения, давайте выполним проверку на других цветах.

Маргаритка

распознавание изображений Tensorflow
daisy.jpg

обучение распознаванию изображений цветов tensorflow

Роза

roses
keep-roses-alive-hero.jpg

tensorflow image recognition

Подсолнух

подсолнух распознавание цветов
sunflower-450231_960_720.jpg0

процесс обучения

Тюльпан

тюльпан
pink-tulips-4.jpg

tensorflow распознавание фотографий

Думаю, можно закончить.

Если вы хотите провести такой же эксперимент на мобильной платформе, посмотрите этот пост. Но сначала попробуйте сделать описанное выше!

Подписаться
Уведомить о
guest

0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии

gogpt