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