Initial commit: digital reception monorepo (M1-M11 + demo extensions)
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# 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`.
|
||||
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
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` (default `http://localhost:8001`)
|
||||
- `API_BASE_URL` (default `http://localhost:4000`)
|
||||
- `SAMPLE_EVERY` (default `10`)
|
||||
- `TRACK_DISTANCE_THRESH` (default `0.3`)
|
||||
- `TRACK_WINDOW_SEC` (default `2.0`)
|
||||
|
||||
## Критерий приёмки
|
||||
|
||||
После прогона:
|
||||
- В `tracks` появилось хотя бы 1 запись.
|
||||
- В `face_embeddings` сохранены эмбеддинги.
|
||||
- В `track_events` есть `arrived`.
|
||||
- В логах `apps/api` видны POST /ingest/tracks и /ingest/track-events.
|
||||
Reference in New Issue
Block a user