Syntidata
Главная / Блог / Синтетические данные / Domain gap: как сократить разрыв между рендером и реальностью

Domain gap: как сократить разрыв между рендером и реальностью

Синтетические данные

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

Domain gap: как сократить разрыв между рендером и реальностью

Что такое domain gap на самом деле

Domain gap, или разрыв доменов, — это разница между распределением данных, на которых обучалась модель, и распределением данных, с которыми она встречается в работе. Когда обучающая выборка — рендеры, а рабочая — кадры реальной камеры, метрики на рендерах могут быть превосходными, а на реальности заметно ниже. Модель выучила не «как выглядит деталь», а «как выглядит деталь на этих гладких искусственных картинках».

Важно понимать: разрыв не единственная величина. Он состоит из нескольких слагаемых, и у каждого свои причины и свои способы устранения. Если лечить всё сразу одним «улучшением реализма», можно потратить недели и не сдвинуть метрику. Сначала диагностика, потом лечение.

Из чего складывается разрыв

Условно слагаемые делятся на пять групп.

  1. Разрыв по внешнему виду объекта: неверные материалы, слишком идеальные поверхности, отсутствие износа, царапин, загрязнений.
  2. Разрыв по окружению: фоны, освещение, отражения и тени не похожи на реальные условия.
  3. Разрыв по сенсору: у настоящей камеры есть шум, размытие, хроматические аберрации, сжатие JPEG, а у чистого рендера нет ничего этого.
  4. Разрыв по содержанию: в рендере нет тех ситуаций, которые встречаются в реальности (загораживающие предметы, неожиданные положения объектов).
  5. Разрыв по разметке: определение границ и классов в синтетике не совпадает с тем, как считает ваша реальная валидация.

Последний пункт недооценивают чаще всего. Если в реальной разметке тень под предметом входит в рамку, а в синтетической нет, то часть «ошибки» модели на реальных данных вызвана не качеством рендера, а несовпадением правил.

Диагностика: как измерить размер разрыва

Без измерения любые улучшения слепы. Мы используем несколько простых и практичных проверок.

Реальная валидационная выборка

Основа всего. Небольшой набор реальных кадров (даже 100–300 штук), размеченных по тем же правилам, что и синтетика, и никогда не попадающих в обучение. Именно по ней смотрим итоговые метрики: mAP, precision, recall. О том, как их читать, подробно в материале про метрики детекции.

Сравнение «синтетика-валидация» и «реальность-валидация»

Если на отложенной части рендеров метрика 0,95, а на реальных кадрах 0,60, разрыв велик. Если 0,95 и 0,88, он умеренный. Само по себе абсолютное значение менее важно, чем динамика при изменении параметров генерации.

Разбор ошибок по категориям

Посмотрите на ложные срабатывания и пропуски на реальных кадрах и сгруппируйте их. Частые паттерны подсказывают источник:

  • пропуски при бликах — не хватает вариантов освещения и глянцевых материалов;
  • ложные срабатывания на фоне — слишком бедные фоны или отсутствие похожих отвлекающих предметов;
  • пропуски мелких и размытых объектов — нет имитации оптики и движения;
  • ошибки на частично закрытых объектах — мало перекрытий в сценах.

Эксперименты с удалением факторов

Генерируем несколько версий одного набора: с шумом и без, с реальными HDRI и без, с износом и без. Сравниваем метрики на реальной выборке. Так видно, какой фактор действительно приносит прирост, а какой тратит вычислительное время впустую.

Сокращаем разрыв по внешнему виду объекта

Самая частая причина лежит в материалах. Пластик «из коробки» в 3D-редакторе выглядит как идеальная поверхность без микрорельефа, а настоящая деталь имеет текстуру литья, разводы, пыль, потёртости на рёбрах. Мы работаем с физически корректными PBR-материалами и добавляем слои износа, вариации шероховатости и цвета в допустимых производственных пределах. Об этом отдельный разбор: PBR-материалы и почему от них зависит реалистичность.

Если у вас есть реальные образцы, фотограмметрия или сканы дают текстуры, максимально близкие к настоящим. Если объекта пока нет, опираемся на спецификацию материалов и реальные аналоги.

Сокращаем разрыв по окружению и освещению

Освещение в рендере часто делают слишком «студийным»: мягкий равномерный свет без теней и отражений. В реальной работе объекты стоят под лампами разных типов, на них падают тени от соседних предметов и оператора, окна создают контровой свет.

Практические приёмы:

  • использовать набор HDRI-карт, снятых в похожих помещениях, и варьировать их поворот и яркость;
  • добавлять локальные источники света, дающие резкие тени;
  • менять цветовую температуру в диапазоне, реально встречающемся на объекте;
  • собирать фоны из реальных текстур и фотографий, а не из однотонных заливок.

Подробнее о свете мы писали в статье Освещение в рендере: HDRI, источники и тени.

Сокращаем разрыв по сенсору

Реальная камера оставляет следы, которых нет в идеальном рендере. Если не добавить их, модель привыкает к безупречной чёткости. Что обычно имитируем:

  • зерно и шум, зависящие от освещённости;
  • мягкое размытие, вызванное оптикой и фокусом;
  • виньетирование и хроматические аберрации;
  • артефакты сжатия;
  • смаз при движении объекта или камеры;
  • ограниченный динамический диапазон: пересвеченные и недоэкспонированные области.

Параметры лучше брать с вашей настоящей камеры. Достаточно нескольких десятков эталонных кадров, чтобы оценить уровень шума и резкости. Эту тему мы раскрываем в статье Виртуальная камера: объективы, шум и искажения.

Рандомизация как страховка

Если точно воспроизвести реальность невозможно, можно сделать наоборот: сделать обучающие кадры настолько разнообразными, чтобы реальность оказалась лишь одним из вариантов. Это идея доменной рандомизации. Модель, увидевшая тысячи разных освещений, фонов и текстур, учится опираться на форму объекта, а не на случайные признаки. Конкретные приёмы и подводные камни собраны в статье Доменная рандомизация на практике.

Баланс здесь тонкий. Слишком агрессивная рандомизация (объект с психоделической текстурой на фоне из шума) может ухудшить результат, потому что в реальности таких условий нет, а модель тратит ёмкость на бесполезные вариации. Правило: диапазоны параметров должны перекрывать реальные условия с запасом, но не уходить далеко за их пределы.

Дообучение на реальных кадрах

Даже при хорошем рендере небольшая реальная выборка заметно помогает. Типичный сценарий: основной объём обучения идёт на синтетике, затем следует дообучение (fine-tuning) на нескольких сотнях реальных размеченных кадров. Модель получает масштаб и покрытие от рендеров, а привязку к настоящей картинке от реальных снимков. Пропорции и порядок подробно разобраны в статье Смешивание синтетики и реальных данных.

Чек-лист перед запуском крупной партии

Прежде чем заказывать или генерировать большой объём, пройдите короткий список. Он экономит больше времени, чем любая оптимизация рендера.

  • Согласованы правила разметки между синтетикой и реальной валидацией: границы, перекрытия, тени, классы.
  • Собрана реальная валидационная выборка, и она не пересекается с материалами, по которым настраивался генератор.
  • Материалы объекта проверены на фотографиях реальных образцов при разном освещении.
  • Параметры шума и резкости оценены по кадрам настоящей камеры.
  • Набор фонов включает реальные текстуры и фотографии из рабочего окружения.
  • В сценах есть дистракторы: предметы, которые модель не должна принимать за целевые.
  • Первая пробная партия обучена и протестирована, ошибки разобраны по категориям.

Если хотя бы два пункта не выполнены, риск получить большую партию с большим разрывом высок. Исправлять параметры дешевле до массового рендеринга, чем после. Разумеется, идеального датасета с первого раза не бывает, но дисциплина проверки превращает поиск причин из гадания в работу по списку.

Итерации вместо идеала

Мы не стремимся с первого раза сделать «фотореалистично». Рабочий подход выглядит так:

  1. Генерируем первую партию с базовым набором рандомизации.
  2. Обучаем модель и меряем метрики на реальной валидации.
  3. Разбираем ошибки и определяем доминирующий источник разрыва.
  4. Корректируем конкретные параметры: материалы, свет, шум, фоны.
  5. Повторяем цикл, пока метрики не выйдут на целевой уровень.

Обычно двух-трёх итераций достаточно, чтобы сократить разрыв до приемлемого. Именно поэтому мы предлагаем сначала тестовый датасет: он позволяет пройти первую итерацию на небольшом объёме до масштабного заказа. Описание общего процесса есть на странице Технология, а если хотите обсудить свою задачу, напишите на [email protected].


Читайте также