| Классификация день-ночь
Если у вас есть тонны данных изображений для обучения модели, но вы все еще не можете понять, почему ваша модель плохо работает на некоторых изображениях (в нашем случае - на изображениях в ночное время), то определенно пора выполнить 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/