Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Автоматическая сегментация спутниковых снимков на базе модифицированной сверточной нейронной сети UNET

Введение

В статье описана методика для автоматической сегментации спутниковых снимков. Ручная сегментация это очень долгий и дорогой процесс. На ручную обработку одного снимка c размером 3360х3360 пикселов тратится более 1000 британских фунтов [1, 2]. Поэтому автоматизация этой задачи является актуальной задачей хотя бы с экономической точки зрения. Для решения задач распознания образов в данный момент наибольшую эффективность показывают нейронные сети различных архитектур [3, 4]. Новая архитектура нейронной сети, созданная специально для задачи сегментации спутниковых снимков, предложена в данной статье.

Описанная в статье методика проверена на реальных данных, представленных в он-лайн соревновании от Kaggle и DSTL (Defence Science and Technology Laboratory) [5]. Финальное решение, на базе данной методики заняло 2-ое место в общем зачёте конкурса.

Для решения задачи использовался язык программирования Python в связке с популярными модулями для работы с нейронными сетями Keras и Theano. Расчёты велись на нескольких видеокартах от NVIDIA GTX 980Ti 8 GB + 2* GTX Titan 12 GB, которые работали почти круглосуточно в течение двух месяцев.

Основные подходы к решению задачи:

  • 1) Для решения использовалась модифицированная нейронная сеть UNET [6], которая показала свою высокую эффективность в задачах сегментации биомедицинских изображений. Основные модификации структуры: увеличено число свёрточных слоёв. Добавлены слои BatchNormalization и Dropout (для уменьшения оверфиттинга).
  • 2) В качестве loss-функции использовался Jacсuard Index [7]. Для поиска оптимального решения производился поиск по сетке оптимальных параметров (grid search). Выбирались модели с максимальным счетом по результатам валидации.
  • 3) Всего требовалось разметить 10 различных типов объектов. Для каждого типа объектов была создана отдельная модель, которая отлаживалась независимо от остальных. Возможно, это приводило к некоторой потере информации о взаимодействии объектов, но эта проблема частично решалось финальным постпроцессингом (например, из полигонов машин, вычитались полигоны воды и. т.д.).
  • 4) Каждая модель это на самом деле набор из K различных весов, которые были получены из кросс валидации. Для большей части классов использовался 5 KFold. Разбиение на тренировочную часть и валидационную части проводилось по ID изображения (всего в тренировочном наборе было 25 больших изображений). Из-за малого размера тренировочной части требовалось разбить картинки наиболее оптимальным для обучения образом. Поэтому разбиение было выполнено руками один раз в самом начале по следующим принципам:

Разбиение было разным для разных классов

Классы были сильно несбалансированы и часть классов присутствовали только на некоторых картинках, поэтому картинки с присутствующим классом были равномерно распределены между всеми частями.

5) Для класса с маленькими объектами, например 10, использовался маленький вариант UNET, с входным размером 32х32 пикселя и отдельной Loss функцией с большим штрафом за False Positive, основано на Tverski index [8].

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Предметы
Агропромышленность
Банковское дело
БЖД
Бухучет и аудит
География
Документоведение
Естествознание
Журналистика
Информатика
История
Культурология
Литература
Логика
Логистика
Маркетинг
Математика, химия, физика
Медицина
Менеджмент
Недвижимость
Педагогика
Политология
Право
Психология
Религиоведение
Социология
Статистика
Страховое дело
Техника
Товароведение
Туризм
Философия
Финансы
Экология
Экономика
Этика и эстетика
Прочее