Работа выполнена Смрити Бахугуна и Расика Джоши.

В своем предыдущем посте я писал, как мы используем модель U-Net для определения крыш на спутниковых снимках с низким разрешением. Я также написал, как мы используем сообщество энтузиастов машинного обучения для создания решения. В этой статье я поделюсь результатами другой модели, а именно Masked R-CNN. Если вы хотите узнать больше о проблеме, которую мы решаем, прочтите, как Машинное обучение может открыть новую эру в секторе чистой энергии.

Сложность поставленной задачи увеличивается из-за качества спутниковых изображений из Индии (и большей части развивающегося мира) с низким разрешением. Подобные решения, такие как Google Sunroof project, работают только с изображениями с высоким разрешением и непригодны для использования в большинстве развивающихся стран.

Маска R-CNN была создана исследовательской группой Facebook AI. Принцип работы Mask R-CNN довольно прост. Исследователи объединили две ранее существовавшие модели вместе и поигрались с линейной алгеброй. Модель можно разделить на две части - сеть предложений регионов (RPN) и бинарный классификатор масок. Шаг первый - получить набор ограничивающих рамок, которые, возможно, содержат релевантный объект. Второй этап - раскрашивание коробок.

Наша цель использования этой модели - сегментировать или отделить каждый экземпляр крыши на изображении.

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

В качестве отправной точки для нашей модели мы использовали веса из сети Mask R-CNN, обученной на наборе данных «кокос», который изначально был обучен распознавать 80 классов, но не имел крыши. Resnet 101 использовался в качестве базовой архитектуры. Мы начали с обучения нашей модели слоям «голов», то есть RPN, классификатору и маске голов сети; поскольку для обучения всей сети потребуется много данных, а поскольку это была предварительно обученная модель для множества различных классов, это было бы хорошим началом. Затем, чтобы увидеть разницу в прогнозировании, мы перешли к обучению до этапов 4 и 5 архитектуры Resnet 101.

Также мы пробовали разные варианты. Размер изображения был изменен с 1024X1024 на 320X320, поскольку размер нашего обучающего изображения составляет 300X300, и увеличение его до 1024 не представлялось хорошей идеей.

А ниже приведены результаты нескольких входных изображений.

Мы сравнили результаты еще с 20 крышами домов, и наши результаты показывают, что зачастую лучше всего работает модель 4.

Затем мы попытались изменить минимальный порог достоверности обнаружения с 0,9 до 0,7. Области интереса (ROI) ниже этого значения будут пропущены. Это было сделано потому, что для обнаружения крыш значение 0,9 казалось очень высоким порогом, когда его можно просто уменьшить, чтобы предсказать любую область как крышу, поскольку крыши не являются сложными, четко определенными и очень специфическими областями; поэтому следует рассмотреть любой регион, который может быть хорошим кандидатом на крышу. При 0,7 у нас было намного больше областей, но он также представлял нам множество перекрывающихся областей в виде крыш, тогда как при значении 0,9 у нас было несколько больших капель, принимающих все смежные крыши как одну область.

Помимо этого, мы пытались обучить модель, изменив оптимизатор со стохастического градиентного спуска (SGD) на оптимизатор Адама.

Вот изображения результатов для моделей, обученных с помощью SGD и оптимизатора Adam. Обучение проводится с уверенностью 70% и 90%. Тестирование проводится с достоверностью 70% и 90% для каждой из обученных моделей.

Наши выводы:

1. Обученные модели Adam optimizer не могут предсказать все экземпляры, и они не могут различать соседние крыши по сравнению с моделями, обученными SGD.

2. Модели, обученные SGD, предсказывают более резкие маски, чем модели, обученные Адамом. Это показывает, что SGD лучше подходит для наших моделей, и мы продолжим его работу.

О вариациях SGD:

1. Обучение модели с достоверностью 70% увеличивает количество масок, так как она была обучена также рассматривать крыши с низкой вероятностью, что приводит к перекрытию масок. В то время как тренировка с 90% дает более чистые и меньшие маски. Так что тренировка с 90% кажется лучшим вариантом.

2. Теперь, чтобы предсказать маски с достоверностью 70% или с достоверностью 90%? 90% является слишком точным и может удалить другие параметры, тогда как 70% будут включать их, как показано на изображениях 4 и 7. Таким образом, после обучения большему количеству изображений (в настоящее время обучено более 95 изображений) мы сможем увидеть, какое из них может использоваться наконец.

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

Наконец, мы также хотели бы поблагодарить Пола и Пиюша за создание обучающих данных. Если кто-то хочет помочь нам в дальнейшем, присоединяйтесь к нашему репозиторию git или обращайтесь по адресу [email protected].