whales-identification

Вклад команды в формирование датасета

Описание собственного вклада команды в формирование, очистку и разметку датасета — в дополнение к публичному корпусу Happy Whale.

Дата актуализации: 2026-04-15
Ответственный: Тарасов А.А. (Data Engineer), Серов А.И. (ML-инженер, ревью данных)


Резюме: что сделала команда

Вид работы Исполнитель Артефакт Объём
Разметка bounding box спинных плавников Тарасов А.А. data/backfin_annotations.csv 5 201 bbox
Формирование тестовой выборки «кит/не-кит» Серов А.И. data/test_split/manifest.csv 202 изображения
Скрипт фильтрации по чёткости (Лапласиан) Тарасов А.А. whales_identify/filter_processor.py
Скрипт аугментации (12 трансформаций) Тарасов А.А. whales_identify/dataset.py
Пайплайн обогащения датасета Ванданов С.А. scripts/populate_test_split.py
Загрузка данных Минприроды РФ (~29 000 снимков) Тарасов А.А. NDA-данные, не публикуются ~29 000

1. Собственная работа команды

1.1 Разметка bounding box — data/backfin_annotations.csv

Исполнитель: Тарасов А.А.
Файл: data/backfin_annotations.csv

Команда вручную разметила 5 201 bounding box спинных плавников китов и дельфинов из аэрофотоснимков.

Формат разметки:

filename, x, y, w, h
00021adfb725ed.jpg, 0, 113, 804, 512
000562241d384d.jpg, 1625, 552, 1020, 359
...

Разметка использована для:

1.2 Тестовая выборка — data/test_split/

Исполнитель: Серов А.И. (формирование и верификация)
Файл: data/test_split/manifest.csv

Команда сформировала сбалансированную тестовую выборку из 202 изображений:

Выборка обеспечивает:

Скрипт формирования: scripts/populate_test_split.py

1.3 Фильтрация по качеству изображений — whales_identify/filter_processor.py

Исполнитель: Тарасов А.А.
Файл: whales_identify/filter_processor.py

Реализован лапласиан-фильтр отбора чётких изображений. Алгоритм:

  1. Вычислить дисперсию лапласиана пикселей изображения
  2. Если variance(laplacian) < threshold → изображение размыто → исключить
  3. Порог подобран на обучающей выборке (~80 у.е.)

Это позволило исключить ~15% нечётких изображений из Happy Whale перед тренировкой, повысив метрики.

1.4 Данные Министерства природных ресурсов РФ

Объём: ~29 000 аэрофотоснимков
Статус: Получены по соглашению с МПР РФ в рамках гранта ФСИ. Данные не публикуются (ограничения распространения государственных данных).
Применение: Доп. тренировочный набор для видов, слабо представленных в HappyWhale (горбатые киты Дальнего Востока, косатки).


2. Внешние источники и вклад команды в их обработку

2.1 Happy Whale Kaggle Dataset

Источник: Kaggle HappyWhale
Лицензия: CC-BY-NC-4.0
Объём оригинала: ~51 034 изображений, 15 587 индивидуальных особей, 30 видов

Что сделала команда:

Работа Инструмент Результат
Отбор по чёткости (лапласиан) whales_identify/filter_processor.py Удалены ~7 700 размытых изображений
Аугментация (12 трансформаций) whales_identify/dataset.py Albumentations: flip, rotate, noise, blur, CLAHE, elastic
Калибровка CLIP-порога scripts/calibrate_clip.py Threshold=0.52 на собственной test_split/
Загрузка в DVC .dvc/config Версионирование на Yandex Disk + HuggingFace
Обогащение аннотациями bbox data/backfin_annotations.csv 5 201 собственная bbox-разметка поверх Happy Whale

Важно: Счётчик «80 000 снимков» в ТЗ — это агрегированный датасет:


3. DVC-версионирование датасета

Файлы:

Команды для воспроизводимости:

# Восстановить данные из DVC-хранилища
dvc pull data/backfin_annotations.csv
dvc pull data/test_split/

# Проверить целостность
dvc status

4. Соответствие ТЗ

Требование ТЗ Факт Статус
80 000 изображений Happy Whale (51k) + МПР РФ (~29k) = ~80 034
1 000 особей 15 587 индивидов (Happy Whale)
Собственная разметка 5 201 bbox в data/backfin_annotations.csv
Аугментация 12 трансформаций Albumentations
Независимая тестовая выборка 202 изображения в data/test_split/