Adds call_platerecognizer() to lpr.py which sends frames to the PlateRecognizer cloud API (regions=fr) with a 1920px cap to stay within API limits. In watcher.py, switches to a two-pass frame scoring strategy: Laplacian sharpness on all frames first, then YOLO only on the top-10 sharpest frames, then PlateRecognizer on the top-3 by score. Falls back to local YOLO+Tesseract/PaddleOCR if the API returns no result. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35 lines
980 B
YAML
35 lines
980 B
YAML
services:
|
|
camwatch:
|
|
build: .
|
|
container_name: camwatch
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./data:/data
|
|
- ./models:/models:ro
|
|
environment:
|
|
- CAMERA_URL=http://192.168.1.44
|
|
- CAMERA_USER=admin
|
|
- CAMERA_PASS=Wxcvbn99--$$$$
|
|
- CAMERA_NAME=portail
|
|
- MODEL_CACHE=/models
|
|
- DB_PATH=/data/camwatch.db
|
|
- SNAPSHOTS_DIR=/data/snapshots
|
|
- EVENTS_DIR=/data/events
|
|
- POLL_INTERVAL=2
|
|
- CAPTURE_DURATION=15
|
|
- CAPTURE_FPS=5
|
|
- COOLDOWN=60
|
|
- PLATERECOGNIZER_API_KEY=c1127284b5ef06b49ade33f1dfc0f50169b88c1d
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.camwatch.rule=Host(`camwatch.nas.percolouco.com`)
|
|
- traefik.http.routers.camwatch.entrypoints=websecure
|
|
- traefik.http.routers.camwatch.tls.certresolver=letsencrypt
|
|
- traefik.http.services.camwatch.loadbalancer.server.port=8000
|
|
networks:
|
|
- proxy
|
|
|
|
networks:
|
|
proxy:
|
|
external: true
|