Synthetic Data Generation for Computer Vision

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
Synthetic Data Generation for Computer Vision
Medium
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

Генерация синтетических данных для Computer Vision

Реальная разметка 10 000 изображений с полигональными масками стоит месяцы работы аннотаторов и немалые деньги. При этом мирового нет: у клиента 400 размеченных фото дефектов на конвейере, а модель YOLOv8 с таким объёмом выдаёт [email protected] = 0.51. Синтетические данные — не замена реальным, но инструмент, который закрывает этот разрыв без найма армии разметчиков.

Когда синтетика реально помогает, а когда нет

Три сценария, где синтетика даёт измеримый прирост:

Дисбаланс классов. На производственной линии редкий дефект встречается раз в 5 000 единиц. Recall по этому классу — 0.23. Генерация 2 000 синтетических экземпляров через copy-paste аугментацию на реальных фонах поднимает recall до 0.71 без изменения архитектуры.

Privacy-ограничения. Медицинские снимки, документы, лица — там реальные данные либо нельзя использовать вне защищённого контура, либо их объём клинически мал. GAN или диффузионная генерация с соблюдением распределения — рабочий выход.

Новая задача без исторических данных. Склад ещё не построен, робот ещё не куплен, а модель нужна к запуску. Рендеринг 3D-сцен в Blender/NVIDIA Omniverse даёт первую обученную модель заранее.

Синтетика не помогает, если domain gap слишком велик — модель, обученная на рендере, ложится на реальных фото без domain adaptation.

Основные методы и инструменты

3D-рендеринг

NVIDIA Omniverse Replicator — наиболее зрелый инструмент для CV-синтетики. Позволяет генерировать изображения с автоматической разметкой: bounding boxes, маски сегментации, depth maps, normal maps — всё из одного пайплайна. Рандомизация материалов, освещения, положения камеры встроена.

import omni.replicator.core as rep

with rep.new_layer():
    # Рандомизация положения объекта
    cube = rep.create.cube(semantics=[("class", "defect")])
    with rep.trigger.on_frame(num_frames=5000):
        with cube:
            rep.modify.pose(
                position=rep.distribution.uniform((-50, 0, -50), (50, 0, 50)),
                rotation=rep.distribution.uniform((0, -180, 0), (0, 180, 0))
            )
        rep.randomizer.lights()

Blender + Python scripting — более гибкий вариант для кастомных сцен. Достаточно базового знания Blender API и скрипта для batch-рендера.

GAN и диффузионные модели

Stable Diffusion с ControlNet — генерация фотореалистичных изображений по маскам или скелетам. Для CV-задач актуально: задаёшь маску дефекта, получаешь вариации текстуры и освещения на этой маске.

StyleGAN3 — хорошо работает для лиц и медицинских изображений с контролируемой вариативностью. FID (Fréchet Inception Distance) < 10 достигается на датасетах от 10 000 реальных образцов.

Pix2Pix / CycleGAN — domain transfer: из синтетики в реалистичное изображение. Помогает закрыть domain gap без повторной разметки.

Copy-paste аугментация

Самый дешёвый метод для детекции — вырезать реальный объект и вставить на разные фоны. Библиотека albumentations с CopyPasteAugmentation или кастомный скрипт. При корректном смешении (Gaussian blur на краях, согласование освещения) прирост mAP — 5–15% без единой новой разметки.

Кейс: детекция дефектов стекла

Клиент — производитель автомобильных стёкол. Исходный датасет: 380 изображений с 6 классами дефектов (царапины, сколы, пузыри, включения, трещины, мутность). YOLOv8m на этих данных: [email protected]:0.95 = 0.38, по классу «включение» — recall 0.19.

Что сделали:

  1. Отрендерили 8 000 синтетических изображений в Blender с рандомизацией положения, угла съёмки, освещения (3 типа источников).
  2. Добавили copy-paste для редких классов (включение, пузырь) — ещё 3 000 примеров.
  3. Domain adaptation: CycleGAN для перевода рендера в стиль реальных фото с линии.
  4. Финальный датасет: 380 реальных + 11 000 синтетических. Разбивка 80/10/10 только из реальных данных в val/test.

Результат: [email protected]:0.95 = 0.67, recall по «включению» — 0.74. Время разметки — 0 дополнительных часов.

Валидация синтетических данных

Главная ошибка — смешивать синтетику в val/test сет. Оценка модели должна проводиться только на реальных данных. Иначе метрики выглядят красиво, а в production модель не работает.

Metrics для оценки качества синтетики:

  • FID — близость распределений синтетики и реальных данных (< 30 — приемлемо)
  • KID (Kernel Inception Distance) — более устойчив на малых выборках
  • Перенос через модель: обучи на синтетике, протестируй на реальных — это единственный честный тест

Сроки

Метод Подготовка Генерация 10k изображений
Copy-paste аугментация 1–2 дня часы
Blender 3D-рендеринг 1–3 недели (3D-модели) 1–3 дня
NVIDIA Omniverse 2–4 недели 1–5 дней
Stable Diffusion / GAN 1–4 недели (fine-tuning) часы–дни

Стоимость зависит от метода, сложности сцен и объёма требуемых данных.