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

Парадокс редких событий
Модель, которая находит то, что и так встречается тысячами, приносит умеренную пользу. Настоящая ценность появляется там, где нужно поймать редкое: трещину в одной детали из десяти тысяч, посторонний предмет на путях, нештатное положение заготовки, нарушение, которое случается раз в смену. Именно эти события дорого пропускать. И именно по ним нет данных: чтобы собрать сотни примеров события, происходящего раз в месяц, придётся ждать годы.
Получается замкнутый круг: чтобы модель научилась находить редкое, ей нужны примеры, а примеры редкого по определению не накопить. Выхода из него три, и они хорошо сочетаются: синтезировать примеры, правильно сбалансировать обучение и честно проверить результат на тех единичных реальных случаях, что у вас есть.
Какие бывают редкие объекты
Задачи различаются по природе «редкости», и подход зависит от неё.
- Редкие дефекты и аномалии на серийных изделиях: основная масса нормальная, брак единичен.
- Опасные ситуации: возгорание, падение, утечка, проникновение. Воспроизвести их для съёмки нельзя или опасно.
- Редкие виды объектов: нестандартные модификации, архивные позиции, штучные изделия.
- Ещё не существующие объекты: прототипы, новая продукция, элементы инфраструктуры, которые пока не построены.
- Редкие условия: экстремальная погода, ночь, туман, неисправное освещение.
Для всех этих случаев реальная съёмка либо невозможна, либо чрезмерно дорога, либо даёт единицы кадров.
Синтез как основной источник примеров
Когда объект или дефект можно описать геометрически, мы воспроизводим его в 3D и получаем любое число вариаций. Рассмотрим на примере дефектов.
Дефекты поверхности
Трещины, сколы, вмятины, царапины, коррозия, непроклей. Мы моделируем их процедурно: задаём тип дефекта, диапазон размеров, положение на поверхности, глубину и ориентацию. Материалы и освещение подбираем так, чтобы дефект проявлялся на камере так же, как в реальных условиях. Из одной модели детали получаются тысячи вариантов с дефектами в разных местах, разной величины и на разном фоне.
Нештатные положения
Деталь лежит не той стороной, перекошена, сложена не по схеме, торчит из тары. Физическая симуляция позволяет бросать объекты на поверхность и получать естественные положения покоя, а затем целенаправленно создавать «неправильные» конфигурации.
Объекты, которых ещё нет
Если у заказчика есть CAD-модель будущего изделия, мы можем подготовить датасет до того, как изделие появится на линии. К моменту запуска производства модель обнаружения уже обучена, и её не нужно ждать несколько месяцев, пока накопится реальный набор. О том, как строятся и оптимизируются такие модели, подробнее в разделе 3D-моделирование и визуализация.
Работа с дисбалансом классов
Даже имея синтетику, легко попасть в ловушку дисбаланса: «нормальных» примеров много, «редких» мало. Сеть учится минимизировать общую ошибку и охотно игнорирует то, что составляет доли процента. Что делать:
- Выравнивайте классы на этапе генерации. Нет необходимости воспроизводить реальное соотношение: синтетических дефектных кадров можно делать столько же, сколько нормальных, а то и больше.
- Используйте взвешивание потерь или фокусные функции потерь, которые усиливают вклад редкого класса.
- Следите за метриками по классам, а не только за средним значением. Высокий общий mAP может скрывать нулевой recall по самому важному редкому классу.
- Не забывайте о ложных срабатываниях. Если на этапе эксплуатации нормальные объекты будут встречаться в тысячи раз чаще дефектных, даже малая доля ложных тревог превратится в лавину. Поэтому нормальные примеры должны быть разнообразными и представительными.
Пример расчёта: при доле брака 0,1% и доле ложных срабатываний 1% на каждые 10 000 изделий приходится около 10 реальных дефектов и около 100 ложных тревог. Оператор будет тонуть в тревогах, поэтому точность на нормальном классе так же важна, как чувствительность к редкому.
Реальные редкие примеры: что с ними делать
Если у вас есть хотя бы несколько настоящих образцов дефекта или события, это огромная ценность. Использовать их стоит в трёх ролях.
Первая роль — эталон для синтеза. По реальным снимкам мы определяем, как дефект выглядит на камере: форма, контраст, текстура. Это настраивает генератор так, чтобы синтетические дефекты были похожи на настоящие.
Вторая роль — валидация. Единичные реальные случаи нельзя тратить на обучение, их нужно приберечь для проверки. Если обученная на синтетике модель находит реальные дефекты, которых она никогда не видела, это лучший сигнал, что синтетика пригодна. Если не находит, ищем причину и корректируем генерацию.
Третья роль — дообучение. После проверки часть реальных случаев можно включить в финальную настройку, дополнительно приблизив модель к реальной картинке. Подробности подхода в статье Смешивание синтетики и реальных данных.
Когда синтез не помогает
Честно об ограничениях. Синтетика плохо работает там, где мы не умеем описать явление. Если вы не знаете, как выглядит новый тип дефекта, мы не сможем его нарисовать. Если причина брака скрыта внутри материала и в видимом диапазоне не проявляется, рендер ничего не добавит. И если физика явления слишком сложна (например, поведение жидкостей, дыма, мелкой органики), приближение в 3D будет грубым, а domain gap большим.
В таких случаях стоит рассмотреть альтернативы: методы обнаружения аномалий, обучающиеся только на «нормальных» примерах и отмечающие отклонения, либо целенаправленный сбор реальных данных с помощью простых триггеров. Часто выигрывает комбинация: детектор известных дефектов на синтетике плюс модель аномалий для неизвестных.
Практический алгоритм
Ниже последовательность, которую мы рекомендуем для задач с редкими объектами.
- Составьте каталог редких случаев вместе с технологами или экспертами предметной области: что именно нужно находить, как выглядит, в каких условиях.
- Соберите всё доступное: фото реальных случаев, чертежи, описания, нормативы допусков.
- Подготовьте 3D-модели и параметры дефектов.
- Сгенерируйте тестовую партию и обучите быструю модель.
- Проверьте на реальных редких примерах, разберите промахи.
- Скорректируйте генерацию и масштабируйте объём.
- Организуйте непрерывное пополнение: любой новый реальный случай из эксплуатации попадает в валидационный набор и в источник для расширения генератора.
Разметка редких классов
Для редких объектов особенно критична точность разметки: ошибка в паре аннотаций на фоне малой выборки способна сломать обучение. В синтетике этой проблемы нет, потому что маска и рамка вычисляются по геометрии. Это даёт ещё одно преимущество, которое мы подробно описали на странице Разметка: маски и баундинг-боксы: дефект любого размера получает идеальную маску, а не приблизительный контур, нарисованный вручную по нескольким пикселям.
Мини-история: поиск посторонних предметов
Приведём обезличенный пример. Предприятию нужно обнаруживать посторонние предметы на транспортной ленте: болты, перчатки, куски упаковки. Событие редкое, на видеозаписях за неделю нашлось лишь несколько эпизодов, и все с разными предметами. Для обучения этого недостаточно, а специально подбрасывать предметы на действующую линию нельзя.
Решение строилось на синтетике: конструкторы создали модели ленты и типовой продукции, в сценах разбрасывались десятки категорий посторонних предметов разной формы и цвета, с разными положениями и перекрытиями. Реальные эпизоды отложили в валидацию. Первая версия модели нашла часть реальных случаев и пропустила предметы тёмного цвета на тёмной ленте. Анализ показал, что в генерации контраст был завышен. После корректировки материалов и освещения recall на реальных эпизодах заметно вырос.
Урок: даже при отсутствии «нормального» обучающего набора можно построить рабочую систему, если есть небольшая честная проверка на реальности и готовность итерировать.
Итог
Редкие объекты не приговор, а нормальная инженерная задача. Основные принципы: синтезировать то, что можно описать; выравнивать классы при обучении; беречь настоящие редкие примеры для проверки; следить не только за пропусками, но и за ложными тревогами. Если у вас есть задача такого типа, пришлите описание и несколько примеров на [email protected]. Мы подготовим тестовый датасет, и вы увидите, находит ли обученная на нём модель ваши реальные случаи. Ознакомиться с готовыми наборами можно в разделе Примеры датасетов.
Нужен датасет под вашу задачу?
Подготовим тестовую партию изображений с разметкой, чтобы вы могли проверить подход на своей модели. Напишите на [email protected] или оставьте заявку.
Читайте также
Синтетические данныеСемь мифов о синтетических данных
Одни считают синтетику панацеей, другие игрушкой для презентаций. Правда лежит посередине, и её можно проверить на практике. Разбираем семь мифов по очереди.
Синтетические данныеСинтетические и реальные данные: честное сравнение
Спор «синтетика против реальности» обычно ведётся лозунгами. Мы сравниваем оба подхода по конкретным критериям и показываем, в каких случаях выигрывает каждый, а в каких разумнее их объединить.
Синтетические данныеСинтетические данные и приватность
Фотографии людей, документов и частных помещений создают юридические и репутационные риски. Рассказываем, как синтетические данные снимают большую часть этих проблем и какие вопросы остаются открытыми.