Прототип системы поиска людей на видеоданных с БПЛА. Проект разделен на две части:
server/ - Python-backend обработки видео: OpenCV + YOLO + HTTP API
client/ - desktop-интерфейс пилота на Go + Wails
Идея архитектуры:
[Wails client on ground station]
|
| video.mp4 + fps + confidence
v
[Python processing server]
|
| detections.json + annotated frames
v
[Wails result viewer]
Клиент может работать в двух режимах:
remote- отправляет видео на сервер обработки;local- запускает тот же Python-конвейер на ноутбуке пилота.
Авторизация, база данных и личные кабинеты в прототип не добавлены: система рассчитана на локальный или закрытый контур наземной станции.
project/
├── server/
│ ├── api.py
│ ├── processing.py
│ ├── process_video.py
│ ├── extract_frames.py
│ ├── run_inference.py
│ ├── config.py
│ ├── Dockerfile
│ └── requirements.txt
├── client/
│ ├── app.go
│ ├── main.go
│ ├── wails.json
│ └── frontend/
├── data/
│ ├── uploads/
│ ├── raw_vids/
│ ├── raw_frames/
│ ├── processed_meta/
│ └── models/
└── README.md
Создать и активировать окружение:
python -m venv .venv
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1Установить зависимости:
pip install -r server\requirements.txtПоложить видео:
data\raw_vids\example.mp4
Запустить полный конвейер локально:
python server\process_video.py --video data\raw_vids\example.mp4 --fps 1 --conf 0.35Результаты появятся здесь:
data\processed_meta\example_detections.json
data\processed_meta\example_annotated\
Из корня проекта:
cd server
..\.venv\Scripts\python.exe -m uvicorn api:app --reload --host 127.0.0.1 --port 8000Проверка:
http://127.0.0.1:8000/api/health
Основные endpoints:
POST /api/analyze- загрузить видео и запустить обработку;GET /api/jobs- список готовых заданий;GET /api/jobs/{job_id}/detections- JSON с обнаружениями;GET /api/jobs/{job_id}/frames/{frame_name}- аннотированный кадр;DELETE /api/jobs/{job_id}- удалить временные файлы задания.
Понадобятся Go, Node.js и Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latestЗапуск в dev-режиме:
cd client
npm install --prefix frontend
wails devСборка desktop-приложения:
cd client
wails build