Проект предназначен для обработки видеопотока с камер, включая детекцию, классификацию объектов и обработку изображений. Разработка основывается на FastAPI и включает несколько модулей для обработки изображений, работы с SDK камер и API маршрутизации.
├── docker-compose.yml # Конфигурация Docker Compose
├── .env_vars # Файл переменных окружения
├── app/
│ ├── Dockerfile # Dockerfile для сборки приложения
│ ├── main.py # Точка входа FastAPI
│ ├── requirements.txt # Зависимости проекта
│ ├── services/ # Сервисы и обработка данных
│ │ ├── camera.py # Работа с камерами
│ │ ├── image_processor.py # Обработка изображений
│ │ ├── detection.py # Логика детекции объектов
│ ├── models/ # Модели для предсказаний
│ │ ├── model_loader.py # Загрузка ML модели
│ │ ├── prediction.py # Предсказание объектов
│ ├── api/ # API маршруты
│ │ ├── routers/ # Маршруты FastAPI
│ │ ├── predict.py # Роут для предсказаний
│ │ ├── camera_router.py # Роут для работы с камерами
│ ├── utility/ # Утилиты и SDK
│ │ ├── HikCamera/ # SDK для работы с камерами Hikvision
├── config/nginx/nginx.conf # Конфигурация Nginx
└── README.md # Документация
-
Клонирование репозитория:
git clone <> cd <>
-
Создание
.envфайла: Скопируйте.env_varsи настройте переменные окружения. -
Сборка и запуск через Docker Compose:
docker-compose up --build
-
Доступ к API: API будет доступен по адресу:
http://localhost:8000
- Обработка видеопотока:
- Захват видеопотока с камер.
- Обработка изображений (контурная детекция, предсказания объектов).
- API на FastAPI:
/predict- эндпоинт для выполнения предсказаний на изображении./camera- эндпоинт для взаимодействия с камерами.
- Поддержка работы с SDK камер Hikvision.
- Докеризация проекта.
- Реверс-проксирование через Nginx.
- Архитектура проекта:
- Создание каркаса FastAPI приложения.
- Настройка API маршрутов (
api/routers/...).
- Сервисы:
- Модуль для работы с камерами (
services/camera.py). - Обработка изображений (
services/image_processor.py).
- Модуль для работы с камерами (
- Модули машинного обучения:
- Загрузка и инициализация модели (
models/model_loader.py). - Реализация предсказаний (
models/prediction.py).
- Загрузка и инициализация модели (
- Интеграция SDK камер:
- Работа с SDK камер Hikvision (
utility/HikCamera/...). - Добавление утилит для управления камерами.
- Работа с SDK камер Hikvision (
- Nginx конфигурация:
- Настройка проксирования через
config/nginx/nginx.conf.
- Настройка проксирования через
- Докеризация:
- Написание
Dockerfileиdocker-compose.yml.
- Написание
Проект использует следующие технологии и библиотеки:
- FastAPI: для построения REST API.
- Docker и Docker Compose: для контейнеризации.
- PyTorch: для загрузки и работы с ML моделями.
- Nginx: для проксирования запросов.
- Hikvision SDK: для работы с камерами.
Установите зависимости:
pip install -r app/requirements.txt- Игорь Варламов: froginkrit@gmail.com
- Максим Гавриленко: maksimgavrilenkowork@gmail.com