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

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

Набор данных

Для обучения нашей модели мы использовали изображения из Wildfire Detection Image Data на Kaggle. Этот набор данных включает 1900 файлов .jpg размером 250x250 пикселей, некоторые из которых показаны на рисунке 1:

Чтобы классифицировать эти изображения, мы разработали две классификационные метки: fire и no_fire и создали файл .csv, чтобы связать их с каждым файлом изображения для загрузки данных с помощью PerceptiLabs « Мастер данных . Ниже приведен частичный пример того, как выглядит файл .csv:

Сводка модели

Для нашей модели мы построили модель CNN, состоящую из следующих Компонентов:

Компонент 0: масштабирование, 63 x 63, вход: входной компонент, выход: компонент 6

Компонент 1: Свертка, Активация = ReLU, Карты функций = 8, Patch_size = 4, Batch_Norm = Да, Вход: Входной компонент, Выходы: Компонент 2 и Компонент 4

Компонент 2: Свертка, Активация = ReLU, Карты характеристик = 16, Вход: Компонент 1, Выход: Компонент 3

Компонент 3: масштабирование, 125 x 125, вход: компонент 2, выход: компонент 4, компонент 4: слияние, операция = конкатенация, -1

Входы: Компонент 3 и Компонент 1, Выход: Компонент 5, Компонент 5: Свертка, Активация = ReLU, Карты функций = 32, Размер патча = 3, Вход: Компонент 4, Выход: Компонент 6, Компонент 6: Слияние, Операция = Конкатенация , -1, входы: компонент 5 и компонент 0, выход: компонент 7

Компонент 7: свертка, активация = ReLU, карты функций = 64, размер патча = 3, вход: компонент 6, выход: компонент 8

Компонент 8: плотный, активация = LeakyReLU, нейроны = 512, вход: компонент 7, выход: компонент 9

Компонент 9: плотный, активация = Softmax, нейроны = 2, вход: компонент 8, выход: выход

Модель, показанная на Рисунке 2 ниже, по сути, представляет собой небольшой вариант U-Net, с теми же преимуществами от пропуска соединений, что и у стандартной U-Net. В этой архитектуре мы сворачиваем и объединяем изображение по сужающемуся пути в карты функций, используя пропускаемые соединения для передачи информации по расширяющему пути. Затем расширенный путь объединяет информацию об объектах вместе с пространственной информацией перед использованием полносвязных слоев (плотные компоненты) для двоичной классификации на огонь и no_fire.

На рисунке 2 показана топология модели в PerceptiLabs:

Обучение и результаты

Мы обучили модель партиями по 32 в трех эпохах, используя оптимизатор ADAM, скорость обучения 0,001 и функцию потери кросс-энтропии. При среднем времени обучения около 269,73 секунды, мы достигли точности обучения 97,82% и точности проверки 96,05%:

На рисунке 3 показано представление статистики PerceptiLabs:

На рисунках 4 и 5 ниже показаны точность и потери по эпохам:

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

Матрица неточности на рисунке 6 показывает два очень похожих оттенка синего, что указывает на то, что модель почти всегда корректно проверяет все образцы. Таблица показателей ярлыков подтверждает это, показывая нормализованные значения, составляющие немногим более 97% для следующих элементов: Категориальная точность (точность для каждой категории, усредненная по всем из них), Точность (точность положительных прогнозов) и Напоминание (процент найденных положительных результатов (т. Е. Не классифицированных по ошибке как отрицательные, а не положительные) и 100% для Наивысшей K категориальной точности (частота правильной категории среди K лучших прогнозируемых категорий).

Вертикальные приложения

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

Попробуйте сами!

Мы сделали все, что вам нужно, чтобы попробовать это сами, доступно на GitHub.

Используя PerceptiLabs, вы можете быстро загрузить эти данные с помощью Мастера данных и построить подобную модель, используя указанные выше настройки, и все это без написания кода. Или используйте файл model.json, который мы добавили, чтобы напрямую импортировать нашу модель в PerceptiLabs (требуется PerceptiLabs 0.12.0 или выше). В любом случае, вы будете готовы к работе в кратчайшие сроки!

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

Резюме

Этот вариант использования является примером того, как распознавание изображений может использоваться для обнаружения опасных условий окружающей среды. Если вы хотите построить подобную модель глубокого обучения, запустите PerceptiLabs и посмотрите репозиторий, который мы создали для этого варианта использования на GitHub. А для другого случая использования в окружающей среде обязательно ознакомьтесь с Автоматизированным анализом погоды с использованием распознавания изображений.