Polyp_Segmentation_Defense_VISUAL_12
1.
AUTOMATIC COLORECTALPOLYP SEGMENTATION
Сравнение YOLO11s-Seg, U-Net, UNet++ и PraNet
с проверкой cross-dataset generalization
ОСНОВНАЯ ЗАДАЧА
ФИНАЛЬНЫЙ ФОРМАТ
ЛУЧШИЙ STRICT CVC
QUICK DEMO
• Сегментация полипов
на колоноскопических
изображениях
• Все сравниваемые
модели оценивались при
512×512
• YOLO11s-Seg: лучший
баланс Dice / IoU / Recall
• Одна команда запускает
inference на 5 valизображениях
• Не только accuracy на
исходном датасете, но и
переносимость на другой
домен
• Старые 640×640
эксперименты сохранены
только как архив
• PraNet: лучшая
Precision
• Demo: Mean IoU 0.7733;
Mean Dice 0.8608
Проект построен как воспроизводимый эксперимент: данные → обучение → единая оценка →
robustness → demo.
DATA
PREPROCESS
Final project • medical image segmentation • 512×512 evaluation protocol
TRAIN
EVALUATE
DEMO
2.
Задача и мотивацияПочему одной высокой метрики на Kvasir недостаточно
ПРОБЛЕМА
ЦЕЛЬ ПРОЕКТА
ПОЧЕМУ ЭТО ВАЖНО
• Полипы отличаются размером,
формой, текстурой и контрастом;
границы часто размыты.
• Построить единый pipeline для
обучения и оценки нескольких
архитектур сегментации.
• Высокий in-domain score не
гарантирует устойчивость в
реальном окружении.
• Для клинически полезной
сегментации важно точно
выделять область полипа, а не
только обнаруживать его
bounding box.
• Сравнить CNN-модели U-Net,
UNet++ и PraNet с YOLO11s-Seg.
• External test позволяет отделить
запоминание характеристик
датасета от реальной
переносимости.
• Модель, хорошо работающая на
одном наборе данных, может
деградировать при другой
камере, освещении и стиле
разметки.
• Отдельно проверить strict crossdataset generalization: обучение
без CVC → тест на CVC.
• Оценить Dice, IoU, Precision,
Recall и дополнительные
segmentation-specific метрики.
• Поэтому основной вопрос
проекта — насколько качество
сохраняется при domain shift.
• Combined-data experiment
показывает другой сценарий: что
происходит, если добавить
разнообразие доменов в
обучение.
• Итог — не просто рейтинг
моделей, а анализ их поведения
и ограничений.
IMAGE → PIXEL MASK
Ключевой акцент: generalization и честный experimental protocol, а не только максимальная метрика.
3.
Данные и экспериментальный протоколДва датасета используются в разных ролях
KVASIR-SEG
STRICT GENERALIZATION
COMBINED-DATA EXPERIMENT
• Основной датасет для обучения и
validation.
• Train: Kvasir-SEG.
• Для отдельного YOLOэксперимента объединены Kvasir
и CVC.
• Содержит изображения
колоноскопии и pixel-level groundtruth masks.
• Используется для обучения U-Net,
UNet++, PraNet и Kvasir-only YOLO.
• Фиксированный validation split
обеспечивает
CVC-CLINICDB воспроизводимое
сравнение.
• Внешний датасет для оценки
переноса на другой домен.
• В strict protocol изображения CVC
не используются при обучении.
• Validation: Kvasir validation split.
• External test: CVC-ClinicDB.
• Этот режим используется для
честного сравнения архитектур.
• Если CVC не участвовал в
training, результат можно
интерпретировать как unseendomain generalization.
• Именно этот эксперимент
является главным для выводов о
переносимости.
• Цель — проверить, улучшает ли
domain diversity качество
сегментации.
• Такой результат нельзя
напрямую называть strict crossdataset generalization, потому что
CVC уже присутствует в training
data.
• Поэтому Combined YOLO
анализируется отдельно от
основной таблицы strict CVC.
• На нём измеряется реальное
падение/сохранение Dice, IoU,
Precision и Recall.
Kvasir-SEG • source domain
Методологическое разделение strict CVC и Combined-data предотвращает завышенную интерпретацию generalization.
CVC-ClinicDB • external domain
4.
Подготовка данных и pipelineОдинаковая логика оценки для разных архитектур
ПОДГОТОВКА
EVALUATION PIPELINE
КОНТРОЛЬ ВОСПРОИЗВОДИМОСТИ
• Проверка соответствия image ↔
mask и split-файлов.
• Checkpoint загружается
независимо от training notebook.
• Финальные weights хранятся
отдельно от training runs.
• Все финальные CNN-входы
приводятся к 512×512; masks resize
через INTER_NEAREST.
• Inference выполняется на
фиксированном наборе
изображений.
• Dataset paths сделаны
относительными через data.yaml.
• Маски бинаризуются и
переводятся в tensor format.
• Prediction приводится к размеру GT
и бинаризуется.
• Для YOLO исходные masks
конвертируются в polygon labels в
формате YOLO segmentation.
• На каждом изображении считаются
overlap- и pixel-level метрики.
• Отдельно проверялись
корректность контуров и
визуальные overlay.
DATA
PREPROCESS
• Итоговые результаты сохраняются
в CSV/JSON, а qualitative examples
— в figures.
TRAIN
Финальный проект можно проверить через готовые checkpoints — повторное обучение 80–120 эпох для демонстрации не требуется.
• Проект проверяется pytest smoke
test.
• Quick demo использует
фиксированный seed=42 и одни и те
же 5 validation images.
• Ментор может проверить готовый
checkpoint без повторного обучения.
EVALUATE
DEMO
5.
Модели и training setupЧетыре подхода с разной архитектурной логикой
U-NET
UNET++
PRANET
YOLO11S-SEG
• Классический encoder–
decoder baseline.
• Вложенные и более
плотные skip pathways.
• Skip connections
возвращают spatial detail
из encoder в decoder.
• Цель — уменьшить
semantic gap между
encoder и decoder
features.
• Архитектура,
разработанная
специально для polyp
segmentation.
• Instance segmentation:
detection + mask
prediction.
• Используется как
понятная базовая точка
для сравнения.
• В проекте показал
улучшение относительно
базового U-Net.
• Использует reverse
attention и multi-scale
reasoning.
• Показал сильный
overlap и особенно
высокую Precision на
external CVC.
Все основные выводы относятся к финальному 512×512 protocol; 640×640 YOLO runs сохранены как development archive.
• Финальная версия:
512×512, batch 8; AMP
использовался при
training.
• Отдельные модели:
Kvasir-only и Combineddata.
• В strict CVC показал
лучший общий баланс
метрик.
6.
Метрики оценкиПочему одной Dice недостаточно
OVERLAP METRICS
ERROR BALANCE
YOLO MASK MAP
• Dice = 2|GT∩Pred| / (|GT|+|Pred|):
чувствителен к совпадению
областей.
• Precision показывает, какая доля
предсказанных positive pixels
действительно относится к полипу.
• Mask mAP50 оценивает качество
instance masks при IoU threshold
0.50.
• IoU = |GT∩Pred| / |GT∪Pred|: более
строгая overlap-метрика.
• Recall показывает, какая доля GTполипа была найдена моделью.
• Обе метрики считаются на
бинарных segmentation masks.
• Precision/Recall помогают понять
характер FP и FN ошибок.
• mAP50–95 усредняет качество по
более строгим IoU thresholds
0.50…0.95.
• Эти показатели дополняют pixelwise Dice/IoU.
ДОПОЛНИТЕЛЬНЫЕ SEGMENTATION METRICS
КАК ЧИТАТЬ РЕЗУЛЬТАТЫ
• MAE оценивает среднюю абсолютную pixel-wise ошибку.
• Высокий Dice/IoU → хорошее совпадение масок.
• Sα (structure measure) оценивает структурное сходство
prediction и GT.
• Высокая Precision при более низком Recall → модель
осторожнее и меньше пере-сегментирует.
• Eφ_max оценивает enhanced alignment.
• Высокий Recall → меньше пропущенной области полипа.
• Weighted F-measure (wFβ) учитывает пространственную
структуру ошибок.
• Для медицинской сегментации важен баланс, поэтому
вывод делается по набору метрик.
DICE
Метрики рассматриваются совместно: overlap + FP/FN balance + structure-aware evaluation.
IoU
P/R
mAP
7.
Результаты CNN-моделейОт baseline к специализированной архитектуре
U-NET — BASELINE
UNET++ — УЛУЧШЕНИЕ
PRANET — STRONGEST CNN
• Kvasir validation: Dice ≈ 0.7176,
IoU ≈ 0.6043.
• Kvasir validation: Dice ≈ 0.7617,
IoU ≈ 0.6713.
• Kvasir validation: Dice ≈ 0.8255,
IoU ≈ 0.7393.
• Precision ≈ 0.7776; Recall ≈
0.7547.
• Precision ≈ 0.8372; Recall ≈
0.7696.
• Precision ≈ 0.8638; Recall ≈
0.8451.
• Модель даёт рабочую
сегментацию, но хуже удерживает
сложные границы и
небольшие/неоднозначные
области.
• По сравнению с U-Net
увеличивается overlap и
снижается MAE.
• MAE ≈ 0.0551; Sα ≈ 0.8586;
Eφ_max ≈ 0.8985; wF_m ≈ 0.7934.
• Baseline полезен как контроль:
дальнейшие архитектурные
усложнения должны давать
измеримый прирост.
• Специализация под polyp
segmentation заметно улучшает
качество относительно U-Net
family.
• Nested skip connections дают
более сильную реконструкцию
маски при той же постановке
задачи.
U-Net 0.72
UNet++ 0.76
PraNet 0.82
Проверка после рефакторинга воспроизвела ожидаемый порядок качества: U-Net < UNet++ < PraNet.
8.
YOLO11s-Seg: финальная 512×512 модельInstance segmentation + отдельная pixel-wise evaluation
KVASIR-ONLY MODEL
ПОЧЕМУ YOLO ИНТЕРЕСЕН
ПРАКТИЧЕСКАЯ ПРОВЕРКА
• Обучена только на Kvasir-SEG и
поэтому подходит для strict external
CVC test.
• Одновременно локализует
instances и строит masks.
• Checkpoint yolo11s_kvasir_best.pt
успешно загружается в чистом
окружении.
• Финальный comparison использует
512×512.
• При повторной Ultralytics validation
после переноса проекта: Mask
Precision ≈ 0.840, Recall ≈ 0.921, mAP50
≈ 0.917, mAP50–95 ≈ 0.695.
• Сохранённый финальный evaluation
workflow также включает Dice/IoU,
поэтому YOLO можно сравнивать с
CNN на общей шкале.
• Может выдавать несколько
отдельных полипов, а не только
одну semantic mask.
• Validation проходит на 120 Kvasir
images без corrupt samples.
• Совмещает сильный detector
backbone с segmentation head.
• Quick demo запускает 5
фиксированных изображений и
сохраняет Original / GT / Prediction.
• На external domain показал
особенно сильный Recall —
модель меньше пропускает
область полипа.
• Demo result: Mean IoU 0.7733; Mean
Dice 0.8608.
P 0.84
R 0.92
mAP50 0.92
Quick demo — проверка работоспособности проекта; финальные таблицы строятся по полному evaluation protocol, а не по 5 demo images.
9.
Главный эксперимент: strict CVC testКакая модель лучше переносится на unseen dataset
ЧТО СРАВНИВАЕТСЯ
ИТОГ СРАВНЕНИЯ
ИНТЕРПРЕТАЦИЯ
• U-Net, UNet++, PraNet и Kvasir-only
YOLO обучались без использования
CVC test images.
• YOLO11s-Seg показывает
лучший общий баланс Dice, IoU и
Recall на strict CVC.
• YOLO склонен лучше сохранять
полноту маски при domain shift.
• Все модели оцениваются на одном
external CVC-ClinicDB domain.
• PraNet показывает лучшую
Precision и остаётся самым
сильным CNN baseline.
• Это наиболее важный тест проекта,
потому что он показывает устойчивость
к смене распределения данных.
• Главный вопрос: сохраняется ли
segmentation quality за пределами
training dataset?
• U-Net и UNet++ уступают более
специализированным подходам.
• Результат показывает, что
архитектурный выбор влияет не
только на in-domain score, но и на
robustness.
• PraNet более консервативен:
меньше false-positive area, что
отражается в Precision.
• Нет одной метрики, которая
полностью определяет победителя;
клинический приоритет FP vs FN
может менять предпочтение.
• Для проекта YOLO выбран как
strongest overall external performer.
YOLO → strongest overall external
Strict external evaluation — основной аргумент в пользу generalization, а не просто высокой Kvasir validation accuracy.
10.
Domain shift и Combined-data YOLOДва разных вопроса — два разных эксперимента
DOMAIN SHIFT
COMBINED YOLO
ВАЖНОЕ ОГРАНИЧЕНИЕ
• При переходе Kvasir → CVC
меняются визуальные
характеристики изображения.
• Отдельная YOLO-модель обучена
на объединённых Kvasir + CVC
данных.
• Combined result нельзя ставить в
одну строку со strict external CVC как
доказательство generalization.
• Различаются освещение, цвет,
масштаб полипов, фон и
особенности acquisition.
• Повторная validation Combined
checkpoint успешно прошла на 212
images.
• Даже сильная модель теряет часть
качества, если обучалась на одном
домене.
• Получено примерно: Mask
Precision 0.934, Recall 0.915, mAP50
0.970, mAP50–95 0.778.
• CVC уже присутствует в
обучающей смеси, поэтому задача
становится in-distribution / mixeddomain evaluation.
• Поэтому external degradation
рассматривается как ожидаемое
явление, а не как ошибка pipeline.
• Это показывает пользу более
разнообразного training distribution.
• Правильный вывод: domain
diversity помогает, но strict
переносимость оценивается только
Kvasir-only моделями.
• Это разделение сохранено в
финальном отчёте и презентации.
SOURCE
Combined-data experiment отвечает на вопрос «помогает ли разнообразие данных?», strict CVC — «переносится ли модель без доступа к target domain?».
TARGET
11.
Качественный анализ, ошибки и robustnessЧто скрывается за средними метриками
QUALITATIVE ANALYSIS
ERROR MAPS
ROBUSTNESS
• Для примеров строятся Original /
Ground Truth / Prediction.
• Pixel confusion раскладывается на
TP, FP, FN и TN.
• Визуально оцениваются границы,
пропущенные области и пересегментация.
• FP показывает лишнюю
предсказанную область; FN —
пропущенную часть полипа.
• Проект включает проверку
поведения на изменённых
изображениях и при domain shift.
• Особенно полезны случаи, где
Dice средний, но ошибка
локализована на сложной границе.
• Для медицинской задачи FN
особенно важен, потому что
означает невыделенную
патологическую область.
• Такие примеры помогают
объяснить, почему две модели с
близкой метрикой ведут себя поразному.
• Error maps дополняют aggregate
metrics и делают анализ
интерпретируемым.
• Сильные модели устойчивее к
умеренным изменениям, но
качество всё равно зависит от visual
distribution.
• Основное ограничение —
небольшое число медицинских
датасетов и отсутствие prospective
clinical validation.
• Следующий шаг: больше внешних
центров, augmentation/domain
adaptation и статистическая оценка.
TP
Средняя метрика отвечает «сколько», qualitative/error analysis — «где и почему модель ошибается».
FP
FN
12.
Итоги и воспроизводимостьЧто показал проект и как его быстро проверить
ОСНОВНЫЕ ВЫВОДЫ
ЧТО СДЕЛАНО ИНЖЕНЕРНО
БЫСТРЫЙ ЗАПУСК
• Все четыре модели дают рабочую
polyp segmentation, но качество
заметно зависит от архитектуры.
• Проект рефакторирован в
отдельные configs / datasets / src /
scripts / tests / weights / results.
• 1) Создать/активировать .venv и
установить requirements.
• Среди CNN лучшим оказался PraNet;
U-Net служит базовым baseline, UNet++
даёт промежуточное улучшение.
• Final checkpoints отделены от
старых 640×640 development runs.
• YOLO11s-Seg показал лучший общий
strict external performance на CVC,
особенно по Recall.
• Combined-data YOLO подтверждает,
что разнообразие training domains
улучшает результаты, но не заменяет
strict generalization test.
python -m scripts.quick_demo
• Исправлены относительные
dataset paths и loader для разных
расширений изображений.
• Smoke tests и реальные
evaluation commands проверены
после переноса проекта.
• 2) python -m pytest -q → проверка
структуры и импортов.
• 3) python -m scripts.quick_demo → 5
reproducible YOLO predictions.
• 4) Результаты сохраняются в
results/quick_demo.
• Demo: Mean IoU 0.7733; Mean Dice
0.8608; PROJECT DEMO: OK.
PROJECT DEMO: OK
Главный результат: модель нужно оценивать не только по тому, насколько хорошо она запомнила исходный датасет, а
по тому, насколько стабильно она сегментирует полипы при смене домена.
Automatic Colorectal Polyp Segmentation • Final project