Обучение моделей сегментации: SAM, U-Net, SegFormer

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Часто задаваемые вопросы

Почему сегментация изображений ломается на реальных данных

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

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

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

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

Что меняется после внедрения: эффекты и метрики

Первый измеримый эффект — доля кадров, уходящих на ручную проверку. До внедрения оператор просматривает почти весь поток, после — только спорные случаи, обычно 10–20% кадров. Его время уходит на пограничные ситуации, где модель не уверена, а не на механический пересмотр всего архива.

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

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

Отдельно проверяем устойчивость к смене условий съёмки: другое освещение, новая оптика, сдвинувшийся ракурс, сменившаяся партия сырья. Метрика здесь — просадка качества на отложенной выборке из новых кадров; если она выше оговорённой, дообучаем модель на 5–10% свежих примеров и прогоняем проверку заново.

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

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

Выбор между тремя режимами определяет не размер выборки, а то, насколько целевые объекты отличаются от того, что модель уже видела. Предобученная модель — Segment Anything и её аналоги — даёт рабочую маску почти без разметки, пока классы объектов универсальны: люди, транспорт, дорожное покрытие, строения. Как только появляются узкие классы — дефекты сварного шва, конкретные типы тканей, стадии спелости плода — качество падает: границы «плывут», модель уверенно выделяет не то.

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

Вариант Когда подходит Ограничения
Предобученная модель Классы объектов универсальны, разметки нет или мало Не различает узкие классы, слабый контроль над границами
Дообучение на своих данных Есть сотни контурно размеченных кадров, классы специфичны Дорогая разметка, нужен контроль дрейфа при смене съёмки
Своя архитектура Жёсткие требования по скорости, нестандартные каналы, предметная логика Дольше внедряется, сложнее поддерживать и обновлять

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

Этапы работы: от аудита данных до передачи модели

Сегментация на старте упирается в данные, а не в архитектуру: выбор между U-Net, SegFormer и подходом на основе SAM — вопрос последнего шага. Разметка и метрики решают, будет ли модель пригодна в работе, поэтому проект идёт фиксированной последовательностью, где каждый этап закрывается проверяемым артефактом.

  1. Разбор задачи и метрик. Фиксируем, что считается объектом на снимке: классы, границы, минимальный размер значимой области. Договариваемся о целевой метрике — IoU и Dice по каждому классу отдельно, а не одно усреднённое число.

  2. Аудит данных. Смотрим фактический корпус: сколько кадров, как они сняты, какие классы редкие, где дубли и битые файлы. Итог — отчёт с честной оценкой, хватает ли данных и что нужно добрать.

  3. Схема разметки и подготовка набора. Пишем инструкцию для аннотаторов с пограничными случаями, вводим перекрёстную проверку части масок и автопроверки на пустые и вырожденные области. Данные делим по сценариям съёмки, чтобы кадры одной серии не попали и в обучение, и в проверку.

  4. Обучение и контроль. Подбираем архитектуру и разрешение под задачу, следим за переобучением, сохраняем контрольные точки. Промежуточные метрики смотрим не только средние, но и по редким классам.

  5. Проверка на отложенной выборке. Финальная оценка идёт на тесте, который не участвовал ни в обучении, ни в подборе параметров. К метрикам прикладываем разбор худших примеров — где модель путает классы и почему.

  6. Передача модели и обучение команды. Отдаём веса в формате для инференса, препроцессинг, правила версионирования и скрипт воспроизведения. Показываем, как дообучить модель на новых данных и как замечать падение качества.

Что вы получаете на руки: разметка, веса, документация

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

  • Размеченный набор данных — маски по всем целевым классам в едином формате, с фиксированным разделением на обучение, валидацию и отложенный контроль. Разметка версионируется: видно, какие области правились, кем и на каком основании, а метрика любой версии модели воспроизводится на том же срезе данных.
  • Обученные веса модели — итоговые и контрольные точки обучения вместе с конфигурацией, при которой они получены: архитектура (U-Net, SegFormer, SAM-подход — под задачу), схема аугментаций, параметры обучения, фиксация случайности. Запуск повторяется и даёт сопоставимый результат.
  • Версии разметки — журнал изменений с причиной правок и связью «версия данных → метрика». Это позволяет отличить улучшение модели от улучшения разметки и не переобучаться на ошибках аннотаторов.
  • Схема конвейера — предобработка, нарезка крупных изображений на фрагменты с перекрытием и обратной сборкой, постобработка масок (фильтрация мелких областей, сглаживание границ), формат выхода под вашу систему.
  • Регламент контроля качества — метрика согласия между разметчиками (IoU по классам) и доля спорных пикселей; маска уходит на перепроверку, если расхождение выше порога, а не «на глаз».
  • Регламент переобучения — триггеры (падение метрики на новом домене, дрейф съёмки, новый класс объектов), порядок действий, кто принимает решение о выкатке и как валидируется новая версия перед заменой текущей.
  • Документация по модели — карточка модели с данными обучения, границами применимости, известными классами ошибок, инструкцией запуска и отката на предыдущие веса.
  • Скрипты обучения и оценки — воспроизводимый запуск на вашей инфраструктуре, чтобы переобучение не превращалось в разовый проект.

Кейс: контроль дефектов на производственной линии

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

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

Метрики до и после

Метрика До После
Доля кадров с ручной проверкой выборка, около трети потока весь поток, оператор смотрит только спорные кадры
Пропущенный дефект в отгрузке единичные случаи каждую смену разбирается на участке, до следующей операции
Состав дефектов ловились в основном крупные мелкие царапины и непровар кромки тоже в контроле
Ложные срабатывания не отслеживались порог подобран так, чтобы линия не вставала

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

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

Чем отличается сегментация изображений от детекции объектов?

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

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

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

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

На практике это не взаимоисключающий выбор: детектор предлагает регионы, а модель сегментации (U-Net, SegFormer и родственные архитектуры) уточняет границы внутри них. Гибридная схема снижает объём дорогой разметки и держит точность на пиксельном уровне там, где она нужна.

Технические сомнения перед стартом проекта

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

Сколько изображений нужно разметить?

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

Как понять, что модель переобучилась?

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

Что делать, когда кадры устареют?

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

Можно ли запустить решение на нашем оборудовании?

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

Обсудим задачу и вернёмся с оценкой и планом

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

В ответ присылаем разбор задачи, состав работ, схему проверки качества и план работ с точками согласования. Пилотный запуск идёт на ограниченном наборе данных: метрики считаем на ваших снимках, и решение о полном объёме принимается по ним, а не по обещаниям.

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

Опишите задачу — вернёмся с оценкой и планом.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1141