29.80M

Polyp_Segmentation_Defense_RICHER_DESIGN

1.

AUTOMATIC POLYP
SEGMENTATION
Сравнение YOLO11s-Seg, U-Net, UNet++ и PraNet
для сегментации полипов на колоноскопических
изображениях
Kvasir → CVC
RTX 3060
Strict CVC Dice
CVC IoU
Best CNN
0.7837
YOLO Kvasir-only
0.7161
YOLO Kvasir-only
PraNet
Precision 0.7550
512×512
Final Project Defense
Task
Data
Models
Results
Errors
Summary

2.

Клиническая проблема и мотивация
почему автоматическая сегментация полипов важна и что именно проверяет проект
ПРОБЛЕМА
ЧТО ДАЁТ SEGMENTATION
Полипы могут быть
предшественниками
колоректального рака
Колоноскопия позволяет обнаруживать и
удалять полипы, но визуальная оценка сложна:
форма, размер, текстура и границы сильно
различаются.
ПОЧЕМУ ЭТО СЛОЖНО ДЛЯ CV
• границы могут быть слабо выражены;
• малые и плоские полипы похожи на фон;
• блики, тени и освещение меняют appearance;
• изображения разных источников дают domain
shift.
ЭКСПЕРИМЕНТАЛЬНАЯ ЦЕЛЬ
Не просто получить высокий
score на одном validation set.


4 модели
IMAGE
MASK
PRED.
RGB
GT
MODEL
Detection
Bounding box отвечает: «где находится
объект?»
Главная проверка
Kvasir-SEG
TRAIN
→ CVC-ClinicDB
EXTERNAL TEST
Segmentation
Mask отвечает: «какие именно пиксели
принадлежат полипу?»
Поэтому Dice/IoU напрямую измеряют качество
совпадения формы маски.
Задача: pixel-level binary segmentation
U-Net • UNet++ • PraNet • YOLO11sSeg
Если качество сохраняется на CVC,
модель лучше переносится на другой
источник изображений.
BEST CVC DICE
BEST CVC IoU
0.7837
0.7161
YOLO
YOLO
ЦЕЛЬ ПРОЕКТА: сравнить 4 архитектуры и определить, какая модель лучше сохраняет качество сегментации при переносе с Kvasir-SEG на независимый CVCClinicDB.

3.

Задача проекта
не просто найти полип, а точно восстановить его маску
ЗАДАЧА
Автоматически выделять
полип
на колоноскопическом
изображении
ЧТО СРАВНИВАЕМ
ГЛАВНЫЙ ЭКСПЕРИМЕНТ
U-Net
Kvasir-SEG
baseline CNN
UNet++
CVC
EXTERNAL
TEST
nested skip CNN
PraNet
polyp-specific
CNN
YOLO11s-Seg
instance
segmentation
Чтобы проверить generalization: модель
должна работать не только на изображениях
того же источника, на котором обучалась.
Цель проекта
Единые условия
Сравнить подходы и проверить,
сохраняется ли качество на другом
датасете.
Models

Зачем второй датасет?
Bounding box показывает только
расположение. Маска восстанавливает
форму и границы полипа на уровне
пикселей.
Data
4 models
TRAIN
Почему segmentation, а не detection?
Task

финальный input 512×512
Results
Errors
BEST STRICT DICE
BEST STRICT IoU
0.7837
0.7161
YOLO
YOLO
Combined YOLO рассматривается отдельно: там
CVC входит в training.
Summary

4.

Данные и протокол
строго разделяем generalization и combined-data experiment
Kvasir-SEG
Models
CVC-ClinicDB
train + validation
YOLO / U-Net / UNet++ / PraNet
external test

• 1,000 image-mask pairs
• 880 train / 120 validation
• checkpoint selection

• same 512×512 input
• same external split
• compare Dice/IoU
• independent domain
• no retraining
• domain-shift test
STRICT EVALUATION
COMBINED YOLO
CVC не участвует в обучении: это честная проверка unseendomain generalization.
Kvasir + CVC в обучении: это отдельный эксперимент про
diversity данных.
Task
Data
Models
Results
Errors
Summary

5.

Pipeline проекта
от масок к финальному сравнению моделей
01
02
EDA
изображения, маски, размеры
04

mask → polygon для YOLO
05
Evaluate

Kvasir validation
03
Prepare

YOLO / U-Net / UNet++ /
PraNet
06
External

CVC-ClinicDB test
Train
Analyze
error maps + robustness
Финальная логика: одна и та же external split CVC + общий input size 512×512 + разделение strict и combined результатов.
Task
Data
Models
Results
Errors
Summary

6.

Подготовка данных
разные форматы для YOLO и CNN, единая геометрия 512×512
YOLO11s-Seg
U-Net / UNet++ / PraNet
Подготовка разметки
Подготовка image + mask
Исходная разметка Kvasir — бинарная маска. Для YOLO она
переводится в polygon-формат.
• RGB image и соответствующая binary GT mask.
• Resize обеих до 512×512.
• Image → float tensor, формат C×H×W.
MASK

CONTOUR

NORMALIZED
POINTS
• Mask → binary tensor 1×H×W.
→ YOLO LABEL
• Prediction → sigmoid → threshold 0.5 → binary mask.
• Находим внешний контур объекта.
• Координаты точек нормализуются в диапазон [0,1].
• В txt сохраняются class_id и точки полигона.
• После конвертации визуально проверяем совпадение полигона с
исходной маской.
IMAGE
MASK
THRESHOLD
3×512×512
1×512×512
0.5
Итог: все модели получают одинаковую геометрию 512×512, но формат
GT соответствует требованиям конкретной архитектуры.
Task
Data
Models
Results
Errors
Summary

7.

Модели и training setup
четыре архитектуры, общий финальный размер входа 512×512
Instance segmentation
YOLO11s-Seg
U-Net
• Input 512×512 • до 120 epochs • AMP
• Input 512×512 • batch 2 • до 80 epochs
• Разметка: polygon labels
• Adam 1e-3 • BCE + Dice
• Оценка: mask mAP + Dice/IoU
• ReduceLROnPlateau • AMP
Nested skip architecture
UNet++
PraNet
Baseline encoder–decoder
Polyp-specific segmentation
• ResNet34 encoder, веса инициализированы с нуля
• Res2Net50 backbone, веса инициализированы с нуля
• BCE + Dice • Adam 1e-3
• 4 outputs • structure loss • Adam 1e-4
• scheduler • AMP
• ReduceLROnPlateau • early stopping
Task
Data
Models
Results
Errors
Summary

8.

Метрики оценки
смотрим не только средний score, но и тип ошибки
Dice
IoU
Precision
перекрытие prediction и GT
intersection / union масок
сколько predicted foreground верно
выше = лучше
выше = лучше
меньше FP
Recall
Mask mAP
MAE
сколько GT foreground найдено
YOLO mask quality по IoU thresholds
средняя абсолютная ошибка маски
меньше FN
выше = лучше
ниже = лучше
На защите: Dice/IoU = качество overlap • Precision/Recall = тип ошибки • mAP = основная YOLO-метрика • MAE: ниже лучше.
Task
Data
Models
Results
Errors
Summary

9.

U-Net baseline
простая encoder-decoder модель задаёт нижнюю точку сравнения
U-Net как baseline
External CVC result
• Классическая encoder–decoder архитектура со skip
connections.
• 512×512 • batch 2 • Adam 1e-3.
DICE
IoU
0.5360
0.4220
• Loss = BCEWithLogitsLoss + Dice Loss.
• Scheduler по validation Dice; AMP + GradScaler.
Сравнение на том же CVC split
• Используется как базовая точка сравнения с более
специализированными моделями.
Что проверяем
Насколько простой CNN baseline сохраняет качество при
переходе с Kvasir на внешний CVC.
Task
Data
Models
Results
U-Net
0.5360 Dice
UNet++
0.6684 Dice
PraNet
0.7449 Dice
YOLO11s
0.7837 Dice
Вывод: U-Net даёт рабочую baseline-сегментацию, но хуже
переносится на CVC. Более сложные архитектуры дают заметно
более высокий overlap без изменения test split.
Errors
Summary

10.

CNN results
UNet++ и PraNet: training history + Kvasir/CVC metrics
UNet++
ResNet34 • nested skip pathways • no pretrained weights
PraNet
Res2Net50 • multi-scale aggregation • reverse
attention
Dataset
Dice
IoU
Precision
Recall
Dataset
Dice
IoU
Precision
Recall
Kvasir
0.7676
0.6813
0.8424
0.6865
Kvasir
0.8301
0.7476
0.8531
0.7965
CVC
0.6684
0.5834
0.7327
0.7023
CVC
0.7449
0.6572
0.7550
0.8109
Δ Dice −0.0992 • Δ IoU −0.0980
Δ Dice −0.0851 • best CNN Precision 0.7550
Nested skips улучшают baseline, но domain shift остаётся заметным.
PraNet лучше UNet++ на Kvasir и CVC; лучший CNN в проекте.
Task
Data
Models
Results
Errors
Summary

11.

Extended segmentation metrics
дополнительная проверка качества UNet++ и PraNet
Структурные метрики: UNet++ vs PraNet
wFβ

Как читать этот слайд
Eφ max
• wFβ — качество foreground с учётом
пространственной структуры ошибки.
• Sα — структурное сходство масок.
• Eφ max — alignment prediction и GT.
0.90
• Во всех трёх метриках выше = лучше.
0.80
0.70
MAE — ниже лучше
UNet++ K
UNet++ CVC
PraNet K
Data
Models
Results
PraNet CVC
Errors
0.0687 → 0.0480
PraNet
0.0534 → 0.0402
Вывод: дополнительные метрики не меняют
картину — PraNet остаётся сильнее UNet++ по
качеству структуры маски.
Значения подтверждают основной ranking: PraNet выше UNet++ на обоих датасетах.
Task
UNet++
Summary

12.

Главный результат: strict CVC test
модели обучены без CVC training samples
Dice / IoU на внешнем CVC
U-Net
UNet++
PraNet
STRICT EXTERNAL RANKING
D
0.5360
I
0.4220
D
0.6684
I
0.5834
D
0.7449
I
0.6572
Model
Dice
IoU
Prec.
Recall
U-Net
0.5360
0.4220


UNet++
0.6684
0.5834
0.7327
0.7023
PraNet
0.7449
0.6572
0.7550
0.8109
YOLO11s
0.7837
0.7161

0.8395
Вывод
YOLO11s-Seg
D
0.7837
• YOLO11s-Seg показывает лучший внешний overlap: Dice 0.7837 и
IoU 0.7161.
I
0.7161
• YOLO также имеет самый высокий сохранённый Recall 0.8395 —
меньше пропущенного foreground.
• PraNet — лучший CNN: Dice 0.7449 и лучшая сохранённая
Precision 0.7550.
D = Dice I = IoU
Task
• Разница с U-Net показывает, что выбор архитектуры
существенно влияет на cross-dataset generalization.
Data
Models
Results
Errors
Summary

13.

Domain shift: Kvasir → CVC
при переносе на другой датасет качество падает
UNet++: перенос на CVC
PraNet: перенос на CVC
Kvasir Dice
CVC Dice
Δ Dice
Kvasir Dice
CVC Dice
Δ Dice
0.7676
0.6684
−0.0992
0.8301
0.7449
−0.0851
Kvasir IoU
CVC IoU
Δ IoU
Kvasir IoU
CVC IoU
Δ IoU
0.6813
0.5834
−0.0980
0.7476
0.6572
−0.0903
Precision −0.1097 • Recall +0.0158
Precision −0.0981 • Recall +0.0144
Overlap и Precision падают сильнее, чем меняется Recall.
PraNet переносится лучше UNet++, но domain shift всё равно
заметен.
Интерпретация: модели продолжают находить полип, но на новом домене хуже определяют точную область и
границы.
Task
Data
Models
Results
Errors
Summary

14.

YOLO experiments
Kvasir-only для generalization, Combined — для data diversity
Kvasir-only YOLO
Combined YOLO
512×512 • YOLO11s-Seg • AMP • до 120 epochs
Kvasir + CVC в обучении — не strict external ranking
Mean Dice
Mean IoU
Best epoch
mAP50
0.8707
0.8064
118
0.9650
mAP50
mAP50-95
mAP50-95
Mask Recall
0.9346
0.7292
0.7748
0.9340
Главная мысль: Combined показывает пользу разнообразия данных, но не доказывает unseen-domain generalization.
Task
Data
Models
Results
Errors
Summary

15.

Qualitative analysis
проверяем не только средний score, но и реальные ошибки
UNet++ predictions
PraNet prediction
• best / median / worst cases показывают распределение качества
• error maps отделяют TP, FP и FN пиксели
• основная сложность — границы полипа и ложноположительные области
Error maps
Task
Data
Models
Results
Errors
Summary

16.

Robustness и ограничения
что проверено дополнительно и где границы проекта
Ограничения проекта
Robustness tests
Проверка без retraining: тот же trained checkpoint получает
искусственно ухудшенные изображения.
Motion blur
Gaussian blur
• Kvasir-SEG и CVC-ClinicDB — сравнительно небольшие
медицинские datasets.
смазывание при движении
• Нет prospective clinical validation на реальном потоке
пациентов.
потеря мелких границ
• UNet++ и PraNet обучались без заранее загруженных
backbone weights.
• Combined YOLO нельзя использовать как доказательство
unseen-domain generalization.
Gaussian noise
шум сенсора
Darkness
недоэкспонирование
Low contrast
слабое отличие полипа от фона
• Оценивается качество маски, а не клиническое решение
врача.
Итог
Что сравнивается
Task
Robustness analysis показывает чувствительность модели к
качеству изображения; limitations задают границы того, какие
выводы можно делать из эксперимента.
Dice/IoU degraded image vs clean baseline
Data
Models
Results
Errors
Summary

17.

Архитектура эксперимента
как данные проходят через весь проект и где формируются итоговые выводы
1
DATA
2

Kvasir-SEG
CVC-ClinicDB
PREP
3

512×512
mask / polygon
STRICT
GENERALIZATION
Kvasir training

TRAIN
4

4 architectures
fixed checkpoints
EVAL
5
Kvasir val
CVC external

ANALYSIS
metrics • errors
robustness
COMBINED DATA
EXPERIMENT
fixed model

CVC test
Kvasir + CVC training

YOLO11s-Seg
Проверяет влияние более разнообразных training data.
BEST DICE
BEST IoU
BEST CNN
0.7837
0.7161
PraNet
YOLO
YOLO
Dice 0.7449
IN-DOMAIN
mAP50
mAP50-95
0.9650
0.7748
Не входит в strict
ranking, потому что CVC
уже был в training.
EXTERNAL
COMBINED
Kvasir val → качество на исходном
CVC → реальная проверка переноса
Kvasir+CVC → эффект разнообразия train
домене
data
Главная логика проекта: отделить качество на исходном домене, перенос на новый домен и эффект расширения
training data.

18.

Итоговые выводы
что проект доказал
1 Что было сделано
2 Главные результаты
• Подготовлены Kvasir-SEG и CVCClinicDB.
YOLO CVC DICE
YOLO CVC IoU
0.7837
0.7161
• Все финальные сравнения приведены к
512×512.
YOLO RECALL
PraNet PREC.
• Проведены in-domain, external crossdataset и robustness evaluations.
0.8395
0.7550
• Обучены U-Net, UNet++, PraNet и
YOLO11s-Seg.
YOLO — лучший strict external overlap;
PraNet — лучший CNN.
Проект включает полный pipeline:
данные → training → evaluation → error
analysis.
Combined training дополнительно показывает
пользу более разнообразных training data.
3 Основной вывод
Высокая Kvasir validation
performance сама по себе
недостаточна.
Ключевая проверка — перенос
на независимый CVC-ClinicDB.
YOLO11s-Seg оказался наиболее
устойчивым по Dice/IoU/Recall, а
PraNet — наиболее сильным CNNподходом.
Следующий шаг
больше внешних datasets + clinical
validation
Task
Data
Models
Results
Errors
Summary
English     Русский Правила