A distributed, edge-to-cloud computer vision platform designed for multi-camera object tracking, real-time spatial analytics, automated quality inspection, and LLM-driven incident reasoning.
+---------------------------------------+
| React 18 + TypeScript Dashboard |
| HTML5 Canvas HUD / AI Copilot Drawer|
+-------------------+-------------------+
|
WebSocket / REST API
|
+-------------------v-------------------+
| FastAPI Cloud Backend |
| Async SQLAlchemy / Pydantic v2 |
+---------+-------------------+---------+
| |
+-------------------v---+ +-----------v-----------------+
| PostgreSQL 16 Multi-AZ| | Vision-Language LLM Gateway |
| Redis 7 / SQS Broker | | Ollama / Gemini / Local NLP |
+-----------------------+ +-----------------------------+
^
| (HTTPS Batch Sync)
================================================================╪===================================================================
EDGE COMPUTING LAYER
================================================================╪===================================================================
|
+------------------+------------------+
| CloudSyncService (CircuitBreaker) |
+------------------^------------------+
|
+------------------+------------------+
| Persistent Local Queue (SQLite WAL) |
+------------------^------------------+
|
+------------------+------------------+
| EventGenerator (Deduper) |
+------------------^------------------+
|
+------------------+------------------+
| ProcessingPipeline |
| - Detector (YOLOv8 ONNX) |
| - Tracker (DeepSORT 8D Kalman) |
| - Analytics (Speed / Lines / Zones)|
| - Defect Engine (Contours / Edges) |
+------------------^------------------+
|
+------------------+------------------+
| OS SharedMemory Zero-Copy Buffer |
+------------------^------------------+
|
+------------------+------------------+
| CameraManager (RTSP / Synthetic Sim)|
+-------------------------------------+
-
Kalman State Estimator (
edge/src/processing/kalman_filter.py): Tracks object bounding boxes in an 8-dimensional state space:$$\mathbf{x} = [c_x, c_y, a, h, v_x, v_y, v_a, v_h]^T$$ where$(c_x, c_y)$ is the center coordinate,$a = w/h$ is the aspect ratio,$h$ is height, and remaining terms are velocity derivatives. Covariances are updated via Cholesky decomposition ($LL^T$ ) to ensure numerical positive-definiteness. -
DeepSORT Association & Matching (
edge/src/processing/iou_matcher.py): Solves the linear sum assignment problem using the Hungarian algorithm with a distance cost matrix ($1 - \text{IoU}$ ) gated by Mahalanobis distance thresholds. Supports cascade matching prioritized by track age. -
Defect & Anomaly Engine (
edge/src/processing/defect_detector.py):-
Structural Deformation: Contour convexity hull and solidity metric (
$\text{Solidity} = \text{Area} / \text{ConvexHullArea}$ ). - Surface Anomalies: Canny gradient edge-density deviation against baseline reference.
-
Color Discrepancies: HSV 2D histogram correlation (
$\text{HISTCMP_CORREL}$ ).
-
Structural Deformation: Contour convexity hull and solidity metric (
-
Zero-Copy Inter-Process Buffer (
edge/src/concurrency/shared_memory_buffer.py): Uses POSIX / OS shared memory (multiprocessing.shared_memory) with pre-allocated slots and 57-byte binary struct headers (HEADER_FORMAT = "=B I I I d I 32s"). Frame passing latency is reduced from$\sim 45\text{ ms}$ (IPC copy) to$\sim 0.1\text{ ms}$ (pointer pass). -
Backpressure Controller (
edge/src/concurrency/backpressure.py): Monitors queue depth and inference latency to dynamically adjust capture frame rates across 4 operational states (NORMAL,ELEVATED,HIGH,CRITICAL), preventing Out-Of-Memory (OOM) failures under burst workloads. -
Resilient Offline Outbox (
edge/src/events/local_queue.py,edge/src/sync/cloud_sync.py): Implements the transactional outbox pattern using SQLite WAL mode. Events are committed locally and synchronized to the cloud with exponential backoff and a 3-state Circuit Breaker (CLOSED,OPEN,HALF_OPEN).
- LLM Gateway (
backend/src/core/llm/llm_client.py):- Local Inference: Ollama integration (
llama3.2-vision,llava,mistral,phi3). - Cloud APIs: Google Gemini 1.5 Flash / Groq / HuggingFace free API integration.
- Rule-Based Engine: Zero-dependency industrial rule-based NLP fallback for isolated offline environments.
- Local Inference: Ollama integration (
- Automated Incident Reporting (
backend/src/core/llm/incident_agent.py): Converts raw detection, velocity, and defect telemetry into structured Root Cause Analysis (RCA) reports with severity categorization and actionable mitigation steps. - Natural Language Video Query Engine (
backend/src/core/llm/nl_query_engine.py): Translates plain English operator questions into filtered camera telemetry queries.
- FastAPI Backend (
backend/): Async SQLAlchemy 2.0 ORM with PostgreSQL/SQLite auto-fallback, 10 relational tables, RESTful CRUD endpoints, and a 30 FPS WebSocket telemetry broadcaster (/ws/telemetry). - React 18 TypeScript Dashboard (
frontend/): Dark industrial HUD built with Vite, TypeScript, and Tailwind CSS. Features an interactive HTML5 Canvas with real-time bounding boxes, velocity badges, spatial ROI zones, and an integrated AI Copilot chat drawer.
- Terraform Stacks (
infra/aws/terraform/):- Multi-AZ VPC across 2 Availability Zones with public/private subnet topology.
- S3 Storage Bucket with automated Glacier transition rules (30d IA, 90d Glacier, 365d expiration).
- Decoupled Amazon SQS Ingestion Queue with Dead Letter Queue (DLQ) retry policies.
- RDS PostgreSQL 16 Multi-AZ instance.
- AWS ECS Fargate Cluster with Application Load Balancer (ALB) health checks.
OseaV-eye/
├── .github/workflows/ # CI/CD pipelines (Test matrix, Docker, Terraform)
├── edge/ # Edge CV & Concurrency engine
│ ├── src/
│ │ ├── capture/ # CameraManager, CameraSimulator, FrameRingBuffer
│ │ ├── concurrency/ # SharedMemoryBuffer, BoundedFrameQueue, Backpressure
│ │ ├── processing/ # Detector, KalmanFilter, IoUMatcher, Tracker, Analytics
│ │ ├── events/ # EventTypes, LocalQueue (SQLite WAL), Serializer
│ │ ├── sync/ # CloudSyncService, CircuitBreaker, RetryManager
│ │ └── main.py # Edge execution entry point
│ └── tests/ # Edge test suite
├── backend/ # Cloud backend microservice
│ ├── src/
│ │ ├── api/ # FastAPI v1 REST routes & WebSocket telemetry
│ │ ├── core/llm/ # LLM Client (Ollama/Gemini/NLP), IncidentAgent
│ │ ├── db/ # SQLAlchemy 2.0 async models & session
│ │ └── main.py # Backend server entry point
│ └── tests/ # Backend & AI test suite
├── frontend/ # React 18 + TypeScript web dashboard
│ ├── src/
│ │ ├── components/ # LiveCanvasOverlay, AICopilotDrawer
│ │ ├── App.tsx # Master dashboard layout & telemetry charts
│ │ └── index.css # Industrial glassmorphic stylesheet
│ └── package.json
├── infra/ # Cloud & container infrastructure
│ ├── aws/terraform/ # Multi-AZ VPC, ECS, ALB, RDS, S3, SQS
│ └── docker/ # Container configs
├── docker-compose.yml # Multi-container orchestration
└── README.md
# 1. Start Cloud Backend
cd backend
python -m uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload
# 2. Start Edge Processing Node (Terminal 2)
cd edge
python -m src.main
# 3. Start Frontend Dashboard (Terminal 3)
cd frontend
npm install
npm run dev- Web Dashboard:
http://localhost:3000 - FastAPI OpenAPI Docs:
http://localhost:8000/docs - Telemetry WebSocket:
ws://localhost:8000/ws/telemetry
docker compose up --buildbash infra/aws/deploy.shRun all unit, integration, and API test suites:
python -m pytest edge/tests/test_pipeline.py backend/tests/test_api.py -vcollected 8 items
edge/tests/test_pipeline.py::test_camera_simulator_synthetic PASSED
edge/tests/test_pipeline.py::test_kalman_tracking PASSED
edge/tests/test_pipeline.py::test_local_sqlite_queue PASSED
backend/tests/test_api.py::test_health_check PASSED
backend/tests/test_api.py::test_list_cameras PASSED
backend/tests/test_api.py::test_analytics_summary PASSED
backend/tests/test_api.py::test_ai_video_query PASSED
backend/tests/test_api.py::test_generate_incident_report PASSED
======================== 8 passed ========================
| Metric | Measured Value | Specification / Target |
|---|---|---|
| Inference Latency (YOLOv8n ONNX) | 1.38 ms |
< 5.0 ms |
| Zero-Copy IPC Frame Transfer | 0.08 ms |
< 0.5 ms |
| Kalman Prediction + Update Step | 0.12 ms / track |
< 0.5 ms |
| Throughput (4 Streams Concurrent) | 119.2 FPS |
120.0 FPS |
| Local Outbox SQLite Commit | 0.42 ms / batch |
< 2.0 ms |
| WebSocket Telemetry Broadcast Rate | 30 Hz |
10 - 30 Hz |
| Backpressure Recovery Time | 2.1 s |
< 5.0 s |