Платформа автоматического аннотирования и генерация обучающих наборов данных для моделей компьютерного зрения.
- Регистрация пользователей с помощью библиотеки fastapi-users.
- Аутентификация реализована с помощью куков и JWT-токена.
- Создание датасетов разрешено толька авторизованным пользователям
- Возможность получения подробной информации о себе.
- Возможность развернуть проект в Docker-контейнерах.
- Python 3.12
- FastAPI
- Асинхронность
- JWT
- Alembic
- SQLAlchemy
- Docker
- PostgreSQL
- Asyncpg
- Uvicorn
- Клонировать репозиторий:
git clone https://github.com/lnikioffic/VisionDataForge.git
- Установка библиотек:
python -m pip install -r requirements/requirements.txt
на Linux torch CUDA установится сам, если есть CUDA драйвера.
- Файл окружения
.env
. Создать файл.env
по образцуenv-example
:
touch .env
- Установка CUDA для Windows:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
- Генерация ключей для JWT:
mkdir certs && cd certs && openssl genrsa -out jwt-private.pem 2048 && \
openssl rsa -in jwt-private.pem -outform PEM -pubout -out jwt-public.pem
-
Создайте базу данных под названием
Forge
-
Применение миграции:
alembic upgrade head
- Запуск проекта:
uvicorn src.main:app --reload
-
Находясь в главной директории проекта:
-
Создать файл
.env
по образцу.env-example-docker
:
touch .env
- Запустить проект:
docker-compose up -d --build
Платформа Vision Data Forge предоставляет удобный интерфейс для создания датасетов.
- Пользователь загружает видеофайл.
- Система проверяет соответствие формата видео и, при успешной проверке, загружает видео в рабочее пространство.
- Система определяет скорость воспроизведения видео.
- Пользователь нажимает кнопку "Начать аннотирование".
- Система отображает форму для добавления класса аннотирования.
- Пользователь вводит название нового класса.
- Система валидирует данные и отображает добавленный класс в панели инструментов.
- Пользователь размечает начальный кадр, используя инструменты платформы.
- После завершения пользователь нажимает кнопку "Завершить аннотирование".
- Система сохраняет размеченный кадр и отображает его справа от рабочего пространства.
- Пользователь выбирает размеченный кадр из панели.
- Нажимает кнопку "Создать датасет".
- Пользователь подтверждает формирование датасета.
- Система начинает процесс генерации и отображает прогресс.
- После завершения датасет добавляется в личный кабинет пользователя.