| Классификация день-ночь

Если у вас есть тонны данных изображений для обучения модели, но вы все еще не можете понять, почему ваша модель плохо работает на некоторых изображениях (в нашем случае - на изображениях в ночное время), то определенно пора выполнить EDA.

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

Подготовка набора данных

Чтобы обучить нашу модель, нам сначала нужно большое количество дневных / ночных изображений. Теперь будьте предельно ясны: вы должны выбрать подходящие изображения в соответствии с тем, к какому классу принадлежит ваш набор данных.

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

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

  • День
  • Ночь

Посетите https://yandex.com/images/search и выполните поиск по таким запросам, как

  • Дневное время трафика в Бангалоре

  • Бангалор пробки в ночное время

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

Давайте посмотрим, как мы можем очистить эти изображения

Нам нужен какой-то скрипт для очистки URL-адресов всех этих изображений, чтобы мы могли их загрузить, не волнуйтесь, я вас об этом расскажу.

На странице поиска изображений Яндекса откройте консоль Javascript с помощью ctrl + shift + j, вставьте приведенный ниже сценарий в окно консоли и нажмите клавишу Enter.

Ура! вы успешно собрали 1500 ночных изображений. Вы можете увидеть ссылки в загруженном файле urls.txt.

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

Теперь, когда мы собрали такое огромное количество ссылок, пришло время скачать изображения.

Используйте приведенный ниже код для чтения ссылок из файла urls.txt и загрузки изображений в каталог.

На этом подготовка нашего набора данных завершена.

Модельное обучение

git clone https://github.com/imneonizer/day-night-classification.git

Прежде чем мы продолжим, убедитесь, что вы организовали загруженные изображения в следующем формате:

├── images
│   ├── day
│   │   ├── 0001.jpg
│   │   ├── 0002.jpg
│   │   └── 0003.jpg
│   │   └── xxxx.jpg
│   └── night
│       ├── 0001.jpg
│       ├── 0002.jpg
│       └── 0003.jpg
│       └── xxxx.jpg

Следуйте инструкциям из репозитория git, чтобы настроить среду обучения.

$ cd day-night-classification
$ python train_model.py --dataset images --model model/day_night.hd5

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

Тестирование

python test_model.py --model model/day_night.hd5 --image test/n2.jpg

python test_model.py --model model/day_night.hd5 --image test/d1.jpg

Спасибо за чтение, мы будем благодарны за хлопок

Author: Nitin Rai

Ссылка: https://www.pyimagesearch.com/2017/12/11/image-classification-with-keras-and-deep-learning/