Генерация плана этажа с поддержкой GAN

Станислас Шайю, архитектор и специалист по данным @ Spacemaker AI

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

Планировка квартиры - сложная, но фундаментальная задача для любого архитектора. Знание того, как размещать комнаты, определять их размер, находить соответствующие смежности между ними, при этом определение соответствующих типологий - ключевые проблемы, которые любой разработчик принимает во внимание при разработке поэтажных планов. В этой статье мы предлагаем продемонстрировать возможности, предлагаемые моделями генеративных состязательных нейронных сетей (GAN), и их способность создавать соответствующие планы этажей. Короче говоря, мы обращаемся к моделям GAN, а точнее к Pix2Pix, чтобы помочь нам разработать планы этажей жилья с учетом набора начальных условий и ограничений.

I. AI и GAN

Генеративные состязательные нейронные сети недавно предоставили доказательства творческой способности моделей искусственного интеллекта. Как и любая модель машинного обучения, GAN изучают статистически значимые явления среди представленных им данных. Однако их структура представляет собой прорыв: сети GAN, состоящие из двух ключевых моделей, Генератора и Дискриминатора, используют цикл обратной связи между обеими моделями, чтобы улучшить их способность генерировать релевантные данные. изображений. Дискриминатор обучен распознавать изображения из набора данных. Правильно обученная, эта модель способна отличить реальный пример, взятый из набора данных, от «поддельного» изображения, чужого для набора данных. Генератор, однако, обучен создавать изображения, похожие на изображения из того же набора данных. Когда Генератор создает изображения, Дискриминатор предоставляет ему обратную связь. В ответ Генератор адаптируется для создания еще более реалистичных изображений. Благодаря этому циклу обратной связи GAN постепенно наращивает свою способность создавать релевантные синтетические изображения с учетом явлений, обнаруженных среди наблюдаемых данных.

Представление и обучение

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

Для иллюстрации ниже представлена ​​типичная обучающая последовательность (Рисунок 3): эта последовательность, реализованная в течение полутора дней обучения, показывает, как одна из наших моделей GAN постепенно учится компоновке комнаты и окна для жилого помещения.

II. Обработка данных и обучение

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

Ниже мы показываем изображения, взятые из одного из наших обучающих наборов (рисунок 4).

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

III. Поколение

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

Мы выделили 3 основных варианта использования (Рисунок 5), когда дело доходит до проектирования планов этажей жилых домов, соответствующих различным ограничениям типа.

A) Создание бесплатного плана касается простых случаев, когда пользователь должен только указать:

  • [1] площадь многоквартирного дома.
  • [2] расположение проемов фасада

Б) Специфичная для программы генерация касается случаев, когда дизайн будет определяться размещением определенного типа комнаты. В частности, пользователь должен указать:

  • [1] площадь многоквартирного дома.
  • [2] расположение проемов фасада
  • [3] положение данной комнаты в пределах квартиры

C) Конструктивно генерация касается случаев, когда конструкция будет определяться размещением несущих элементов, таких как стены и колонны. Здесь пользователь должен указать:

  • [1] занимаемая площадь многоквартирного дома.
  • [2] расположение проемов фасада
  • [3] положение несущих стен в пространстве

A. Создание бесплатного плана

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

Ниже, мы отображаем некоторые типичные результаты (рисунок 6).

Б. Создание плана для конкретной программы

В этом подходе мы предполагаем, что генерация в первую очередь обусловлена ​​размещением конкретной комнаты. Например, для данной планировки квартиры дизайнер может захотеть определить, где будут располагаться спальни, и предоставит машине ответственность за размещение остальных комнат. Мы поддерживаем эту логику проектирования, позволяя пользователям вводить размер и положение спальни во входных данных (зеленый участок), а также площадь квартиры и проемы фасада. В результате модель может учитывать это первоначальное размещение, окружая спальни «обслуживающими» пространствами (другими комнатами, которые должны присутствовать в программе).

Ниже мы отображаем некоторые типичные результаты (рисунок 7).

C. Создание плана для конкретной структуры

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

Ниже мы отображаем некоторые типичные результаты (рисунок 8).

IV. Векторизация

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

Порог

Сначала мы устанавливаем порог исходного вывода GAN, чтобы выделить границы каждой комнаты, отслеживая при этом их соответствующую программу. Этого порогового значения можно легко добиться, используя цвета помещения и выбор контура в OpenCV. Результирующий контур, однако, получается неаккуратным и неточным, но соблюдаются тип программы и положение каждой из них в пространстве.

Кластеризация

Затем мы восстанавливаем ортогональность полилинии каждой комнаты, объединяя контуры вместе с использованием алгоритма кластеризации X-Mean. Кластеризация X-среднего просто проверяет распределение точек вдоль в направлениях X и Y и неконтролируемым образом создает кластеры из этих точек. Затем каждый кластер образует линию сетки, к которой будет привязана любая соседняя точка.

Результаты

Ниже мы отображаем результаты нашего конвейера векторизации (Рисунок 10). Если при этом сохранить форму плана этажа и относительное расположение комнат, некоторые мелкие детали могут быть потеряны.

V. Заключение

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

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