Syntidata
Главная / Блог / Синтетические данные / Смешивание синтетики и реальных данных: пропорции и стратегии

Смешивание синтетики и реальных данных: пропорции и стратегии

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

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

Смешивание синтетики и реальных данных: пропорции и стратегии

Зачем вообще смешивать

Синтетика даёт масштаб, управляемость и точную разметку. Реальные данные дают настоящее распределение и страхуют от разрыва доменов. Каждый источник закрывает слабость другого, поэтому в большинстве проектов оптимальный вариант не «или-или», а грамотная комбинация. Вопрос в том, как именно её устроить: в каких пропорциях, в каком порядке и с какими весами.

Единого рецепта нет, но есть четыре проверенные стратегии и набор правил, которые помогают выбрать между ними. Начнём со стратегий.

Стратегия первая: предобучение на синтетике, дообучение на реальных

Самая популярная схема. Сначала модель обучается на большом синтетическом наборе и осваивает форму, структуру объекта, разные условия и ракурсы. Затем её донастраивают на небольшом числе реальных кадров, обычно с пониженной скоростью обучения.

Когда подходит:

  • реальных размеченных кадров мало (от сотни до нескольких тысяч);
  • синтетика покрывает основную вариативность задачи;
  • нужно быстро адаптироваться к новой камере или площадке: достаточно небольшой реальной выборки с нового места.

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

Стратегия вторая: совместное обучение на смешанной выборке

Оба источника объединяются в один набор, и модель обучается на нём с самого начала. Доля каждого источника в батче задаётся явно.

Когда подходит:

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

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

Стратегия третья: синтетика для недостающего, реальность для основного

Здесь синтетика используется точечно: закрывает дыры в реальном наборе. Нет редких дефектов — добавляем их. Не хватает ночных кадров — генерируем. Мало примеров определённого ракурса — докручиваем.

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

Стратегия четвёртая: аугментация реальных кадров синтетическими объектами

Гибридный подход: берём настоящие фоны и вставляем в них отрендеренные объекты, получая композитные кадры. Фон и условия съёмки настоящие, объекты искусственные с точной разметкой. Это сильный способ сократить разрыв по окружению и одновременно получить аннотации без ручной работы. Подробнее о таких приёмах на странице Аугментация датасетов.

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

Какие пропорции брать

Хочется получить цифру, и ориентировочные диапазоны есть, но воспринимайте их как стартовую точку для эксперимента.

Исходная ситуацияСтартовая доля реальных данныхСхема
Реальных кадров почти нет (до 100)5–10% по объёму, только в валидации и финальной настройкеПредобучение, затем дообучение
Реальных несколько сотен10–20%Предобучение с последующим дообучением
Реальных несколько тысяч20–40%Совместное обучение с передискретизацией
Реальных много, но с перекосами50–80%Реальная основа, синтетика на пробелы

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

Как подобрать пропорцию экспериментально

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

  1. Зафиксируйте реальную валидацию (хотя бы 100–300 размеченных кадров).
  2. Обучите модели с разной долей реальных данных: 0%, 10%, 25%, 50%, 100% от доступного объёма.
  3. Постройте график метрики от доли реальных данных.
  4. Найдите точку, после которой прирост становится незначительным.

Часто выясняется, что первые 10–20% реальных данных дают основную часть прироста, а остальное добавляет совсем немного. Это прямой аргумент не тратить бюджет на массовую ручную съёмку и разметку. Параллельно полезно построить кривую по объёму синтетики, о чём шла речь в статье Сколько изображений нужно для обучения детектора.

Подводные камни смешивания

Несовпадение правил разметки

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

Несовпадение статистики

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

Утечка в валидацию

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

Забывание при дообучении

Если на втором этапе реальные данные не содержат какого-то класса, модель может утратить способность его находить. Включайте в дообучение небольшую долю синтетики («реплей»), чтобы сохранить знания.

Слишком хорошая синтетика на синтетической валидации

Высокие метрики на отложенной синтетике не доказывают ничего. Решающая оценка всегда на реальности.

Веса и дискретизация

Есть две технические возможности управлять вкладом источников.

Первая — передискретизация: реальные кадры повторяются в эпохе чаще синтетических. Простая и понятная, но с риском переобучения на небольшой реальной выборке при чрезмерном повторении.

Вторая — взвешивание потерь: ошибки на реальных примерах умножаются на коэффициент больше единицы. Эффективно, но требует аккуратной настройки, чтобы обучение оставалось стабильным.

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

Когда синтетики достаточно без реальной части

Бывают задачи, где реальных данных для обучения почти не требуется. Это случаи с хорошо определёнными предметами, точными моделями и контролируемой средой, например склад однотипных изделий с постоянной камерой. Тогда допустимо обучаться почти целиком на рендерах, а реальные кадры оставить только для валидации.

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

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

Рабочая схема для нового проекта

Если вы начинаете с нуля и сомневаетесь, предлагаем такую последовательность:

  1. Соберите минимум реальных кадров: хотя бы 100–200 для валидации. Это обязательный минимум, который окупится на всех этапах.
  2. Получите тестовый синтетический датасет и обучите на нём базовую модель.
  3. Оцените на реальной валидации, найдите слабые места.
  4. Добавьте целевую синтетику и небольшую реальную долю для дообучения.
  5. Подберите пропорции по кривой и зафиксируйте их.
  6. Повторяйте цикл при смене площадки, камеры или ассортимента.

Принципы создания наших наборов и порядок работы описаны в разделе Технология. Чтобы обсудить конкретную задачу и подобрать стратегию, напишите нам на [email protected]: расскажите, сколько реальных данных у вас уже есть и каких условий не хватает.


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