Domain gap: как сократить разрыв между рендером и реальностью
Синтетические данныеDomain gap — главный риск при обучении на рендерах. Он поддаётся диагностике и лечению, если понимать, из каких слагаемых складывается, и работать с каждым по отдельности.

Что такое domain gap на самом деле
Domain gap, или разрыв доменов, — это разница между распределением данных, на которых обучалась модель, и распределением данных, с которыми она встречается в работе. Когда обучающая выборка — рендеры, а рабочая — кадры реальной камеры, метрики на рендерах могут быть превосходными, а на реальности заметно ниже. Модель выучила не «как выглядит деталь», а «как выглядит деталь на этих гладких искусственных картинках».
Важно понимать: разрыв не единственная величина. Он состоит из нескольких слагаемых, и у каждого свои причины и свои способы устранения. Если лечить всё сразу одним «улучшением реализма», можно потратить недели и не сдвинуть метрику. Сначала диагностика, потом лечение.
Из чего складывается разрыв
Условно слагаемые делятся на пять групп.
- Разрыв по внешнему виду объекта: неверные материалы, слишком идеальные поверхности, отсутствие износа, царапин, загрязнений.
- Разрыв по окружению: фоны, освещение, отражения и тени не похожи на реальные условия.
- Разрыв по сенсору: у настоящей камеры есть шум, размытие, хроматические аберрации, сжатие JPEG, а у чистого рендера нет ничего этого.
- Разрыв по содержанию: в рендере нет тех ситуаций, которые встречаются в реальности (загораживающие предметы, неожиданные положения объектов).
- Разрыв по разметке: определение границ и классов в синтетике не совпадает с тем, как считает ваша реальная валидация.
Последний пункт недооценивают чаще всего. Если в реальной разметке тень под предметом входит в рамку, а в синтетической нет, то часть «ошибки» модели на реальных данных вызвана не качеством рендера, а несовпадением правил.
Диагностика: как измерить размер разрыва
Без измерения любые улучшения слепы. Мы используем несколько простых и практичных проверок.
Реальная валидационная выборка
Основа всего. Небольшой набор реальных кадров (даже 100–300 штук), размеченных по тем же правилам, что и синтетика, и никогда не попадающих в обучение. Именно по ней смотрим итоговые метрики: mAP, precision, recall. О том, как их читать, подробно в материале про метрики детекции.
Сравнение «синтетика-валидация» и «реальность-валидация»
Если на отложенной части рендеров метрика 0,95, а на реальных кадрах 0,60, разрыв велик. Если 0,95 и 0,88, он умеренный. Само по себе абсолютное значение менее важно, чем динамика при изменении параметров генерации.
Разбор ошибок по категориям
Посмотрите на ложные срабатывания и пропуски на реальных кадрах и сгруппируйте их. Частые паттерны подсказывают источник:
- пропуски при бликах — не хватает вариантов освещения и глянцевых материалов;
- ложные срабатывания на фоне — слишком бедные фоны или отсутствие похожих отвлекающих предметов;
- пропуски мелких и размытых объектов — нет имитации оптики и движения;
- ошибки на частично закрытых объектах — мало перекрытий в сценах.
Эксперименты с удалением факторов
Генерируем несколько версий одного набора: с шумом и без, с реальными HDRI и без, с износом и без. Сравниваем метрики на реальной выборке. Так видно, какой фактор действительно приносит прирост, а какой тратит вычислительное время впустую.
Сокращаем разрыв по внешнему виду объекта
Самая частая причина лежит в материалах. Пластик «из коробки» в 3D-редакторе выглядит как идеальная поверхность без микрорельефа, а настоящая деталь имеет текстуру литья, разводы, пыль, потёртости на рёбрах. Мы работаем с физически корректными PBR-материалами и добавляем слои износа, вариации шероховатости и цвета в допустимых производственных пределах. Об этом отдельный разбор: PBR-материалы и почему от них зависит реалистичность.
Если у вас есть реальные образцы, фотограмметрия или сканы дают текстуры, максимально близкие к настоящим. Если объекта пока нет, опираемся на спецификацию материалов и реальные аналоги.
Сокращаем разрыв по окружению и освещению
Освещение в рендере часто делают слишком «студийным»: мягкий равномерный свет без теней и отражений. В реальной работе объекты стоят под лампами разных типов, на них падают тени от соседних предметов и оператора, окна создают контровой свет.
Практические приёмы:
- использовать набор HDRI-карт, снятых в похожих помещениях, и варьировать их поворот и яркость;
- добавлять локальные источники света, дающие резкие тени;
- менять цветовую температуру в диапазоне, реально встречающемся на объекте;
- собирать фоны из реальных текстур и фотографий, а не из однотонных заливок.
Подробнее о свете мы писали в статье Освещение в рендере: HDRI, источники и тени.
Сокращаем разрыв по сенсору
Реальная камера оставляет следы, которых нет в идеальном рендере. Если не добавить их, модель привыкает к безупречной чёткости. Что обычно имитируем:
- зерно и шум, зависящие от освещённости;
- мягкое размытие, вызванное оптикой и фокусом;
- виньетирование и хроматические аберрации;
- артефакты сжатия;
- смаз при движении объекта или камеры;
- ограниченный динамический диапазон: пересвеченные и недоэкспонированные области.
Параметры лучше брать с вашей настоящей камеры. Достаточно нескольких десятков эталонных кадров, чтобы оценить уровень шума и резкости. Эту тему мы раскрываем в статье Виртуальная камера: объективы, шум и искажения.
Рандомизация как страховка
Если точно воспроизвести реальность невозможно, можно сделать наоборот: сделать обучающие кадры настолько разнообразными, чтобы реальность оказалась лишь одним из вариантов. Это идея доменной рандомизации. Модель, увидевшая тысячи разных освещений, фонов и текстур, учится опираться на форму объекта, а не на случайные признаки. Конкретные приёмы и подводные камни собраны в статье Доменная рандомизация на практике.
Баланс здесь тонкий. Слишком агрессивная рандомизация (объект с психоделической текстурой на фоне из шума) может ухудшить результат, потому что в реальности таких условий нет, а модель тратит ёмкость на бесполезные вариации. Правило: диапазоны параметров должны перекрывать реальные условия с запасом, но не уходить далеко за их пределы.
Дообучение на реальных кадрах
Даже при хорошем рендере небольшая реальная выборка заметно помогает. Типичный сценарий: основной объём обучения идёт на синтетике, затем следует дообучение (fine-tuning) на нескольких сотнях реальных размеченных кадров. Модель получает масштаб и покрытие от рендеров, а привязку к настоящей картинке от реальных снимков. Пропорции и порядок подробно разобраны в статье Смешивание синтетики и реальных данных.
Чек-лист перед запуском крупной партии
Прежде чем заказывать или генерировать большой объём, пройдите короткий список. Он экономит больше времени, чем любая оптимизация рендера.
- Согласованы правила разметки между синтетикой и реальной валидацией: границы, перекрытия, тени, классы.
- Собрана реальная валидационная выборка, и она не пересекается с материалами, по которым настраивался генератор.
- Материалы объекта проверены на фотографиях реальных образцов при разном освещении.
- Параметры шума и резкости оценены по кадрам настоящей камеры.
- Набор фонов включает реальные текстуры и фотографии из рабочего окружения.
- В сценах есть дистракторы: предметы, которые модель не должна принимать за целевые.
- Первая пробная партия обучена и протестирована, ошибки разобраны по категориям.
Если хотя бы два пункта не выполнены, риск получить большую партию с большим разрывом высок. Исправлять параметры дешевле до массового рендеринга, чем после. Разумеется, идеального датасета с первого раза не бывает, но дисциплина проверки превращает поиск причин из гадания в работу по списку.
Итерации вместо идеала
Мы не стремимся с первого раза сделать «фотореалистично». Рабочий подход выглядит так:
- Генерируем первую партию с базовым набором рандомизации.
- Обучаем модель и меряем метрики на реальной валидации.
- Разбираем ошибки и определяем доминирующий источник разрыва.
- Корректируем конкретные параметры: материалы, свет, шум, фоны.
- Повторяем цикл, пока метрики не выйдут на целевой уровень.
Обычно двух-трёх итераций достаточно, чтобы сократить разрыв до приемлемого. Именно поэтому мы предлагаем сначала тестовый датасет: он позволяет пройти первую итерацию на небольшом объёме до масштабного заказа. Описание общего процесса есть на странице Технология, а если хотите обсудить свою задачу, напишите на [email protected].
Нужен датасет под вашу задачу?
Подготовим тестовую партию изображений с разметкой, чтобы вы могли проверить подход на своей модели. Напишите на [email protected] или оставьте заявку.
Читайте также
Синтетические данныеСколько изображений нужно для обучения детектора
Универсального числа нет, но есть рабочие ориентиры и способы оценить потребность до того, как вы потратили бюджет. Разбираем факторы, диапазоны и метод кривой обучения.
Синтетические данныеКак проверить качество синтетического датасета
Красивые рендеры ничего не гарантируют. Показываем, как проверить синтетический датасет до обучения и после него, какие метрики смотреть и когда останавливать проект.
Синтетические данныеДоменная рандомизация на практике
Доменная рандомизация — способ научить модель не зависеть от случайных деталей сцены. Показываем, какие параметры стоит случайно менять, какие лучше держать под контролем и как проверить эффект.