Аугментация изображений для медицинского ИИ

Когда обучающая выборка для сегментации лёгких насчитывает всего три десятка КТ, собранных на одном сканере, а модель должна уверенно работать на установках пяти разных производителей — стандартные методы регуляризации перестают помогать. Именно в такой ситуации аугментация перестаёт быть опциональным трюком и превращается в обязательный компонент пайплайна, без которого перенос в клинику обречён на провал. За годы работы с разметкой лёгочных полей для челленджа и экспериментов с U-Net я убедился: правильно настроенные преобразования способны дать прирост DSC на внешнем тесте в 5–7% только за счёт имитации реальной вариабельности, которую врач видит в PACS каждый день.

Что такое аугментация и зачем она нужна в медицине

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

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

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

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

Есть ещё одна причина — сдвиг домена. Модель, натренированная на сканере Siemens с определённым кернелем реконструкции, может драматически просесть на данных GE или Toshiba, даже если глаз врача не замечает разницы. Аугментация частично имитирует эту вариабельность — добавляет шум, меняет контраст, эмулирует неоднородность поля — и помогает сделать модель более переносимой между центрами. Я не раз наблюдал: без аугментации DSC на внешней выборке падает до 0.85, а с аккуратными интенсивностными преобразованиями и лёгким кропом возвращается к 0.94, потому что сеть перестаёт цепляться за аппаратные особенности и учится анатомии.

Какие виды аугментации применяют в медицинском ИИ

Геометрические преобразования

Базовый набор, меняющий форму или положение: поворот, сдвиг, зеркалирование, масштабирование, кроп, небольшая упругая деформация. В сегментации такие операции незаменимы, когда анатомические структуры могут встречаться в разных ориентациях — например, верхушка лёгкого не всегда строго вертикальна. Но здесь нужна аккуратность: чрезмерный поворот КТ грудной клетки на 30 градусов или зеркалирование, меняющее право на лево, в задачах с латерализацией просто ломает клинический смысл. Я предпочитаю ограничивать поворот 10–15 градусами для торакальных КТ и полностью отключать горизонтальное отражение, если речь идёт о патологии, локализованной по сторонам.

Интенсивностные преобразования

Они изменяют яркость и распределение значений пикселей: контраст, добавление гауссовского или пуассоновского шума, гамма-коррекция, случайное осветление/затемнение, имитация вариаций экспозиции. Для рентгенограмм и МРТ это часто полезнее сильной геометрии. Когда рентгенолаборант чуть-чуть меняет экспозицию или пациент имеет разную толщину грудной стенки, модель должна продолжать выделять лёгочный рисунок. На практике я часто добавляю в пайплайн умеренные вариации окна (windowing) прямо на лету — это симулирует разные настройки просмотра в PACS, с которыми сталкивается врач.

Специальные медицинские преобразования

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

Что работает лучше: КТ, МРТ и рентген

Модальность Что обычно полезно Что применять осторожно
КТ шум, кроп, сдвиг, масштаб, вариации контраста, 3D-преобразования сильные повороты, зеркалирование, слишком агрессивная деформация
МРТ изменение интенсивности, шум, bias field, кроп, небольшая геометрия резкие изменения формы и анатомически сомнительные отражения
Рентген яркость, контраст, шум, небольшие повороты, смещения сильная геометрия, которая ломает анатомические ориентиры

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

Как не испортить разметку при аугментации

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

Основные правила, без которых нельзя запускать аугментацию в медицинском проекте:

  • Все геометрические преобразования синхронизируйте для изображения и маски — если используете аффинную матрицу, она должна быть одной и той же.
  • Проверяйте, не выходят ли анатомические структуры за границы после кропа; при сегментации лёгких потеря даже 2–3 мм верхушечной области может изменить измеряемый объём.
  • Не используйте аугментацию, которая меняет смысл метки — например, кроп, удаляющий целевой узелок.
  • Тестируйте преобразования визуально на нескольких примерах, а не только в коде. Нередко банальная ошибка в порядке применения flip/rotate ломает 10% масок.
  • Отдельно проверяйте 2D- и 3D-пайплайны; в объёме ошибки масштабирования по оси Z незаметны на одном срезе, но полностью разрушают continuity при реконструкции поверхности.

Для медицинской сегментации потеря даже пары пикселей на границе критична: я наблюдал, как систематическое смещение маски на 1–1.5 пикселя из-за некорректного кропа снижало Dice на 0.03–0.05, и модель начинала систематически недооценивать объём лёгкого — а это уже клинически значимая ошибка при динамическом наблюдении.

Какие ошибки чаще всего делают

Слишком агрессивная аугментация

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

Одинаковая аугментация для всех задач

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

Игнорирование клинического смысла

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

Отсутствие валидации на «чистых» данных

Обучение усиливаем аугментацией, но валидацию и тестирование проводим строго на неизменённых снимках. Иначе метрики завышаются, и после деплоя модель сталкивается с реальностью, к которой не готова. Это правило нарушают сплошь и рядом, и потом удивляются, почему на новом сканере DSC рухнул.

Практический пайплайн: как использовать аугментацию в проекте

1. Определите задачу

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

2. Изучите реальный датасет

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

3. Соберите минимально достаточный набор преобразований

Стартую с аккуратного набора: кроп без потери целевых структур, случайное смещение в пределах 5% поля, слабый гауссовский шум, умеренное изменение контраста (0.9–1.1) и поворот до ±10°. Упругую деформацию добавляю позже, только если нужна дополнительная робастность к форме.

4. Проверьте влияние на метрики

Сравниваю три конфигурации: baseline без аугментации, базовый набор, расширенный набор. Если качество на валидации растёт, а на внешнем тесте не падает — набор выбран удачно. С опытом я обязательно добавляю cross-validation с разбивкой по аппаратам, чтобы понять, не подгоняется ли модель под особенности конкретного сканера.

5. Оцените устойчивость на данных другой клиники

Это самый честный чек. Даже если на валидации метрики отличные, но на внешней выборке DSC проседает ниже 0.9, значит, аугментация была либо недостаточной, либо не отражала суть межсканерных различий. Я стараюсь иметь хотя бы 10–15 иноперационных исследований с ручной разметкой, чтобы провести такой тест.

Когда аугментация особенно полезна

  • при малом количестве размеченных исследований — классический кейс с 30–50 КТ для сегментации лёгких;
  • при редких патологиях, где каждый случай на вес золота;
  • при сильной неоднородности данных, когда снимки приходят от аппаратов трёх поколений;
  • при переносе модели между клиниками — без аугментации модель привязывается к центру обучения;
  • при обучении сегментации на КТ и МРТ, где каждый размеченный объём стоит часов врачебного времени;
  • при работе с 3D-данными, где аугментация отдельно по осям или по объёму позволяет искусственно увеличить разнообразие положений пациента.

Когда аугментация помогает меньше

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

Именно поэтому аугментация не заменяет хороший датасет, а дополняет его. Я часто говорю коллегам: сначала соберите чистую выборку хотя бы из 50 качественно размеченных случаев, и только потом добавляйте аугментацию; пытаться вытянуть модель на 10 кривых масках агрессивными преобразованиями — путь к разочарованию.

Как выбрать аугментации для медицинского проекта

Ниже — ориентир, выверенный на практике, на который можно опираться при настройке пайплайна:

Задача Рекомендуемый фокус Что проверить в первую очередь
Сегментация лёгких геометрия, шум, кроп, контраст не ломается ли маска, особенно в верхушках и рёберно-диафрагмальных синусах
Поиск узлов масштаб, контраст, шум, вариации окна не исчезают ли мелкие очаги 3–4 мм после преобразований
Классификация патологий яркость, шум, артефакты, слабая геометрия не теряется ли текстурный паттерн — например, «матового стекла» или ретикуляции
3D-объёмные задачи объёмные преобразования, срезы, resampling согласованность между срезами и отсутствие «ступеньки» на поверхностях
МРТ-анализ интенсивность, bias field, шум сохраняется ли тканевая дифференцировка, не замыливаются ли границы серого и белого вещества

Что важно для внедрения в клинику

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

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

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

FAQ

Нужна ли аугментация, если данных много?

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

Можно ли использовать одинаковую аугментацию для КТ и рентгена?

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

Какие аугментации самые безопасные для старта?

Умеренный кроп без вырезания анатомии, небольшие сдвиги (до 10% размера), слабый гауссовский шум и аккуратные изменения контраста. С этого я начинаю в каждом новом проекте и расширяю только после визуального аудита.

Можно ли аугментировать только обучающую выборку?

Да, это стандартный подход. Валидацию и тестирование всегда оставляют без изменений, иначе метрики перестают отражать реальность.

Что важнее: аугментация или хорошая разметка?

Хорошая разметка. Аугментация усиливает данные, но не исправляет кривые контуры или неверные метки. Я не раз видел, как улучшенная ручная размеченность повышала DSC сильнее, чем самый хитрый пайплайн преобразований.

Как понять, что аугментация слишком сильная?

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