Почему сегментация изображений ломается на реальных данных
Сегментация изображений ломается не на тестовой выборке, а на реальном потоке кадров. Модель, которая на подготовленных данных даёт ровные контуры, в работе начинает рвать маски: границы дрожат от кадра к кадру, внутри объекта появляются дырки, а редкий класс объектов вовсе исчезает из предсказания.
Первая причина — нестабильная съёмка. Свет уходит по сменам, камера смещается на пару градусов, объект приходит под другим углом, а шум в кадре растёт: блики, пыль на оптике, смаз от движения. Модель учится не на объекте, а на условиях съёмки, и на новом освещении уверенно размечает тени вместо дефекта.
Вторая — неоднородная разметка масок. Пока аннотаторы работают по разным правилам, один обводит внешний контур, другой внутренний, спорные пиксели уходят в фон. Модель усредняет противоречия и отдаёт размытую границу там, где нужна точность до пикселя.
Третий слой — редкий класс объектов. Когда примеров единицы, а фон доминирует, модель выучивает частотное распределение и предсказывает большинство. Ошибка всплывает там, где по маске уже принимается решение: отбраковка партии, подсчёт площади дефекта, контроль геометрии. Оператор перестаёт доверять системе и возвращает ручную проверку — выигрыш от автоматизации съедается. Разбираем, как это закрывается: от протокола съёмки и регламента разметки до проверки на намеренно сложных кадрах.
Что меняется после внедрения: эффекты и метрики
Первый измеримый эффект — доля кадров, уходящих на ручную проверку. До внедрения оператор просматривает почти весь поток, после — только спорные случаи, обычно 10–20% кадров. Его время уходит на пограничные ситуации, где модель не уверена, а не на механический пересмотр всего архива.
Точность модели считаем не одной цифрой, а по классам дефектов: отдельно полнота — долю реальных дефектов, которые нашли, — и отдельно доля ложных срабатываний. Пропущенный дефект дороже лишней тревоги, поэтому пороги для критичных классов смещаем в сторону чувствительности, а границы объектов уточняем второй моделью вроде SAM: маска не «плывёт» на кадрах с низким контрастом.
Скорость обработки кадра видно по двум режимам. Пакетный разбирает архив за минуты вместо часов, потоковый успевает за камерой на линии — и узким местом становится не сеть, а постобработка масок и логика отбраковки.
Отдельно проверяем устойчивость к смене условий съёмки: другое освещение, новая оптика, сдвинувшийся ракурс, сменившаяся партия сырья. Метрика здесь — просадка качества на отложенной выборке из новых кадров; если она выше оговорённой, дообучаем модель на 5–10% свежих примеров и прогоняем проверку заново.
Число пропущенных дефектов и доля ручной проверки живут не в отчёте на сдаче, а в постоянном сравнении: эталонный набор кадров прогоняется при каждом обновлении модели, и регресс виден до выкатки на линию.
Сравнение подходов: готовая модель, дообучение, своя архитектура
Выбор между тремя режимами определяет не размер выборки, а то, насколько целевые объекты отличаются от того, что модель уже видела. Предобученная модель — Segment Anything и её аналоги — даёт рабочую маску почти без разметки, пока классы объектов универсальны: люди, транспорт, дорожное покрытие, строения. Как только появляются узкие классы — дефекты сварного шва, конкретные типы тканей, стадии спелости плода — качество падает: границы «плывут», модель уверенно выделяет не то.
Дообучение на своих данных закрывает этот разрыв, но упирается в контурную разметку: пиксельные маски размечаются в разы медленнее рамок и требуют соглашения о том, что считать границей объекта. Своя архитектура оправдана редко — когда есть жёсткие требования по скорости на устройстве, нестандартные входные каналы или нужно встроить предметную логику прямо в модель.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Предобученная модель | Классы объектов универсальны, разметки нет или мало | Не различает узкие классы, слабый контроль над границами |
| Дообучение на своих данных | Есть сотни контурно размеченных кадров, классы специфичны | Дорогая разметка, нужен контроль дрейфа при смене съёмки |
| Своя архитектура | Жёсткие требования по скорости, нестандартные каналы, предметная логика | Дольше внедряется, сложнее поддерживать и обновлять |
На практике мы начинаем с предобученной модели и дообучения — это даёт первый рабочий результат на десятках размеченных кадров. Свою схему и выбор архитектуры предлагаем только тогда, когда можем показать, что именно они дают по сравнению с дообучением: выигрыш по скорости или устойчивость к нестандартному входу. Опишите задачу — вернёмся с оценкой объёма разметки и планом.
Этапы работы: от аудита данных до передачи модели
Сегментация на старте упирается в данные, а не в архитектуру: выбор между U-Net, SegFormer и подходом на основе SAM — вопрос последнего шага. Разметка и метрики решают, будет ли модель пригодна в работе, поэтому проект идёт фиксированной последовательностью, где каждый этап закрывается проверяемым артефактом.
-
Разбор задачи и метрик. Фиксируем, что считается объектом на снимке: классы, границы, минимальный размер значимой области. Договариваемся о целевой метрике — IoU и Dice по каждому классу отдельно, а не одно усреднённое число.
-
Аудит данных. Смотрим фактический корпус: сколько кадров, как они сняты, какие классы редкие, где дубли и битые файлы. Итог — отчёт с честной оценкой, хватает ли данных и что нужно добрать.
-
Схема разметки и подготовка набора. Пишем инструкцию для аннотаторов с пограничными случаями, вводим перекрёстную проверку части масок и автопроверки на пустые и вырожденные области. Данные делим по сценариям съёмки, чтобы кадры одной серии не попали и в обучение, и в проверку.
-
Обучение и контроль. Подбираем архитектуру и разрешение под задачу, следим за переобучением, сохраняем контрольные точки. Промежуточные метрики смотрим не только средние, но и по редким классам.
-
Проверка на отложенной выборке. Финальная оценка идёт на тесте, который не участвовал ни в обучении, ни в подборе параметров. К метрикам прикладываем разбор худших примеров — где модель путает классы и почему.
-
Передача модели и обучение команды. Отдаём веса в формате для инференса, препроцессинг, правила версионирования и скрипт воспроизведения. Показываем, как дообучить модель на новых данных и как замечать падение качества.
Что вы получаете на руки: разметка, веса, документация
Модель, которая хорошо работает на демонстрационных примерах, и модель, которую можно эксплуатировать, — разные вещи. Разница в том, что после приёмки остаётся на руках: воспроизводимый набор данных, веса, к которым привязаны конкретные метрики, и правила, по которым решение обновляется без нас. Поэтому сдаём не «обученную сеть», а комплект, где каждый артефакт можно проверить и пересобрать.
- Размеченный набор данных — маски по всем целевым классам в едином формате, с фиксированным разделением на обучение, валидацию и отложенный контроль. Разметка версионируется: видно, какие области правились, кем и на каком основании, а метрика любой версии модели воспроизводится на том же срезе данных.
- Обученные веса модели — итоговые и контрольные точки обучения вместе с конфигурацией, при которой они получены: архитектура (U-Net, SegFormer, SAM-подход — под задачу), схема аугментаций, параметры обучения, фиксация случайности. Запуск повторяется и даёт сопоставимый результат.
- Версии разметки — журнал изменений с причиной правок и связью «версия данных → метрика». Это позволяет отличить улучшение модели от улучшения разметки и не переобучаться на ошибках аннотаторов.
- Схема конвейера — предобработка, нарезка крупных изображений на фрагменты с перекрытием и обратной сборкой, постобработка масок (фильтрация мелких областей, сглаживание границ), формат выхода под вашу систему.
- Регламент контроля качества — метрика согласия между разметчиками (IoU по классам) и доля спорных пикселей; маска уходит на перепроверку, если расхождение выше порога, а не «на глаз».
- Регламент переобучения — триггеры (падение метрики на новом домене, дрейф съёмки, новый класс объектов), порядок действий, кто принимает решение о выкатке и как валидируется новая версия перед заменой текущей.
- Документация по модели — карточка модели с данными обучения, границами применимости, известными классами ошибок, инструкцией запуска и отката на предыдущие веса.
- Скрипты обучения и оценки — воспроизводимый запуск на вашей инфраструктуре, чтобы переобучение не превращалось в разовый проект.
Кейс: контроль дефектов на производственной линии
На участке контроль дефектов держался на операторах: из потока проверялась только выборка кадров, остальное уходило в отгрузку. К концу смены внимание падает, и мелкие царапины, вмятины и непровар по кромке всплывали уже на входном контроле у заказчика — это переделка партии, повторная логистика и простой линии.
Сначала разметили несколько тысяч кадров с реальной линии, затем обучили сегментационную модель на базе SAM и дообучили её под четыре класса дефектов, отделив их от допустимых следов обработки. Прогон модели поставили в поток камеры: решение принимается до перехода детали на следующую операцию, а не на финальной приёмке.
Метрики до и после
| Метрика | До | После |
|---|---|---|
| Доля кадров с ручной проверкой | выборка, около трети потока | весь поток, оператор смотрит только спорные кадры |
| Пропущенный дефект в отгрузке | единичные случаи каждую смену | разбирается на участке, до следующей операции |
| Состав дефектов | ловились в основном крупные | мелкие царапины и непровар кромки тоже в контроле |
| Ложные срабатывания | не отслеживались | порог подобран так, чтобы линия не вставала |
Порог уверенности настроили отдельно: пограничный кадр модель помечает как спорный и отдаёт оператору, линия из-за него не останавливается. Это убрало главную причину, по которой сплошной контроль раньше не приживался — поток ложных срабатываний, после которого операторы перестают доверять системе.
Дообучение на новых кадрах идёт тем же контуром: разметка, проверка на отложенной выборке, замена весов после подтверждения метрик.
Чем отличается сегментация изображений от детекции объектов?
Детекция отвечает на вопрос «где объект»: модель возвращает прямоугольник с координатами и класс. Сегментация отвечает на вопрос «какие именно пиксели принадлежат объекту»: на выходе маска размером с исходный кадр, где каждому пикселю присвоен класс или метка фона.
Рамка всегда захватывает фон и не разделяет объекты, которые перекрываются или касаются друг друга. Для учёта этого достаточно: обнаружили, посчитали, отправили на проверку. Но когда нужно измерить площадь дефекта, отделить листву от грунта или вырезать предмет по контуру, прямоугольник даёт погрешность, которую потом нечем исправить — маска строится по реальной границе.
Разница в трудозатратах проявляется на разметке. Рамка — секунды на объект, маску рисуют минутами, а требования к согласованности аннотаторов выше: спорные пиксели на границе размывают обучение. Заказчик платит за эту сложность только тогда, когда итоговое решение действительно использует пиксельную точность.
Рамки берут для подсчёта и отслеживания объектов, поиска по каталогу, сигнализации о появлении объекта в кадре. Маски — для медицинских снимков, дефектоскопии, аэрофотосъёмки, вырезания фона и любых расчётов площади и формы.
На практике это не взаимоисключающий выбор: детектор предлагает регионы, а модель сегментации (U-Net, SegFormer и родственные архитектуры) уточняет границы внутри них. Гибридная схема снижает объём дорогой разметки и держит точность на пиксельном уровне там, где она нужна.
Технические сомнения перед стартом проекта
Инженеры заказчика задают похожие вопросы, и почти все они про процесс, а не про архитектуру: сколько данных готовить, как поймать переобучение, что останется внутри периметра. Ниже — короткие ответы, с которых начинается техническая часть обсуждения.
Сколько изображений нужно разметить?
Считаем объём от числа классов и разнообразия сцен, а не от размера архива. Сначала небольшой набор и базовая модель, затем разбор ошибок на отложенной выборке — и прицельная разметка провальных сцен. Точность границ объектов влияет на результат сильнее, чем количество кадров.
Как понять, что модель переобучилась?
Держим отложенную выборку, собранную по другим съёмочным дням: расхождение метрик на обучении и на ней — сигнал остановиться, усилить регуляризацию и добрать редкие сцены. Переобученная модель уверенно ошибается на новых кадрах, поэтому приёмку делаем только на них.
Что делать, когда кадры устареют?
Смена оптики, света или ракурса — обычная причина падения качества. Закладываем дообучение: свежие кадры с ручной правкой возвращают модель к прежним метрикам без полной пересборки. Разметку и веса храним так, чтобы откат на прошлую версию занимал один запуск.
Можно ли запустить решение на нашем оборудовании?
Да: передаём конфигурацию обучения, веса и скрипты подготовки разметки, ваши инженеры разворачивают всё у себя. Кадры не покидают периметр, при необходимости обучение идёт на изолированном стенде без внешнего доступа.
Обсудим задачу и вернёмся с оценкой и планом
Чтобы оценка проекта опиралась на факты, а не на предположения, для старта нужны примеры реальных снимков, перечень классов и требования к точности. По ним мы воспроизводим разметку на небольшой выборке и проверяем, отделима ли целевая область от фона — часто уже здесь видно, что часть классов неразличима без смены условий съёмки.
В ответ присылаем разбор задачи, состав работ, схему проверки качества и план работ с точками согласования. Пилотный запуск идёт на ограниченном наборе данных: метрики считаем на ваших снимках, и решение о полном объёме принимается по ним, а не по обещаниям.
- Что потребуется от вас: 100–300 снимков на каждый сценарий съёмки, эксперт для проверки спорных случаев, доступ к среде развёртывания.
- Разбор задачи: тип сегментации — бинарная, многоклассовая, по экземплярам — и формат результата: маски, полигоны, площади объектов.
- Состав работ: разметка набора данных, обучение и сравнение архитектур, постобработка масок, встраивание модели в ваш процесс.
- Схема проверки качества: отложенная выборка, доля верных пикселей и пересечение предсказанных масок с эталоном, отдельный контроль на редких классах.
- Пилотный запуск: обучение на части данных и замер метрик на реальных снимках; критерии приёмки фиксируем до начала работ.
- План работ: этапы, сроки, точки согласования и ответственный с каждой стороны. План передачи: веса модели, конфигурации запуска, инструкция по дообучению на новых данных.
Опишите задачу — вернёмся с оценкой и планом.







