Skip to content

Набор утилит для проектов глубокого обучения в задачах технического зрения.

License

Notifications You must be signed in to change notification settings

NikitaShubin/dl_utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 dl_utils: Утилиты для глубокого обучения

Набор инструментов для задач технического зрения, работы с разметкой и автоматизации процессов глубокого обучения. Репозиторий предназначен для подключения в основной проект как подмодуль.

🧩 Основные модули

🛠️ Утилиты общего назначения

  • utils.py: Базовые функции (работа с файлами, логирование, измерения времени)
  • ipy_utils.py: Инструменты для Jupyter Notebooks

🎥 Работа с видео

  • video_utils.py: Захват, обработка и сохранение видео
  • split-video.sh: Скрипт для разделения видео на фрагменты

🖼️ Техническое зрение (CV)

  • cv_utils.py: Обработка изображений, визуализация аннотаций
  • alb_utils.py: Аугментации на базе Albumentations

⚙️ Авторазметка

  • samal.py: Автоматическая сегментация изображений с SAM
  • sam2al.py: Автоматическая сегментация видео с SAM2
  • dinoal.py: Автоматическая детекция объектов с DINO

🏷️ Работа с CVAT

🤖 Глубокое обучение

  • 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;
Loading

>_ Bash-скрипты

  • rerun.sh: Перезапуск скриптов при изменении кода
  • show.sh: Вывод последних строк локфайлов в реальном времени
  • split-video.sh: Разделение видео на фрагменты по времени

🐳 Docker окружение

Проект включает Docker-контейнер со всеми зависимостями.

Скрипты управления контейнером:

  • docker/run.sh: Запуск контейнера с использованием всех доступных GPU
  • docker/stop.sh: Остановка контейнера
  • docker/restart.sh: Перезапуск контейнера
  • docker/open.sh: Вход в консоль контейнера
  • docker/openroot.sh: Вход в консоль контейнера под root

Особенности использования:

  1. Репозиторий подключается как подмодуль в main_project/*/dl_utils, где * - папка для подмодулей (например, 3rdparty)
  2. Контейнер монтирует корень главного проекта в /workspace
  3. Пути в коде рассчитываются относительно расположения dl_utils

✨ Интерактивная предразметка (PreAnnotation)

Отдельный инструмент для автоматической детекции (GroundingDINO) или интерактивной сегментации (SAM2) объектов на фото/видео:

  • Ноутбуки для управления процессом разметки
  • Поддержка GPU-ускорения
  • Автоматизированная генерация масок/обрамляющих прямоугольников объектов
  • Выгрузка результатов в CVAT (через API)

Основные компоненты:

  • PreAnnotation/Dockerfile: Сборка образа
  • run.sh/stop.sh/restart.sh: Запуск/остановака/перезапуск докера

👨‍💻Автор: Никита Шубин
Лицензия: MIT

About

Набор утилит для проектов глубокого обучения в задачах технического зрения.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •