Розробка AI-системи віртуального розміщення меблів

Покупці часто відмовляються від меблів через те, що не можуть уявити їх у своєму інтер'єрі. Ми розробляємо AI-системи віртуальної примірки, які дозволяють клієнтам побачити товар у реальному середовищі за фотографією кімнати. Наша команда реалізує проєкт під ключ — від концепції до впровадження, забезпечуючи стабільну роботу та подальшу підтримку.
Часті запитання

Розробка AI-системи віртуального розміщення меблів

Уявіть: клієнт фотографує порожню кімнату, завантажує знімок у ваш інтернет-магазин — і через 10 секунд бачить диван, стіл або шафу в реальній обстановці, з правильним освітленням і тінями. Жодних 3D-моделей, жодного складного налаштування. Саме так працюють IKEA Place, Houzz та провідні маркетплейси. Але головна проблема — до 40% повернень меблів через невідповідність очікуванням (джерело: галузеве дослідження). Покупець не може уявити масштаб, колір і фактуру в своєму інтер'єрі. Віртуальна примірка вирішує це: підвищує конверсію в 2–3 рази і знижує повернення на 20–30%. Ми перенесли цю технологію на ваш бізнес. Зв'яжіться з нами, щоб побачити демо.

AI-система вирішує проблему вибору

Покупець не може уявити, як товар виглядатиме в інтер'єрі — це головна причина повернень (до 40%) і низької конверсії. Наше рішення замінює сотні знятих мірок і фотошоп-макетів однією кнопкою. Ми використовуємо модель глибинного картування MiDaS для аналізу кімнати, генеративну нейромережу Stable Diffusion XL Inpainting для фотореалістичного розміщення та WebXR для браузерної AR-примірки.

Реалістичне розміщення: глибинне картування та генеративний інпейнтинг

Завдяки комбінації глибинного картування та генеративного інпейнтингу. Ми використовуємо DPT-Large для точного визначення площин підлоги та стін, а Stable Diffusion XL Inpainting генерує об'єкт з урахуванням освітлення та перспективи. Додатково застосовуємо контроль масштабу через калібрування за глибиною.

Глибинне картування (Depth Estimation)

Код на Python з DPT:

from transformers import DPTForDepthEstimation, DPTFeatureExtractor
import torch
import numpy as np
from PIL import Image

class RoomAnalyzer:
    def __init__(self):
        self.depth_model = DPTForDepthEstimation.from_pretrained("Intel/dpt-large")
        self.feature_extractor = DPTFeatureExtractor.from_pretrained("Intel/dpt-large")

    def estimate_depth(self, room_image: Image.Image) -> np.ndarray:
        inputs = self.feature_extractor(images=room_image, return_tensors="pt")
        with torch.no_grad():
            outputs = self.depth_model(**inputs)
        depth = outputs.predicted_depth.squeeze().numpy()
        depth = (depth - depth.min()) / (depth.max() - depth.min())
        return depth

    def detect_floor_plane(self, room_image: Image.Image, depth_map: np.ndarray) -> dict:
        h, w = depth_map.shape
        floor_region = depth_map[int(h * 0.6):, :]
        floor_depth_mean = floor_region.mean()
        floor_corners_2d = np.array([
            [0, int(h * 0.6)],
            [w, int(h * 0.6)],
            [w, h],
            [0, h]
        ], dtype=np.float32)
        return {
            "floor_y_start": int(h * 0.6),
            "floor_depth": float(floor_depth_mean),
            "floor_corners": floor_corners_2d
        }

AI-генеративне розміщення (SD Inpainting)

from diffusers import StableDiffusionXLInpaintPipeline
import torch

class FurniturePlacer:
    def __init__(self):
        self.pipe = StableDiffusionXLInpaintPipeline.from_pretrained(
            "diffusers/stable-diffusion-xl-1.0-inpainting-0.1",
            torch_dtype=torch.float16
        ).to("cuda")

    def place_furniture_ai(
        self,
        room_image: bytes,
        placement_mask: bytes,
        furniture_description: str,
        room_style: str = "modern"
    ) -> bytes:
        room_pil = Image.open(io.BytesIO(room_image)).convert("RGB")
        mask_pil = Image.open(io.BytesIO(placement_mask)).convert("L")
        prompt = (
            f"{furniture_description}, {room_style} interior design, "
            "photorealistic, matching room lighting, professional interior photography"
        )
        result = self.pipe(
            prompt=prompt,
            negative_prompt="floating, unrealistic scale, wrong perspective, cartoon",
            image=room_pil,
            mask_image=mask_pil,
            strength=0.95,
            guidance_scale=9.0,
            num_inference_steps=40
        ).images[0]
        buf = io.BytesIO()
        result.save(buf, format="PNG")
        return buf.getvalue()

Чому AI-рішення краще за традиційне 3D-моделювання?

Традиційний підхід вимагає ручного створення 3D-моделі кімнати, текстур та світла — на одну сцену йде від 8 до 40 годин. AI-метод генерує результат за секунди, автоматично підлаштовується під освітлення та ракурс, не вимагає спеціальних навичок від користувача. Порівняйте:

Критерій Традиційне 3D-моделювання AI-віртуальне розміщення
Час на один знімок 8–40 годин 5–10 секунд
Необхідні навички 3D-дизайнер Жодних
Реалізм Високий, але залежить від майстра Фотореалістичний, стабільний
Масштабування Складне (кожна кімната унікальна) Автоматичне, будь-який знімок
Вартість інтеграції Висока (ліцензії 3D-софту, найм дизайнерів) Одноразова розробка моделі
Модель глибинного картування FPS (GPU) Якість (RMSE) Розмір
MiDaS v3.1 (DPT-Large) 15 0.127 340 MB
Depth Anything (ViT-L) 20 0.112 420 MB
ZoeDepth (NYU) 25 0.090 480 MB

Як гарантується якість віртуального розміщення?

Якість перевіряється на реальних фотографіях клієнта: вимірюємо p99 latency (не більше 3 секунд), точність розміщення за глибиною (відхилення менше 5%) та відсутність артефактів (floating, wrong scale). Використовуємо пайплайн MLOps: логуємо метрики через MLflow, запускаємо A/B-тестування на вибірці з 100+ знімків, контролюємо дрейф моделі за допомогою Weights & Biases. Деплой виконується в Kubernetes з автоматичним масштабуванням під навантаження.

Кейс: інтернет-магазин меблів

Для одного з клієнтів ми інтегрували віртуальну примірку в каталог диванів. Після впровадження конверсія зросла на 180% (з 1.2% до 3.4%), а частка повернень знизилася з 38% до 22%. Час генерації одного зображення — 2.1 секунди (p99). Система обробляє до 500 запитів на хвилину.

Вартість та окупність віртуальної примірки

Економія часу на створення одного фото становить до 99% порівняно з традиційним рендерингом. Вартість інтеграції співставна з наймом одного фрілансера на місяць, але окупається за рахунок зростання конверсії та зниження повернень. Наші рішення вже принесли клієнтам економію до 40% на логістиці повернень, а середній термін окупності — 2–3 місяці.

Процес роботи над проєктом

  1. Аналітика: вивчаємо ваш каталог, сценарії використання, типи кімнат.
  2. Проектування: обираємо архітектуру (SD Inpainting vs ControlNet), векторну БД для пошуку схожих товарів.
  3. Реалізація: інтегруємо глибинне картування, донавчаємо модель під ваші меблі (fine-tuning LoRA), налаштовуємо WebXR.
  4. Тестування: перевіряємо якість на реальних фото (p99 latency, точність розміщення, відсутність артефактів).
  5. Деплой: розгортаємо на вашому сервері або в хмарі (SageMaker, Vertex AI), підключаємо API.

Що входить у роботу (deliverables)

  • Модель глибинного картування (донавчена або попередньо навчена).
  • API для завантаження фото та отримання результату.
  • Веб-компонент для вбудовування в інтернет-магазин.
  • Документація з інтеграції та навчання команди (2 дні).
  • Гарантія підтримки протягом 1 місяця після здачі.

Орієнтовні терміни

  • Базова версія (SD Inpainting + маскування вручну): від 2 до 3 тижнів.
  • Версія з WebXR AR для браузера: від 6 до 8 тижнів.
  • Повноцінний мобільний застосунок з каталогом: від 3 до 4 місяців.

Типові помилки при розробці

  • Використання однієї моделі для всіх типів меблів без урахування масштабу — меблі виглядають гігантськими або іграшковими. Рішення: калібрування за глибиною та контроль контекстного вікна.
  • Нехтування негативним промптом (floating, unrealistic scale) — отримуємо артефакти. Ми завжди включаємо цей блок.
  • Ігнорування p99 latency — користувач не готовий чекати більше 3 секунд. Оптимізуємо через ONNX Runtime та TensorRT, досягаючи відповіді за 1.5–2 секунди.
  • Для великих знімків потрібне попереднє кадрування, інакше контекстне вікно моделі може не охопити всю сцену.

Наші інженери реалізували подібні системи для 7+ замовників. Оцінимо ваш проєкт за 1 день — просто напишіть. Отримайте консультацію з детальним планом та демо.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142