В рамках проекта разработан веб-инструмент для точного выделения объектов на изображениях с последующим извлечением и удалением из сцены. Решение ориентировано на практические задачи: подготовка изображений, автоматизация контента и использование в других системах (конфигураторы, каталоги, генерация).
Пользователь выполняет одно действие – выделяет область вокруг объекта. Выделение может быть как прямоугольным, так и произвольной формы (через точки).
Вся дальнейшая обработка – сегментация, очистка маски, извлечение объекта и восстановление фона – происходит автоматически на backend.
Задача проекта
Нужно было реализовать не просто «вырезание объекта», а полный цикл работы со сценой:
- точная сегментация без ручной разметки
- получение pixel-level маски
- извлечение объекта без потери геометрии
- удаление объекта с восстановлением фона
- возврат готовых результатов без дополнительной обработки
Ключевое требование – минимальный UX (без кистей, без ручной коррекции) при сохранении точности результата.
Практическое применение и реальные кейсы
- На практике этот инструмент используется не как отдельный редактор, а как часть рабочих процессов – там, где важно быстро и точно работать с изображениями.
- E-commerce (товары и каталоги)
Фото товара → выделение → система автоматически вырезает объект и убирает фон.
👉 На выходе – готовое изображение для карточки без ручной обработки. - Интерьеры и недвижимость
Удаление мебели, предметов или визуального шума из сцены.
👉 Позволяет показывать “чистое пространство” и готовить изображения к продаже или визуализации. - Удаление людей с фото
С фотографий автоматически убираются прохожие, клиенты, сотрудники или случайные люди в кадре.
👉 Используется для:
— очистки интерьеров и витрин
— подготовки фото для сайтов и каталогов
— маркетинговых материалов без “шума” - Конфигураторы (двери, мебель, товары)
Объект выделяется как отдельный слой → дальше можно менять цвет, материалы, текстуры.
👉 Это основа для интерактивных конфигураторов. - Контент и маркетинг
Объект извлекается и используется в разных креативах, баннерах, лендингах.
👉 Быстрое производство визуала без фотосессий. - Массовая обработка изображений
Работа с каталогами и большими объёмами контента.
👉 Существенное сокращение времени и затрат.
UX / пользовательский сценарий
Flow максимально упрощён:
- Пользователь загружает изображение
- Выделяет объект:
— либо прямоугольником (bounding box)
— либо произвольной формой через точки - Нажимает «Обработать»
- Получает результат
Почему такой подход
- можно быстро выделить объект через bbox
- при необходимости – точно задать границы через точки
- подходит для запуска SAM
- снижает порог входа и даёт гибкость для сложных случаев
Как работает система
Когда пользователь загружает изображение и выделяет объект прямоугольником, на backend уходит две вещи:
- само изображение
- координаты выделенной области
Технически это выглядит так:
{
"image": file,
"bbox": [x1, y1, x2, y2]
}
То есть система получает не «готовый объект», а просто подсказку – где примерно его искать
Что происходит дальше (pipeline)
Дальше запускается последовательная обработка изображения. Важно: это не один шаг, а несколько этапов, каждый из которых решает свою задачу.
1. Подготовка изображения
Сначала backend приводит данные в нормальный вид:
- изображение декодируется
- приводится к нужному формату и размеру
- проверяется, что выделение пользователя корректное
Это нужно, чтобы дальше модель работала стабильно и без ошибок.
2. Определение объекта (сегментация)
Дальше подключается модель SAM 2.
Что она делает по факту:
- смотрит на область, которую выделил пользователь
- «понимает», где внутри неё реальный объект
- отделяет объект от фона
На выходе получается точная маска, где:
- белое – это объект
- чёрное – это всё остальное
Важно:
это не просто прямоугольник, а точное выделение по форме – с учётом всех изгибов, деталей и контуров.
3. Очистка маски
После модели маска не идеальная, поэтому её дорабатывают:
- убираются мелкие «мусорные» пиксели
- сглаживаются края
- проверяется, чтобы объект был цельным
Зачем это нужно:
если этого не сделать, объект будет с рваными краями или с лишними кусками фона.
4. Вырезание объекта
Теперь, когда есть точная маска, объект аккуратно отделяется от изображения.
Технически это делается так:
object = image * mask
На практике это означает:
- остаётся только сам объект
- фон становится прозрачным
Что важно:
- размер объекта не меняется
- пропорции сохраняются
- положение не «съезжает»
На выходе получается готовый PNG, который можно сразу использовать.
5. Удаление объекта со сцены
Параллельно система делает вторую операцию – убирает объект из исходного изображения.
Создаётся «пустое место» там, где был объект:
hole = image - mask
Но просто удалить – недостаточно. Нужно восстановить фон.
6. Восстановление фона (inpainting)
Для этого используется модель LaMa.
Что она делает:
- анализирует, что находится вокруг удалённого объекта
- «дорисовывает» недостающий участок
- восстанавливает текстуру
Лучше всего это работает на:
- стенах
- полу
- однотипных текстурах
В результате не остаётся «дырки» – изображение выглядит цельным.
7. Что получает пользователь
В итоге система возвращает сразу два результата:
{
"original": "...",
"object": "...",
"clean": "..."
}
Где:
- object – вырезанный объект без фона
- clean – изображение без этого объекта
И это уже готовые файлы, которые можно использовать дальше без доработки.
Как это устроено технически
Frontend
- Vue 3
- Canvas
Canvas используется не как основной рендеринг, а как вспомогательный инструмент:
- для выделения области на изображении
- для фиксации координат (точек), выбранных пользователем
- для упрощения передачи этих данных в обработку
В данном случае Canvas не работает с самим изображением напрямую, а служит слоем взаимодействия – собирает точки, по которым определяется область интереса.
Как это работает
- Пользователь выделяет область на изображении
- Через Canvas фиксируются координаты выбранной зоны
- Эти данные передаются в модель сегментации (SAM2)
- Модель возвращает маску объекта
- Маска накладывается поверх оригинального изображения вторым слоем
- В результате пользователь видит контур/область, которую определила модель
Backend
- Python
- отвечает за весь pipeline
- обрабатывает изображения
- вызывает AI-модели
AI-часть
- SAM 2 – выделяет объект
- LaMa – восстанавливает фон
Весь процесс разбит на этапы:
- сегментация
- извлечение
- восстановление
Это важно, потому что:
- можно менять модели
- можно масштабировать систему
- можно улучшать отдельные части
Что важно в реализации
- Это не просто “вырезать картинку”
Система реально понимает, где объект, а не просто обрезает прямоугольник. - Объект сохраняет геометрию
Его можно вставить обратно или использовать дальше без искажений. - Минимум действий от пользователя
Не нужно обводить контур – достаточно выделить область. - Работает без обучения под задачу
Не нужно собирать датасет под каждый тип товара.
Производительность
Зависит от:
- размера изображения
- сложности объекта
- загруженности сервера
Как это выглядит в реальности:
- простые объекты – быстро
- сложные сцены – чуть дольше, но стабильно
Ограничения
Есть ситуации, где результат может быть хуже:
- объект сливается с фоном (низкий контраст)
- несколько объектов пересекаются
- очень сложные текстуры (мелкие детали)
Как можно использовать инструмент
Текущая версия решает базовую задачу – точное выделение, извлечение и очистка сцены. Но архитектура изначально заложена так, чтобы этот инструмент был не конечным продуктом, а ядром для других решений.
Практическое использование
- Подготовка контента для e-commerce
— автоматическая вырезка товара из фото
— подготовка изображений для карточек
— очистка фона без дизайнера - Генерация каталога
— один исходник → разные варианты подачи
— перенос объекта на другие фоны
— сборка визуалов без фотосессий - Очистка сцен
— удаление лишних объектов (мебель, предметы)
— подготовка «чистых» интерьеров
— работа с real-life фото - Основа для конфигураторов
— выделенный объект можно использовать как слой
— дальше – менять цвет, материалы, текстуры
— интеграция с 2D/3D конфигураторами - Подготовка данных для AI
— сегментированные объекты → вход для генеративных моделей
— обучение / fine-tuning
— создание датасетов
Как можно дорабатывать
Архитектура позволяет наращивать функциональность без переписывания системы.
Auto-detection (без bbox)
Сейчас пользователь задаёт область вручную.
Следующий шаг – автоматическое определение объектов на сцене:
- список объектов
- выбор кликом
- работа как с «умной сценой»
Batch processing
Обработка не одного изображения, а пачки:
- загрузка каталога
- массовая сегментация
- автоматическая выгрузка
Актуально для e-commerce и production.
Интеграция с генеративными моделями
После сегментации можно:
- менять материалы и цвета
- генерировать вариации
- создавать новые сцены
То есть превращать инструмент в полноценный AI-конфигуратор.
Работа с 3D / depth
Добавление depth-анализа:
- понимание глубины сцены
- корректная вставка объектов
- переход к 3D-конфигурации
Интеграция в бизнес-процессы
— CRM (передача изображений)
— CMS (управление контентом)
— e-commerce (карточки товаров)
Инструмент становится частью pipeline, а не отдельным сервисом.
Улучшение точности
— дообработка масок
— гибридные модели сегментации
— адаптация под конкретные категории (мебель, одежда и т.д.)
Результат
Реализован инструмент, который:
- точно выделяет объект без ручной разметки
- извлекает его без потери геометрии
- удаляет объект с корректным восстановлением фона
- возвращает готовые данные для дальнейшего использования
По сути, это базовый слой для любых систем, где нужно работать с изображением как со структурированной сценой, а не как с «картинкой».
Хотите внедрить такой инструмент?
Разработаем решение под ваши задачи: от базовой сегментации до полной интеграции в сайт, CRM или e-commerce.
Покажем, как это будет работать именно в вашем кейсе и какие задачи закроет.
👉 Оставьте заявку – разберём задачу и предложим реализацию под ваш бизнес


