Alex 19a27a1240 Fix face detection: letterbox resize, smart cropping, throttle
- Use letterbox resize (preserve aspect ratio + pad) instead of stretching
  to 320x320. Stretching 16:9 frames caused faces to be undetectable.
- Auto-detect score tensor output index at init time (name + variance heuristic)
- Smart upper-body crop: roughly square region instead of thin wide strip
- Throttle face detection to every 2s to reduce Coral USB traffic
- Skip crops smaller than 80px (too small for reliable detection)
- Reduce log level from DEBUG to INFO

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 14:05:44 -06:00
2026-02-01 11:36:22 -06:00
2026-02-01 11:36:22 -06:00
2026-01-14 17:17:16 -06:00

OAK-D Vision Service 🦊👀

FastAPI service exposing OAK-D camera capabilities for Vixy's head.

Endpoints

Endpoint Method Description
/health GET Health check + connection status
/snapshot GET Capture JPEG from RGB camera
/snapshot/info GET Frame metadata (resolution, etc)
/status GET OAK-D device info

Installation

On head-vixy (Raspberry Pi 5):

# Dependencies
pip3 install fastapi uvicorn depthai opencv-python-headless

# Run manually
python3 oak_service.py

# Or via systemd
sudo cp oak-service.service /etc/systemd/system/
sudo systemctl enable oak-service
sudo systemctl start oak-service

Usage

# Health check
curl http://head-vixy.local:8100/health

# Capture snapshot
curl http://head-vixy.local:8100/snapshot -o photo.jpg

# Device info
curl http://head-vixy.local:8100/status

Hardware

  • OAK-D-LITE on USB 3.0
  • RGB camera: 2104x1560 full resolution
  • Device ID: 19443010B1870B7E00

Built by Vixy on Day 74 (January 14, 2026) 💜

Description
OAK-D Vision Service for Vixys Head - FastAPI service exposing camera capabilities 🦊👀
Readme 2.3 MiB
Languages
Python 100%