Как проверить качество синтетического датасета
Синтетические данныеКрасивые рендеры ничего не гарантируют. Показываем, как проверить синтетический датасет до обучения и после него, какие метрики смотреть и когда останавливать проект.

Почему красивая картинка не доказательство
Синтетический датасет легко показать: достаточно выложить десять эффектных кадров. Но глаз оценивает правдоподобие, а модель реагирует на другое: на статистику текстур, форму контуров, распределение размеров объектов, шум матрицы, баланс классов. Датасет, который выглядит убедительно для человека, может давать слабую модель, а грубоватый на вид, но хорошо рандомизированный набор оказывается рабочим.
Поэтому проверка качества должна быть процедурой, а не впечатлением. Мы делим её на пять уровней: технический, статистический, визуальный, модельный и эксплуатационный. Каждый уровень отвечает на свой вопрос и ловит свой класс ошибок.
Уровень 1. Техническая проверка
Самая дешёвая и самая недооценённая стадия. Она выполняется скриптом по всему датасету и не требует обучения.
Что проверяем автоматически
- каждому изображению соответствует файл разметки и наоборот;
- рамки лежат внутри кадра, ширина и высота положительны;
- маски не пустые и не выходят за границы объекта;
- идентификаторы классов совпадают со словарём заказчика;
- нет дубликатов кадров и почти одинаковых соседних сцен;
- разрешение, цветовой формат и канальность одинаковы везде;
- карты глубины и ключевые точки согласованы с рамками.
Для синтетики есть важное преимущество: разметка рождается из геометрии сцены, поэтому смещения рамок на пиксель, типичные для ручной работы, здесь отсутствуют. Зато появляются свои дефекты: объект полностью закрыт другим, но рамка всё равно записана; объект обрезан краем кадра на девяносто процентов; микроскопический объект в несколько пикселей. Для таких случаев задаются пороги видимости, и мы публикуем их в описании датасета.
Уровень 2. Статистическая проверка
Здесь сравниваем распределения синтетики и ожиданий от реальной эксплуатации. Нам нужны ответы на вопросы, которые в реальных данных часто остаются без внимания.
- Как распределены размеры объектов в пикселях? Если в реальности основная масса объектов маленькая, а в датасете крупная, детектор не научится находить мелочь.
- Как распределены положения объектов в кадре? Нет ли «мёртвых зон», где объекты не встречаются никогда?
- Сколько объектов в среднем на кадр и какова доля перекрытий?
- Как распределены ракурсы, углы наклона и расстояния до камеры?
- Как сбалансированы классы и сколько кадров без объектов вообще?
Результат удобно оформлять как набор гистограмм, наложенных на оценки по реальному потоку. Такую оценку можно получить даже по небольшому набору реальных кадров или по описанию установки камер.
Хороший признак зрелого датасета: по гистограммам видно, что каждое отклонение от реальности сделано намеренно, а не получилось случайно.
Уровень 3. Визуальный аудит
Автоматика не заменяет глаз. Мы просматриваем случайную выборку кадров, а также кадры из «хвостов» распределений: самые тёмные, самые перегруженные, с максимальным числом объектов. Смотрим на конкретные артефакты.
Типичные визуальные дефекты
- Пересечение геометрии. Предмет частично проваливается в стол или соседний предмет.
- Парение. Объект висит над поверхностью без тени.
- Неверный масштаб. Бутылка размером с чайник, потому что в сцене смешаны единицы измерения.
- Мёртвые материалы. Слишком ровная поверхность без микрорельефа и бликов. О материалах мы писали в разделе про 3D-моделирование и визуализацию.
- Неестественная резкость. Реальная камера даёт размытие, шум и хроматические искажения, а рендер по умолчанию идеально чёткий.
Для крупных датасетов просматривать всё невозможно, поэтому используем выборку. Размер выборки зависит от допустимой доли брака: чтобы с высокой уверенностью утверждать, что брака меньше одного процента, достаточно просмотреть несколько сотен случайных кадров.
Уровень 4. Модельная проверка
Главная проверка: учим модель на синтетике и тестируем на реальных кадрах. Только она показывает, насколько велик разрыв, о котором мы писали в статье про domain gap.
Минимальный протокол
- Берём небольшой реальный тестовый набор. Его не используем при обучении ни в каком виде. Достаточно нескольких сотен кадров с аккуратной разметкой, лучше больше.
- Обучаем базовую модель только на синтетике.
- Считаем метрики на реальном тесте: среднюю точность, точность и полноту по классам. Определения метрик есть в статье про метрики детекции.
- Сравниваем с эталоном: моделью на реальных данных, если она есть, или с моделью, предобученной на открытом наборе.
- Разбираем ошибки вручную: что модель пропускает, что путает, где даёт ложные срабатывания.
Как читать результат
| Симптом | Вероятная причина | Что делаем |
|---|---|---|
| Высокая полнота, низкая точность | Фон синтетики беднее реального | Усиливаем разнообразие фонов и добавляем отрицательные примеры |
| Низкая полнота на мелких объектах | Мелкие объекты редки в датасете | Меняем распределение масштабов |
| Падение на плохом освещении | Освещение слишком благополучное | Расширяем диапазон освещённости и добавляем шум |
| Путает похожие классы | Недостаточно мелких различий в моделях | Добавляем вариации деталей, текстуры, маркировку |
| Хорошо на одной камере, плохо на другой | Не учтена оптика и обработка | Рандомизируем параметры камеры и сжатие |
Такая таблица превращает неудачу в план работ. Самое важное: каждая итерация меняет генерацию, а не только параметры обучения. Это принципиальное отличие синтетики: источник данных управляем, и ошибки можно исправлять там, где они возникли.
Уровень 5. Эксплуатационная проверка
Лабораторный тест не равен боевой работе. После запуска модели нужно собирать статистику на реальном потоке: уверенность предсказаний, долю пропусков при выборочной проверке, дрейф условий съёмки. Если появляются новые ситуации, например другая модель упаковки или новый ракурс камеры, они заносятся в задание на генерацию следующей партии.
Здесь удобно построить небольшой конвейер: ошибки модели на реальном потоке попадают в разбор, из разбора формируется описание новой сцены, сцена рендерится и добавляется в обучение. Подобные цепочки мы собираем в рамках направления автоматизации.
Что просить у поставщика датасета
Если вы заказываете датасет у подрядчика, включая нас, закрепите в договоре перечень артефактов проверки. Это защищает обе стороны.
- описание генерации: какие параметры рандомизируются и в каких диапазонах;
- отчёт по статистике: гистограммы размеров, положений, классов;
- результаты автоматических проверок разметки;
- набор образцов для визуального аудита;
- условия приёмки: целевая метрика на вашем реальном тесте и порядок доработки при недостижении;
- состав тестового датасета, который предоставляется по запросу до начала основной работы.
Последний пункт особенно важен. Преимущества синтетики раскрываются на больших объёмах, поэтому пилот на нескольких десятках кадров мало что скажет о конечном результате. Разумный компромисс: небольшой тестовый набор для проверки формата и разметки и затем пилотная партия для проверки модели на ваших реальных кадрах.
Когда пора остановиться
Бывает, что несколько итераций не приближают метрику к цели. Признаки того, что проблема не в синтетике как таковой:
- на реальном тесте разметка заказчика неоднородна, и потолок точности ограничен ею, а не моделью;
- задача требует признаков, которые невозможно воспроизвести, например тонкой текстуры живых тканей;
- реальный тест слишком мал, и метрики прыгают от запуска к запуску;
- классы различаются по смыслу, а не по виду.
В таких случаях честный вариант — пересмотреть постановку задачи или добавить реальные данные, а не продолжать крутить рендер. Как выбрать долю реальных данных, описано в статье про смешивание датасетов.
Сколько стоит проверка и кто её делает
Частое возражение: «проверка удорожит проект». На деле стоимость определяется тем, что автоматизировано. Технические и статистические проверки пишутся один раз и затем запускаются на каждой партии за минуты. Основные трудозатраты приходятся на визуальный аудит и разбор ошибок модели, и эти часы окупаются первой же найденной проблемой в генерации.
Хорошая практика — разделить роли. Тот, кто генерирует датасет, прогоняет автоматические проверки до передачи. Тот, кто будет обучать модель, независимо смотрит выборку и пробует базовое обучение. Так находятся ошибки, которые автор уже не замечает, например неверный масштаб, который он считает «нормальным», потому что сам его выбирал.
Версионирование и повторяемость
Любой датасет должен быть воспроизводим. Фиксируйте версию сцены, набор параметров рандомизации и начальное значение генератора случайных чисел. Тогда на вопрос «почему на этой партии метрика упала» можно ответить сравнением двух конфигураций, а не догадками. Мы храним такие описания рядом с данными и передаём заказчику вместе с отчётом, чтобы дополнительные партии были совместимы с предыдущими.
Итог
Хорошая проверка синтетического датасета занимает дни, а не недели, если она автоматизирована с самого начала. Технический и статистический уровни проходят скриптом, визуальный занимает пару часов, модельный — одно обучение и одно сравнение. Зато она предотвращает самую дорогую ошибку: потратить месяцы на модель, которая не работает вне рендера.
Хотите оценить свой проект? Напишите на [email protected], опишите задачу и условия съёмки, и мы подготовим план проверки и тестовый набор.
Нужен датасет под вашу задачу?
Подготовим тестовую партию изображений с разметкой, чтобы вы могли проверить подход на своей модели. Напишите на [email protected] или оставьте заявку.
Читайте также
Синтетические данныеСемь мифов о синтетических данных
Одни считают синтетику панацеей, другие игрушкой для презентаций. Правда лежит посередине, и её можно проверить на практике. Разбираем семь мифов по очереди.
Синтетические данныеЧто такое синтетические данные и почему о них заговорили все
Синтетические данные — это изображения и разметка, созданные программно, а не снятые камерой. Разбираем, как они устроены, откуда взялся интерес к ним и в каких задачах они действительно работают.
Синтетические данныеСмешивание синтетики и реальных данных: пропорции и стратегии
Чистая синтетика и чистая реальность — две крайности, между которыми находится большинство рабочих решений. Разбираем стратегии смешивания, ориентиры по пропорциям и способы выбрать свою.