How eunseong-jo/expo-2026 works
VisionGuide combines a Raspberry Pi assistive-vision runtime with local ROI configuration and a networked management dashboard. The main path is camera frames through cane detection, tracking and ROI-trigger logic to spoken guidance; device events and status can also be managed and monitored through the FastAPI/React dashboard. README capabilities and the source index support the major branches shown. Several device and dashboard routes are unsampled, so their internal links are omitted rather than inferred.
Main entry points: camera_live_pi.py Runtime Orchestrator · main.py API Application · roi_manager.py ROI Manager · App.tsx Dashboard Routes
Components 29
Pi Guidance Runtime
- Runtime Orchestrator
device/camera_live_pi.py - Cane Detection
device/detect.py - YOLO Postprocess
device/yolo_postprocess.py - Object Tracking
device/simple_tracker.py - Cane Association
device/cane_person_assoc.py - Trigger Gate Chain
device/gate_chain.py - Announcement Routing
device/announcement_router.py - Audio Trigger Player
device/audio_trigger.py - Event Logging
device/event_logger.py - Video Replay
device/replay_engine.py
Local Tools
- ROI Manager
apps/simulator/roi_manager.py - Pi ROI Editor
apps/roi_editor/server.py - PC Simulator
apps/simulator/app.py - Wi-Fi Onboarding
apps/roi_editor/network_manager.py
Management Backend
- Event Ingest API
dashboard/backend/app/routers/events.py - Dashboard Database
dashboard/backend/app/database.py - API Application
dashboard/backend/app/main.py - Device Heartbeats
dashboard/backend/app/services/heartbeat_service.py - Device Management API
dashboard/backend/app/routers/devices.py - Calibration Services
dashboard/backend/app/services/calibration_service.py - Statistics Service
dashboard/backend/app/services/stats_service.py - WebSocket Manager
dashboard/backend/app/services/ws_manager.py
Web Dashboard
- Dashboard Routes
dashboard/frontend/src/App.tsx - API Client
dashboard/frontend/src/api/client.ts - Device Detail UI
dashboard/frontend/src/pages/DeviceDetail.tsx
Other components
- Blind Cane User
- Pi Camera
- Audio Output
- Administrator
Connections 31
- Blind Cane User → Pi Camera: enters view
- Pi Camera → Runtime Orchestrator: frames
- Runtime Orchestrator → Cane Detection: runs inference
device/camera_live_pi.py - Cane Detection → YOLO Postprocess: postprocesses
- Runtime Orchestrator → Object Tracking: tracks detections
device/camera_live_pi.py - Runtime Orchestrator → Cane Association: associates cane users
device/camera_live_pi.py - Runtime Orchestrator → Trigger Gate Chain: evaluates gates
device/camera_live_pi.py - Runtime Orchestrator → ROI Manager: checks regions
device/camera_live_pi.py - Runtime Orchestrator → Announcement Routing: routes announcements
device/camera_live_pi.py - Runtime Orchestrator → Audio Trigger Player: triggers audio
device/camera_live_pi.py - Audio Trigger Player → Audio Output: plays MP3
- Runtime Orchestrator → Event Logging: logs events
device/camera_live_pi.py - Event Logging → Event Ingest API: posts events
- API Application → Event Ingest API: registers router
dashboard/backend/app/main.py - API Application → Device Management API: registers router
dashboard/backend/app/main.py - API Application → Dashboard Database: initializes database
dashboard/backend/app/main.py - Device Heartbeats → Dashboard Database: reads and writes
dashboard/backend/app/services/heartbeat_service.py - Statistics Service → Dashboard Database: queries records
dashboard/backend/app/services/stats_service.py - API Application → Device Heartbeats: schedules service
dashboard/backend/app/main.py - Administrator → Dashboard Routes: uses dashboard
- Dashboard Routes → API Client: loads data through
- API Client → API Application: HTTP requests
- Device Detail UI → API Client: calls API
dashboard/frontend/src/pages/DeviceDetail.tsx - Dashboard Routes → Device Detail UI: routes to
dashboard/frontend/src/App.tsx - API Application → WebSocket Manager: broadcasts events
- Device Detail UI → Calibration Services: configures calibration
- Pi ROI Editor → ROI Manager: edits ROI settings
apps/roi_editor/server.py - PC Simulator → ROI Manager: uses ROI manager
apps/simulator/app.py - Video Replay → Runtime Orchestrator: builds inference backend
device/replay_engine.py - Video Replay → ROI Manager: filters by ROI
device/replay_engine.py - Pi ROI Editor → Wi-Fi Onboarding: uses network controls
apps/roi_editor/server.py