You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
5 days ago | |
|---|---|---|
| .. | ||
| video_ingest | 5 days ago | |
| README.md | 5 days ago | |
| package.json | 5 days ago | |
| requirements.txt | 5 days ago | |
README.md
video-ingest (минимальный скаффолд)
Это не боевой video-ingest из ТЗ §6. Это smoke-скаффолд Фазы 1, чтобы проверить цепочку «видео → face-service → apps/api → БД» без RTSP/GPU/ByteTrack. Полноценный сервис делается в Фазе 0.
Что делает:
- Открывает локальный mp4 через OpenCV.
- Каждый N-й кадр (
SAMPLE_EVERY, default 10) отправляет вface-service /embed. - Простейший single-camera трекинг по cos-дистанции (
< TRACK_DISTANCE_THRESH=0.3в окнеTRACK_WINDOW_SEC=2). - На новый трек:
POST /ingest/tracks+ событиеarrived. - Каждый эмбеддинг —
POST /face-service/track-embeddings.
Запуск
cd apps/video-ingest
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# Убедись, что face-service, apps/api, postgres подняты.
python -m video_ingest --source samples/walk-by.mp4 --camera-name cam-entrance --zone A
Переменные окружения
FACE_SERVICE_URL(defaulthttp://localhost:8001)API_BASE_URL(defaulthttp://localhost:4000)SAMPLE_EVERY(default10)TRACK_DISTANCE_THRESH(default0.3)TRACK_WINDOW_SEC(default2.0)
Критерий приёмки
После прогона:
- В
tracksпоявилось хотя бы 1 запись. - В
face_embeddingsсохранены эмбеддинги. - В
track_eventsестьarrived. - В логах
apps/apiвидны POST /ingest/tracks и /ingest/track-events.