Указатель ноутбуков и артефактов по КП ТЗ
Карта соответствия: для каждой работы КП — конкретные ipynb-файлы и модули, где она выполнена.
Репозиторий: https://github.com/0x0000dead/whales-identification
Ветка: main
Дата актуализации: 2026-06-11
Метрики ТЗ: где посчитаны
| Метрика (ТЗ) |
Значение |
Где посчитана |
Воспроизведение |
| Sensitivity / Specificity (бинарная задача, 7 архитектур) |
Sens 84.75–93.10 %, Spec 88.12–95.00 % |
06_benchmark_binary.ipynb |
запуск ноутбука сверху вниз |
| Sensitivity / Specificity / Recall / F1 (multiclass, 15 587 классов) |
Sens 78–91 %, Spec 88–94 %, Recall 76–91 %, F1 0.79–0.92 |
06_benchmark_multiclass.ipynb |
запуск ноутбука сверху вниз |
| Production-гейт: TPR (Sensitivity/Recall) = 0.95, TNR (Specificity) = 0.902, ROC-AUC 0.984, порог 0.52 |
n = 202 (95 TP / 10 FP / 92 TN / 5 FN) |
reports/METRICS.md, anti_fraud_threshold.yaml |
make compute-metrics, make calibrate-clip |
Условные обозначения
| Сокращение |
Значение |
| КП |
Ключевой показатель / конкретная работа по ТЗ |
| ipynb |
Jupyter notebook |
| py |
Python-модуль |
| yml |
YAML-конфигурация |
КП 1: Настройка инфраструктуры и CI/CD (Балцат К.И.)
КП 1.1 — Настройка репозитория для автоматической проверки кода
| Артефакт |
Ссылка на GitHub |
Назначение |
.github/workflows/ci.yml |
ci.yml |
6-стадийный CI/CD: lint → security → test → docker → trivy → status |
.pre-commit-config.yaml |
.pre-commit-config.yaml |
20 хуков: black, flake8, mypy, bandit, isort, nbstripout, interrogate, prettier |
.github/labeler.yml |
labeler.yml |
Автоматическая расстановка меток на PR |
Как проверить: cd whales_be_service && poetry run pre-commit run --all-files
КП 1.2 — Тестирование пилотных прототипов детекции
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/01_backfin-detection-with-yolov5.ipynb |
01_yolov5.ipynb |
Детекция плавников китов через YOLOv5: аннотации bbox, mAP@0.5 |
research/notebooks/01_cetacean-yolov8-train-and-predict.ipynb |
01_yolov8.ipynb |
Тренировка и предсказание YOLOv8 на датасете спинных плавников |
data/backfin_annotations.csv |
backfin_annotations.csv |
5 201 bounding box — собственная разметка команды (Тарасов А.А.) |
КП 2: Разработка и исследование ML-моделей (Ванданов С.А., Серов А.И.)
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/02_ViT_train_effiecientnet.ipynb |
02_train.ipynb |
Тренировка ViT + EfficientNet на Happy Whale, метрики train/val |
research/notebooks/02_ViT_inference_efficientnet.ipynb |
02_infer.ipynb |
Инференс ViT+EfficientNet, top-1/top-5 accuracy, confusion matrix |
research/notebooks/03_efficientnet_experiments.ipynb |
03_effnet.ipynb |
Сравнение EfficientNet B0–B5: точность, время инференса, размер модели |
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/04_resnet_classification_experiments.ipynb |
04_resnet.ipynb |
ResNet-54/101: Precision/Recall/F1, confusion matrix по 30 видам |
research/notebooks/05_swinT_experiments.ipynb |
05_swinT.ipynb |
Swin Transformer: точность 90%, скорость ~2.2s, параметры 87M |
КП 2.3 — Бинарная классификация «кит/не-кит» (CLIP anti-fraud gate)
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/06_benchmark_binary.ipynb |
06_binary.ipynb |
TPR=0.95, TNR=0.902, ROC-AUC=0.984, F1=0.927 на 202 изображениях |
research/notebooks/06_benchmark_multiclass.ipynb |
06_multiclass.ipynb |
Мультиклассовый бенчмарк EfficientNet-B4 ArcFace: top-1, top-5 accuracy |
configs/anti_fraud_threshold.yaml |
anti_fraud_threshold.yaml |
Порог CLIP = 0.52 (откалиброван на data/test_split/) |
Подтверждённые метрики (Серов А.И., 15.04.2026):
Anti-fraud gate: TPR=0.9500 TNR=0.9020 Precision=0.9050 F1=0.9270
Идентификация: top-1=0.22 top-5=0.25 (13 837 классов, ArcFace s=30 m=0.5)
Латентность: p50=484ms p95=519ms p99=597ms (бюджет ТЗ: 8000ms)
КП 2.4 — ONNX экспорт для кросс-платформенного инференса
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/07_onnx_inference_compare.ipynb |
07_onnx.ipynb |
Экспорт ViT → ONNX, сравнение скорости PyTorch vs ONNX Runtime |
Примечание: Ноутбук использует legacy ViT модель (model-e15.pt). Скачать с Yandex Disk: https://disk.yandex.ru/d/GshqU9o6nNz7ZA
КП 2.5 — Сравнительная таблица всех архитектур ИНС
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/08_benchmark_all_compare.ipynb |
08_compare.ipynb |
Полная таблица: ResNet-54 → ResNet-101 → SwinT → EffB0–B5 → ViT-B16 → ViT-L32 |
Сводная таблица архитектур (из ноутбука 08):
| Архитектура |
Precision |
Скорость CPU (с) |
Параметры |
Статус |
| ResNet-54 |
82% |
~0.8 |
25M |
Базовый |
| ResNet-101 |
85% |
~1.2 |
45M |
Baseline |
| Swin-T |
90% |
~2.2 |
87M |
Production |
| EfficientNet-B0 |
88% |
~1.0 |
8M |
Fast |
| EfficientNet-B4 ArcFace |
91% |
~1.8 |
19M |
Production |
| ViT-B/16 |
91% |
~2.0 |
86M |
Production |
| ViT-L/32 |
93% |
~3.5 |
307M |
Best |
КП 3: Разработка продуктовой системы
КП 3.1 — Аугментация данных (Тарасов А.А.)
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/09_augmentation_example.ipynb |
09_augmentation.ipynb |
Примеры аугментации: flip, rotate, noise, blur, CLAHE, elastic |
whales_identify/dataset.py |
dataset.py |
CetaceanDataset с Albumentations pipeline (12 трансформаций) |
whales_identify/filter_processor.py |
filter_processor.py |
Лапласиан-фильтр для отбора чётких изображений (σ > порог) |
КП 3.2 — Background removal и визуализация
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/10_remove_bg_example.ipynb |
10_remove_bg.ipynb |
rembg: удаление фона, base64 PNG-маска для API |
КП 3.3 — Data Stream и видеопоток (Тарасов А.А.)
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/11_data_stram_cv_video.ipynb |
11_data_stream.ipynb |
Data Stream: покадровая обработка видеофайлов через OpenCV |
whales_be_service/src/whales_be_service/monitoring/drift.py |
drift.py |
Rolling-window drift detection (окно 1000 сэмплов, порог ±10%) |
КП 3.4 — Интеграционное тестирование идентификации (Серов А.И.)
| Артефакт |
Ссылка на GitHub |
Описание |
research/notebooks/12_test_detection_id.ipynb |
12_test.ipynb |
Сквозной тест детекции + идентификации на тестовой выборке |
data/test_split/ |
test_split/ |
100 cetacean + 102 non-cetacean изображений с manifest.csv |
whales_be_service/tests/ |
tests/ |
88 unit-тестов pytest (coverage > 80%) |
КП 3.5 — Backend API (Ванданов С.А.)
| Артефакт |
Ссылка на GitHub |
Описание |
whales_be_service/src/whales_be_service/main.py |
main.py |
FastAPI: /v1/predict-single, /v1/predict-batch, /metrics, /health |
whales_be_service/src/whales_be_service/inference/ |
inference/ |
Pipeline: CLIP gate → EfficientNet-B4 ArcFace → rembg mask |
КП 3.6 — Frontend UI (Тарасов А.А.)
| Артефакт |
Ссылка на GitHub |
Описание |
frontend/src/ |
frontend/src/ |
React 18 + TypeScript: upload, ConfidenceGauge, RejectionCard |
КП 3.7 — CI/CD и MLOps (Балцат К.И.)
| Артефакт |
Ссылка на GitHub |
Описание |
.github/workflows/ci.yml |
ci.yml |
6-стадийный GitHub Actions (lint, security, test, docker, trivy, status) |
.github/workflows/smoke.yml |
smoke.yml |
End-to-end smoke test против реального API |
.github/workflows/metrics.yml |
metrics.yml |
Автоматический расчёт TPR/TNR на data/test_split/ |
.gitlab-ci.yml |
.gitlab-ci.yml |
GitLab CI: 6 стадий (build → quality → test → artifacts → publish → deploy) |
КП 3.8 — Системный анализ и классификация (Серов А.И.)
| Артефакт |
Ссылка на GitHub |
Описание |
whales_be_service/src/whales_be_service/inference/identification.py |
identification.py |
EfficientNet-B4 ArcFace, fallback chain: effb4 → ViT → ResNet |
models/registry.json |
registry.json |
Model Registry: версии, метрики, хэши чекпоинтов |
MODEL_CARD.md |
MODEL_CARD.md |
Карточка модели: обучение, метрики, ограничения, примеры |
docs/GRANT_DELIVERABLES.md |
GRANT_DELIVERABLES.md |
Полный маппинг ТЗ§ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ → измеренные значения |
Ссылки на отчёты с метриками
| Файл |
Содержание |
reports/metrics_latest.json |
TPR, TNR, Precision, F1, ROC-AUC, top-1, top-5, latency p50/p95/p99 |
reports/METRICS.md |
Текстовый отчёт с интерпретацией результатов |
reports/SCALABILITY.md |
R²=0.9982 (линейная сложность по ТЗ §3) |
reports/NOISE_ROBUSTNESS.md |
Деградация ≤6.9% при шуме (ТЗ §4: ≤20%) |
reports/scalability_latest.json |
JSON-данные бенчмарка масштабируемости |
reports/noise_robustness.json |
JSON-данные бенчмарка устойчивости к шуму |