Предлагаем вам совершить экскурсию по нашему долгому путешествию по городскому мониторингу…

  1. Что мы пытаемся сделать? Представьте, что вы хотите оценить численность населения в неизвестной местности…

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

Мы предложили автоматизированный инструмент на основе нейронной сети для оценки всех параметров. Сегментация и классификация зданий - это тема отдельного разговора, поэтому здесь мы постараемся объяснить, как мы измеряем высоту.

Существует множество вариантов, которые давно доступны для спутниковых данных - радиолокационные изображения могут напрямую отображать высоту объекта, а стереопары (пары изображений, снятых под разными углами в известных условиях) могут отображать достаточно, чтобы увидеть здание как трехмерное. модель, прямо как в 3D-фильме.

Однако мы всегда ставим перед собой задачу выполнить ту же задачу с меньшим (или более дешевым) объемом данных. Возникает вопрос: можем ли мы определить высоту здания на одном спутниковом снимке?

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

H = S* tan(h)

где S - длина тени, а h - угол наклона солнца, который известен на основе времени съемки изображения.

Тогда проблема решена? Еще нет. Помимо того, что некоторые участки вообще не наносятся на карту, оказывается, что не все спутниковые снимки сделаны прямо сверху (в надире), но многие из них сделаны на склоне (вне надира). Часто это необходимо для захвата интересующего объекта, но это затрудняет обнаружение объектов и их положения. В соревновании 4 раунда Spacenet участники столкнулись с такими проблемами и изо всех сил пытались достичь высокой точности сегментации зоны покрытия [3].

  1. В этом случае можно обновить геометрию сцены:

К счастью, в большинстве случаев углы - высоту и азимут солнца, а также высоту и азимут спутника - можно получить у поставщиков изображений. И самое приятное то, что если мы получим крышу, стену и тень здания, мы сможем восстановить все 3D-параметры, включая высоту и площадь основания.

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

Сегментация изображения крыши, тени и контура, а также сегментация зданий - тема другой статьи. Фактически, этот подход в целом широко описан как в науке, так и в СМИ (см. [1, 2], и мы также поделимся своим опытом.

Хорошо, теперь нам нужно измерить размеры тени и стены. Но как? - прямое измерение даст много выбросов, потому что некоторые тени соединяются друг с другом, и стена часто частично закрывается. Давайте смоделируем здание в 3D! Это также естественным образом решает все геометрические проблемы. Моделирование также не является нашим изобретением, но мы включили в установку часть вне надира.

Мы начинаем с положения крыши, а затем пытаемся угадать: если здание имеет заданную высоту, насколько хорошо ему подходят тень и стена? Под подгонкой мы подразумеваем, что мы вычисляем IoU между результатами сегментации и результатами моделирования и берем высоту, которая дает лучший результат (усредненный для стены и тени).

Давайте попробуем наш метод. Нам удалось получить тестовый набор данных с помощью людей-картографов, которые нанесли на карту данные изображения (WorldView-2) и проверили высоту здания с помощью режима просмотра улиц.

Ведь средняя абсолютная погрешность для нашего метода чуть больше 3 метров, что означает погрешность + -1 этажа в обычных многоквартирных домах. Результаты кажутся хорошими, но их очень сложно сравнивать с другими, так как наборы данных разные. Поэтому мы поделимся своим, как только научная статья будет опубликована! Итак, используйте его, надстройте и сравните результаты. Чем больше мы знаем - тем легче должна быть жизнь.

Набор данных для проверки высоты зданий можно найти среди наших открытых наборов данных: https://github.com/aeronetlab/open-datasets - подписывайтесь на нас на Github.

Ссылки

  1. Https://medium.com/picterra/how-to-make-a-building-footprint-detector-768045a15bcc
  2. Https://medium.com/the-downlinq/2nd-spacenet-competition-winners-code-release-c7473eea7c11
  3. Https://towardsdatascience.com/towards-accelerating-disaster-response-with-automated-analysis-of-overhead-imagery-18c65731eaaf