Стажировка по проекту
Создание ИИ-дизайнера по подбору пробковых покрытий для помещений
Компания: «Галерея пробки»

Суть проекта
Задача
цель
входные данные
Требуется выполнить пилотную разработку системы сегментации пола, стен и потолка на фотографиях помещений (комнат, коридоров, лоджий и т.д.) с последующей заменой фоновых текстур в сегментированных областях на текстуры отделочных материалов из ассортимента заказчика для целей визуализации возможного дизайна ремонтируемого объекта
Разрабатываемое решение предназначено для визуализации клиентам заказчика предполагаемого нового облика их жилых помещений после ремонта с использованием отделочных покрытий из ассортимента заказчика, что облегчит их выбор и принятие решения о приобретении
Изображения текстур пробковых и других отделочных покрытий заказчика
выходные данные
Обработанные изображения апартаментов (жилых помещений, комнат квартир) с замененными текстурами отделочных материалов на заданных поверхностях (пол, стены либо потолок)
Участники
1 команды проекта
  • Резер Артем
    Тимлид проекта
    Руководитель проекта, участие в разработке, координация работы команды, постановка задач, контроль качество и сроков их выполнения
  • Аленникова Елена
    Помощник тимлида
    • помощник тимлида
    • содействие тимлиду по общим вопросам
  • Кочергин Иван
    Системный администратор стаж 10 лет. Образование высшее техническое
    • разработка, отладка и тестирование веб-приложения на базе библиотеки Streamlitl, интеграция в приложение всех разработанных командой проекта backend модулей;
    • настройка и сборка среды для работы выбранной для проекта предобученной модели Uppernet Beit для сегментации интерьеров апартаментов (помещений, жилых комнат) и модулей приложения;
    • разработка frontend части веб-приложения, включающего весь набор необходимых элементов интерфейса - загрузка изображений, выбор текстур для замены, набор необходимых настроек и визуализация результатов, продвинутые возможности визуализации результатов нейросетевой обработки изображений, удобные настройки и реализация интерактивного ввода опорных точек на изображении с помощью мыши с использованием средств библиотеки Streamlitl;
    • разработка продвинутого алгоритма переноса теней объектов интерьера с оригинального изображения на замененную по маске сегментации новую текстуру поверхности пола, стен либо потолка и его интеграция в bakend модуль веб-приложения;
    • настройка среды miniconda и конфигурирование nginx для функционирования веб-приложения на сервере
  • Бойцов Антон
    Главный инженерный специалист по продажам, установке, обслуживанию и ремонту неэлектрических дозирующих насосов
    • разработка формата хранения параметров текстур с применением .json файла с параметрами для каждой текстуры и скрипта для считывания этих параметров в в веб-приложении;
    • разработка алгоритма заполнения полотна соответствующего реальными размерами поверхности (пола, стен или потолка) изображениями с текстурой заказчика (фрагментами текстуры) на базе библиотек NumPy, OpenCV и имеющего следующие возможности: произвольной ориентации фрагментов текстуры, горизонтальное смещение фрагментов с регулируемым шагом, выкладка фрагментов текстуры «елочкой» с выбором необходимого количества фрагментов, заполнение полотна с использованием нескольких фрагментов текстуры с различным рисунком;
    • разработка продвинутого алгоритма переноса текстуры с полотна на маску сегментации поверхности (пола, потолка, стен) с учетом перспективы сегментированной поверхности на изображении апартаментов, разработанный алгоритм использует гомографию либо афинные преобразования в зависимости от количества заданных опорных точек на изображении и включает следующие шаги:
    1) построение развертки комнаты по заданным опорным точкам,
    2) перенос на развертку угловых точек исходного изображения гомографией либо афинным преобразованием в зависимости от того 3 или 4 угловых точек имеются на обрабатываемом изображении,
    3) создание полотен текстур поверхностей пола, стен либо потолка в соответствии с заданными размерами комнаты,
    4) пересчет развертки комнаты из реальных размеров в разрешение полотна текстуры,
    5) центрирование развертки на полотне, её смещение и поворот по запросу пользователя,
    6) перенос подготовленных на элементах развертки изображения текстур пола, стен либо потолка на маски сегментации при помощи гомографии либо аффинного преобразования в зависимости от количества опорных точек;
    • разработка алгоритма сортировки и деления опорных точек, полученных с помощью интерактивного ввода мышью в веб-приложении, на точки пола и потолка, а также проверки корректности их перспективы
  • Шалин Антон
    Радиофизик / анализ данных / нейронные сети
    • отбор для проекта предобученных моделей сегментации из фреймворка MMSegmentation и реализация специального парсера для автоматизированного тестирования моделей разных архитектур;
    • проведение в автоматическом режиме тестирования работы на тестовых кадрах 800+ моделей сегментации предобученных на разных датасетах;
    • отбор наилучших решений в виде моделей DeepLabV3+ и Uppernet Beit с итоговым выбором в пользу Uppernet Beit
  • Лузихин Михаил
    Начальник IT-департамента. ЭКОС 1
    • организация для группы доступа к мощному серверу с GPU на базе Ubuntu 22.04 для размещения и запуска разрабатываемого веб-приложения, регистрация доменного имени https://corkdesign.ru/ для доступа к веб-приложению;
    • настройка среды miniconda и конфигурирование nginx для функционирования веб-приложения на сервере;
    • анализ предоставленных заказчиком текстур, взаимодействие с представителями компаний из строительной сферы и аналогичной предметной области для выяснения характеристик отделочных материалов необходимых для проекта;
    • выполнение аналитического обзора статей, материалов, репозиториев с реализациями аналогичных проектов, исследование применяемого стека технологий в подобных проектах, видов используемых нейросетей и этапов реализации
  • Щеблецов Виктор
    ИП, SEO, BPM
    • исследование и тестирование возможностей предобученной модели DeepLabV3+ для сегментации жилых помещений;
    • исследование возможности применения zero-shot сегментатора SAM для задач проекта;
    • разработка и тестирование экспериментального алгоритма получения 3D геометрии комнаты по контуру маски и стен с применением операций упрощения масок пола, стен и потолка, инпейнтинга с применением cv2 масок стен и масок мебели для выравнивания и заполнения отверстий в масках, упрощение контуров масок с использованием алгоритма Рамера-Дугласа-Пекера, алгоритма Холла (построение выпуклой оболочки по облаку точек), а так же собственного оптимизационного алгоритма;
    • разработка модуля построения приблизительных ребер и углов пересечения стен, пола и потолка на основе фото интерьера для применения в качестве подсказки при интерактивном указании опорных точек на изображении, интеграция модуля в разработанное в проекте веб-приложение
  • Басов Юрий
    Разработчик сайтов под заказ
    • исследование возможности применения zero-shot сегментаторов SAM, LangSAM и генеративной модели Stable Diffusion v1.5 для задач проекта;
    • поиск и анализ статей по генеративным нейронным сетям семейства Stable Diffusion, разработка тестовых скриптов с применением модели Stable Diffusion для генерации изображений интерьеров комнат, подбор промптов для Stable Diffusion для решения отдельных участков проекта.
  • Цокоров Сергей
    Департамента инвестиционных финансовых посредников (ДИФП)
    • исследование возможности применения zero-shot сегментаторов SAM, HQSAM, LangSAM, Grounded SAM для задач проекта;
    • поиск и аналитический обзор статей/материалов из предметной области проекта, подготовка описания алгоритма построения изображения перспективы интерьера комнаты с использованием точек схода;
    • разработка скрипта с использованием библиотеки OpenCV для определения точек пересечения плоскостей пола, потолка и стен