112 lines
4.4 KiB
Markdown
112 lines
4.4 KiB
Markdown
# Задачи для следующей сессии
|
||
|
||
## Сравнение текущей реализации с требованиями
|
||
|
||
### ✅ РЕАЛИЗОВАНО
|
||
|
||
| Требование | Статус | Файл |
|
||
|------------|--------|------|
|
||
| Бинарная классификация OK/Нарушение | ✅ Готово | src/dxa/model.py |
|
||
| Определение анатомической области | ✅ Готово | src/dxa/inference.py |
|
||
| Экспорт в XLSX/CSV | ✅ Готово | src/main.py /api/v1/export |
|
||
| API для пакетной обработки | ✅ Готово | src/main.py /api/v1/batch |
|
||
| Docker контейнеризация | ✅ Готово | Dockerfile |
|
||
| Web-интерфейс | ✅ Готово | src/api/static/ |
|
||
| Определение типа нарушения | ✅ Частично | src/quality/detailed_assessment.py |
|
||
| Детальные метрики качества | ✅ Готово | src/quality/detailed_assessment.py |
|
||
| Проверка движения (motion) | ✅ Готово | detect_motion_blur() |
|
||
| Проверка артефактов | ✅ Готово | detect_artifacts() |
|
||
| DICOM SR формат | ✅ Готово | /api/v1/analyze/sr |
|
||
| Визуализация маски | ✅ Готово | include_visualization=true |
|
||
|
||
---
|
||
|
||
## Мультимодельная архитектура
|
||
|
||
См. документацию: `docs/multi_model_architecture.md`
|
||
|
||
```
|
||
Pipeline:
|
||
1. Region Detector → 2. Segmentator → 3. Quality Classifier → 4. Violation Type → 5. Aggregator
|
||
```
|
||
|
||
### Модели:
|
||
|
||
| Модель | Назначение | Файл |
|
||
|--------|------------|------|
|
||
| Region Detector | Spine/Hip определение | `src/models/region_detector.py` |
|
||
| Segmentator | Сегментация костей | `src/models/segmentation/` |
|
||
| Quality Classifier | OK/Violation бинарный | `src/models/classification/quality.py` |
|
||
| Violation Classifier | Типы нарушений (7+) | `src/models/classification/violation.py` |
|
||
| Artifact Detector | Детекция артефактов | `src/models/artifacts/detector.py` |
|
||
| Grad-CAM | Heatmap внимания | `src/models/visualization/gradcam.py` |
|
||
|
||
---
|
||
|
||
## ПЛАН РЕАЛИЗАЦИИ
|
||
|
||
### Фаза 1: Архитектура и модели (высокий приоритет)
|
||
|
||
1. **Создать структуру моделей**
|
||
- `src/models/` - директория для всех моделей
|
||
- `src/pipeline/` - основной пайплайн
|
||
- `src/training/` - скрипты обучения
|
||
|
||
2. **Region Detector**
|
||
- Переиспользовать текущую логику из inference.py
|
||
- Обучить классификатор на 4 класса
|
||
|
||
3. **Segmentation Models**
|
||
- Spine Segmentator (U-Net)
|
||
- Hip Segmentator (U-Net)
|
||
|
||
4. **Quality Classifier (бинарный)**
|
||
- ResNet18 с attention
|
||
- Weighted loss для балансировки
|
||
|
||
5. **Violation Type Classifier (многоклассовый)**
|
||
- 7 классов для spine
|
||
- 7 классов для hip
|
||
- Multi-task learning
|
||
|
||
### Фаза 2: Пайплайн и интеграция
|
||
|
||
6. **Pipeline класс**
|
||
- Объединение всех моделей
|
||
- Queue для асинхронной обработки
|
||
|
||
7. **API интеграция**
|
||
- Обновить endpoints для использования пайплайна
|
||
- Batch processing
|
||
|
||
### Фаза 3: Визуализация и метрики
|
||
|
||
8. **Grad-CAM Heatmap**
|
||
- Извлечение attention карт
|
||
- Наложение на изображение
|
||
|
||
9. **Метрики**
|
||
- ROC-AUC, PR-AUC
|
||
- Macro-F1 с доверительными интервалами
|
||
|
||
---
|
||
|
||
## Текущие ограничения
|
||
|
||
1. Модель обучена на бинарную классификацию - нужно переобучение
|
||
2. F1 ~0.27 - низкий из-за дисбаланса классов
|
||
3. Датасет ~100 исследований - нужно 500+
|
||
4. Сегментация использует простой threshold - нужно дообучить модель
|
||
5. Heatmap не реализовано - требует дообучения
|
||
|
||
---
|
||
|
||
## ЗАПУСК ДЛЯ ТЕСТИРОВАНИЯ
|
||
|
||
```bash
|
||
cd /Users/denis/workspace/bone_2026
|
||
python -m uvicorn src.main:app --host 0.0.0.0 --port 8000
|
||
```
|
||
|
||
Открыть http://localhost:8000
|