U-Net
Описание
Семантическая сегментация с U-Net
Языки
- Python100%
4 месяца назад
4 месяца назад
4 месяца назад
4 месяца назад
README.md
Лабораторная работа 3: Семантическая сегментация с U-Net
1. Цель работы
Практическое освоение архитектуры U-Net для задачи семантической сегментации изображений, изучение skip-connections и метрик оценки качества сегментации.
2. Теоретическое введение
U-Net - архитектура для семантической сегментации с U-образной структурой, состоящей из:
- Энкодера - сжимающий путь для извлечения признаков
- Декодера - расширяющий путь для точной локализации
- Skip-connections - соединения между энкодером и декодером для сохранения пространственной информации
3. Датасет
- Тип: Синтетический датасет геометрических фигур
- Размер: 800 изображений 128×128×3
- Классы: 3 (фон, объект, граница)
- Разделение: 640 train, 96 validation, 96 test
4. Предобработка данных
- Нормализация пикселей [0, 255] → [0, 1]
- One-hot encoding масок
- Создание tf.data.Dataset с prefetch
5. Архитектура модели
U-Net с:
- Энкодер: 4 блока сверток + max pooling
- Декодер: 4 блока upsampling + skip-connections
- Выход: Conv2D с softmax (3 класса)
- Параметры: 31M trainable parameters
6. Гиперпараметры обучения
- Оптимизатор: Adam (lr=1e-4)
- Функция потерь: Combined (Dice + Categorical Crossentropy)
- Batch size: 32
- Эпохи: 50 (ранняя остановка)
- Метрики: Accuracy, Dice Coefficient, IoU
7. Результаты на тестовой выборке
| Метрика | Значение |
|---|---|
| Test Loss | 2.4461 |
| Test Accuracy | 0.1514 |
| Test Dice | 0.1970 |
| Test IoU | 0.1113 |
8. Выводы
- Модель демонстрирует медленную сходимость
- Skip-connections критически важны для сегментации
- Комбинированная функция потерь улучшает стабильность
- Требуется больше эпох обучения для улучшения метрик
- Качество сегментации границ требует улучшения
9. 📊 Визуализация результатов
Примеры данных

Предсказания модели

Файлы проекта
- основной кодlab3_unet_segmentation.py- лучшая модельbest_unet_model.h5- детальный отчетlab3_detailed_report.txt