Набор инструментов для задач технического зрения, работы с разметкой и автоматизации процессов глубокого обучения. Репозиторий предназначен для подключения в основной проект как подмодуль.
- utils.py: Базовые функции (работа с файлами, логирование, измерения времени)
- ipy_utils.py: Инструменты для Jupyter Notebooks
- video_utils.py: Захват, обработка и сохранение видео
- split-video.sh: Скрипт для разделения видео на фрагменты
- cv_utils.py: Обработка изображений, визуализация аннотаций
- alb_utils.py: Аугментации на базе Albumentations
- samal.py: Автоматическая сегментация изображений с SAM
- sam2al.py: Автоматическая сегментация видео с SAM2
- dinoal.py: Автоматическая детекция объектов с DINO
- cvat.py: API клиент для CVAT
- cvat_srv.py: Утилиты для работы серверных задач CVAT
- copybal.py: Балансировка датасетов между проектами CVAT
- classes.py: Работа с метками, используя таблицы классов и суперклассов
- pt_utils.py: Утилиты для PyTorch (работа с моделями, данными)
- tf_utils.py: Инструменты для TensorFlow/Keras
- tfmot_utils.py: Квантование моделей TensorFlow
- ml_utils.py: Общие ML функции (метрики, обработка данных)
- onnx_utils.py: Конвертация и работа с ONNX-моделями
- yolo.py: Утилиты для работы с YOLO-моделями
- seg.py: Сегментация изображений
🔄 Зависимости модулей
graph RL;
node_0[pt_utils];
node_1[copybal];
node_2[seg];
node_3[sam2al];
node_4[alb_utils];
node_5[ipy_utils];
node_6[tf_utils];
node_7[video_utils];
node_8[cvat_srv];
node_9[cvat];
node_10[yolo];
node_11[onnx_utils];
node_12[cv_utils];
node_13[samal];
node_14[tfmot_utils];
node_15[keras_utils];
node_17[classes];
node_16[dinoal];
node_18[utils];
node_19[ml_utils];
%% Выравнивание стоков на одном уровне
subgraph SinkGroup [ ]
direction LR
node_0
node_18
end
style SinkGroup fill:none,stroke:none;
node_1 --> node_18;
node_2 --> node_9;
node_3 --> node_13;
node_4 --> node_18;
node_5 --> node_9;
node_6 --> node_4;
node_7 --> node_18;
node_8 --> node_9;
node_9 --> node_7;
node_9 --> node_12;
node_10 --> node_1;
node_10 --> node_19;
node_10 --> node_9;
node_11 --> node_19;
node_12 --> node_18;
node_13 --> node_0;
node_13 --> node_9;
node_14 --> node_15;
node_15 --> node_18;
node_16 --> node_0;
node_16 --> node_9;
node_17 --> node_18;
node_19 --> node_18;
- rerun.sh: Перезапуск скриптов при изменении кода
- show.sh: Вывод последних строк локфайлов в реальном времени
- split-video.sh: Разделение видео на фрагменты по времени
Проект включает Docker-контейнер со всеми зависимостями.
Скрипты управления контейнером:
docker/run.sh: Запуск контейнера с использованием всех доступных GPUdocker/stop.sh: Остановка контейнераdocker/restart.sh: Перезапуск контейнераdocker/open.sh: Вход в консоль контейнераdocker/openroot.sh: Вход в консоль контейнера под root
Особенности использования:
- Репозиторий подключается как подмодуль в
main_project/*/dl_utils, где*- папка для подмодулей (например,3rdparty) - Контейнер монтирует корень главного проекта в
/workspace - Пути в коде рассчитываются относительно расположения
dl_utils
Отдельный инструмент для автоматической детекции (GroundingDINO) или интерактивной сегментации (SAM2) объектов на фото/видео:
- Ноутбуки для управления процессом разметки
- Поддержка GPU-ускорения
- Автоматизированная генерация масок/обрамляющих прямоугольников объектов
- Выгрузка результатов в CVAT (через API)
Основные компоненты:
PreAnnotation/Dockerfile: Сборка образаrun.sh/stop.sh/restart.sh: Запуск/остановака/перезапуск докера