Говорит, что ваши эти ИИшки не держат геометрию и помещают в комнату объекты, которые там физически не могут находиться. А я ей – что ИИшки могут 🤷♂️
Говорит, кто проиграет пари – оплачивает весь банкет. А я человек азартный, мне часто вообще пофиг на что именно спорить, да и выпендриваться я люблю. А тут еще и такая возможность Астру потестить в ее родных задачах, чего я до сих пор нормально не сделал
Входные условия достаточно неприятные – чертеж и 4 плохих фотки. Но у меня настроен remote коннект на ноут, который в апартах на столе стоит включенным и пару ресетов в запасе
В целом то она права – если просто сгрузить все в кодекс и сказать наложить дизайн, то он тупо вызовет imagegen и геометрия точно поедет
Но мы уже решали похожие задачи и знаем, что вся соль – в создании промежуточной детерминированной модели. В нашем случае – просто 3д сцены квартиры. Можно в каком-нибудь CAD'е или blender'е, но тут с этим даже не заморачиваюсь
Взяв чертеж и загуглив проектную документацию здания (чтобы найти высоту потолков), агент строит базовую модель. Тут все ок
Дальше осталось расставить 3д объекты мебели, подогнать виртуальные ракурсы под камеру и уже по 3д сценам запустить генерацию секси картинок в нужном стиле
Пока агент работает, я попиваю джин-тоник и рассказываю всратые истории про Таиланд
Подгонка камер оказалась сложнее чем я думал и важнее, чем я думал. Я то хотел просто красивые картиночки со слайдерами сделать (см выше), чтобы наглядно показать корректную геометрию комнат. А на самом деле это важно, чтобы определять точные размеры и положение других объектов в помещении
Например вон тот радиатор у окна сильно влиял на ширину "спальни" и было не понятно, влезет ли кровать – нужно было точно знать его расположение
Поэтому я немного упоролся и отправил агента сначала сделать детектирование углов и линий стен, а потом накинуть немного матмоделирования – по сути итеративную подгонку положения и углов обзора камеры, пока линии виртуального мира не сойдутся с линиями на фото
Получается такая цепочка:
чертеж
→ 3d сцена
+ детектирование линий стен
→ локация камер
+ детектирование контуров батарей
→ 3d сцена с батареями
Где-то в этот момент мы тоже занимаемся определением локации – локации следующего бара, так как предыдущий закрылся
Как только локация камер и бара установлена, мы делаем уже обратную процедуру по локализации батарей: зная положение стен относительно камеры и видя на ней радиаторы, можно точно определить их координаты на этих стенах
Не все проходит гладно: агент использует классический CV для определения линий стен и где-то он триггерится на пятна краски вместо реального угла, а из-за кривого освещения в 3d сцене imagegen не правильно распознает границы стен у потолка на паре кадров
Где-то в этот момент параллельная экспериментальная задача из другого проекта убивает мой ноут и коннекшн теряется. Через 20 минут и этот бар закрывается, я по-джентльменски закрываю счет, и заказываю такси до дома. К утру все готово, но у меня не сохранился ее контакт, так что делюсь ссылкой с вами:
→ Ссылка с интерактивными штуками
(история выше – художественный вымысел, а все совпадения с реальными людьми – случайность)








