Методы препроцессинга для детекции аномалий: размер, кроп, удаление фона | AiManual
AiManual Logo Ai / Manual.
11 Янв 2026 Гайд

4 метода улучшения моделей визуальной аномалии: размер изображения, кроп и удаление фона

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

Почему ваша модель видит не то, что вы хотите

Вы тренируете модель для детекции дефектов на производстве. Или для поиска аномалий в медицинских снимках. Или для контроля качества на конвейере. День за днем, эпоха за эпохой. Но точность упорно держится на 85%. F1-score не растет. Вы пробуете разные архитектуры, добавляете слои, меняете функции потерь. А проблема часто лежит не в модели, а в том, что вы ей даете. Говоря проще — в том, как вы готовите изображения.

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

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

Метод 1: Размер имеет значение (но не то, о котором вы подумали)

Первое, что делают почти все — ресайзят изображения до стандартного размера, обычно 224x224 или 512x512. Потому что так делают в учебниках. Потому что так требует архитектура. Потому что так удобно батчами обрабатывать. И это первая ошибка.

Зачем мы ресайзим? Чтобы ускорить обучение и уменьшить потребление памяти. Логично. Но что происходит с аномалиями при ресайзе? Мелкие дефекты размером в несколько пикселей превращаются в субпиксельные артефакты, которые модель просто не может различить. Крупные аномалии теряют детализацию — трещина превращается в тонкую линию, пятно в размытое пятно.

Как НЕ надо делать: Брать все изображения разного размера и бездумно ресайзить до квадрата 224x224, теряя пропорции и детали.

Практический подход к выбору размера

Вместо стандартного размера используйте анализ распределения аномалий:

  1. Соберите статистику по размерам всех аномалий в датасете
  2. Определите минимальный размер аномалии, который нужно детектировать
  3. Установите разрешение так, чтобы эта минимальная аномалия занимала хотя бы 10-15 пикселей
  4. Сохраняйте оригинальные пропорции — не превращайте прямоугольники в квадраты

Пример: если самая маленькая трещина в вашем датасете имеет размер 2x10 мм на изображении 4000x3000 пикселей, то при ресайзе до 1000x750 она будет занимать примерно 0.5x2.5 пикселя. Слишком мало. Нужно выбрать размер, при котором она будет занимать хотя бы 5x25 пикселей.

Тип аномалии Минимальный размер (пиксели) Рекомендуемое разрешение
Микротрещины 3-5px Высокое (2000px+)
Пятна, загрязнения 10-15px Среднее (1024px)
Крупные дефекты 50+px Низкое (512px)

Метод 2: Кроп — искусство отрезать лишнее

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

Три стратегии кроппинга для аномалий

1 Объектно-ориентированный кроп

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

Зачем это делать? Модель учится фокусироваться на объекте, а не на фоне. Это особенно важно, когда фон сильно варьируется между изображениями (разный стол, разное освещение, разные руки держат объект).

2 Регион-ориентированный кроп

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

Разрежьте большое изображение на регионы. Обучайте модель на каждом регионе отдельно. Или конкатенируйте регионы в батч. Главное — не смешивать в одном примере релевантные и нерелевантные области.

3 Адаптивный кроп по плотности аномалий

Самый продвинутый способ. Анализируете распределение аномалий в обучающей выборке. Если дефекты чаще появляются в центре — кропайте центр с небольшим запасом. Если по краям — делайте несколько кропов с перекрытием.

💡
В проекте по анализу дефектов плёнки мы использовали адаптивный кроп — разрезали рулоны на секции, где дефекты были сгруппированы. Это дало +12% к точности по сравнению с обработкой целых изображений.

Метод 3: Удаление фона — когда меньше значит больше

Удаление фона — это следующий уровень после кроппинга. Вместо того чтобы просто обрезать нерелевантные области, вы полностью их убираете, оставляя только объект на прозрачном или нейтральном фоне.

Звучит как overkill? Попробуйте на практике. Когда модель видит один и тот же объект на разном фоне, она вынуждена учиться инвариантности к фону. Это сложно. Гораздо проще убрать фон совсем и дать модели чистый объект.

Как удалять фон без сложных моделей

Не обязательно использовать U-Net или Mask R-CNN. Для многих промышленных задач достаточно простых методов:

  • Пороговая сегментация — если фон контрастный (например, черный объект на белом столе)
  • Активные контуры — для объектов с четкими границами
  • Графовые разрезы — когда нужно точнее, но не настолько, чтобы подключать нейросети
  • Предобученные модели — например, техники из Lemon Slice можно адаптировать для промышленных объектов

Осторожно с прозрачностью! Некоторые фреймворки и модели плохо работают с альфа-каналом. Чаще лучше заливать фон нейтральным цветом (128,128,128) или использовать маску отдельным каналом.

Метод 4: Центрирование объектов — ставить главное в центр

После кропа и удаления фона объект может оказаться где угодно в кадре. В углу. У края. По диагонали. Модели приходится учиться инвариантности к позиции. А зачем?

Центрируйте объект. Всегда. Каждый раз. Это уменьшает вариативность данных и позволяет модели сосредоточиться на содержании, а не на положении.

Алгоритм центрирования за 3 шага

  1. Найти bounding box объекта (через разметку или сегментацию)
  2. Вычислить центр масс bounding box
  3. Сдвинуть изображение так, чтобы центр объекта оказался в центре кадра

Просто? Да. Эффективно? Невероятно. Особенно для симметричных объектов или когда аномалии зависят от ориентации.

Ранняя остановка — ваш друг, когда данных мало

Вы применили все три метода. Подготовили идеальные данные. Начали обучение. И через 50 эпох модель начинает переобучаться. Потому что даже с идеальными данными, если их мало, модель выучит шум.

Ранняя остановка — это не просто "остановить обучение, когда валидационная ошибка перестала уменьшаться". Это искусство баланса между недообучением и переобучением.

Как настроить раннюю остановку для аномалий

Забудьте про стандартный patience=10. Для задач детекции аномалий:

  • Используйте восстановление весов — сохраняйте лучшие веса, а не последние
  • Мониторьте не только loss, но и метрики качества (F1, precision, recall)
  • Установите разные patience для разных фаз обучения — больше в начале, меньше в конце
  • Добавьте плато-снижение learning rate перед полной остановкой
💡
В задачах с сильным дисбалансом классов (99% нормальных, 1% аномальных) стандартная ранняя остановка часто останавливает обучение слишком рано. Модель только начинает учиться различать аномалии, а обучение уже заканчивается.

Чего не стоит делать никогда

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

  • Ресайз с искажением пропорций — круглые объекты становятся овалами, квадраты прямоугольниками
  • Кроп без перекрытия — разрезаете изображение на части и теряете аномалии на границах
  • Удаление фона с потерей контекста — иногда фон важен (ржавчина на определенном фоне, блики на конкретной поверхности)
  • Слишком агрессивное увеличение разрешения — из 100x100 в 1000x1000 не получится деталей, получится только размытие

Проверка на практике: pipeline за 5 шагов

Как внедрить эти методы в реальный проект:

  1. Анализируйте датасет — размеры аномалий, их расположение, фон
  2. Определите минимальное разрешение, при котором аномалии различимы
  3. Разработайте стратегию кроппинга — объект, регионы или адаптивно
  4. Удалите или нейтрализуйте фон, если он мешает
  5. Центрируйте объекты и настройте раннюю остановку

И последнее. Самый важный совет. После всех преобразований — посмотрите на данные глазами модели. Откройте обработанные изображения. Увидели бы вы аномалию? Если нет — модель тоже не увидит.

Препроцессинг — это не технический этап. Это диалог с данными. Вы спрашиваете: "Что здесь важно?" Данные отвечают: "Вот это". Вы убираете всё лишнее. Модель говорит "спасибо".

Не верьте метрикам на валидации вслепую. Всегда смотрите на примеры ошибок. Если модель путает аномалии с артефактами препроцессинга — вы делаете что-то не так.

И помните: идеальных методов не существует. То, что работает для детекции трещин в бетоне, не подойдет для поиска дефектов на полупроводниках. Экспериментируйте. Анализируйте ошибки. И не бойтесь возвращаться к препроцессингу, даже когда уже начали тренировать сложные ансамбли моделей. Иногда один правильный кроп стоит трех дополнительных слоев в нейросети.