# leonardocorreia08/observador architecture

> Architecture diagram of the GitHub repository leonardocorreia08/observador, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/leonardocorreia08/observador
- Repository: https://github.com/leonardocorreia08/observador

## Overview

OBSERVADOR is an early-stage computer-vision project: its implemented workflow loads configuration, acquires camera frames or dataset images, runs YOLO detection or tracking, and writes visual and structured results; a separate evaluator compares tracking output with MOT ground truth. The README also describes future camera-network, spatial, event, memory, and world-model capabilities, which are distinguished here from implemented code. Edges reflect shown calls, reads, or documented concepts; unsampled implementation details are not assumed.

Main entry points: [`src/utils/config_loader.py`](https://github.com/leonardocorreia08/observador/blob/main/src/utils/config_loader.py) (Config loader), [`main.py`](https://github.com/leonardocorreia08/observador/blob/main/main.py) (Live runner), [`experiments/exp_003_tracking/evaluate_tracking.py`](https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_003_tracking/evaluate_tracking.py) (MOT evaluator), [`experiments/exp_002_detection/run_detection.py`](https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_002_detection/run_detection.py) (Image detection)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Live perception"]
  node_main["Live runner<br/>[main.py]"]
  node_config["Config loader<br/>[config_loader.py]"]
  node_camera_manager["Camera manager<br/>[camera_manager.py]"]
  node_detector["YOLO detector<br/>[detector.py]"]
  node_validator["Training validator"]
end

subgraph group_experiments["Detection and tracking"]
  node_exp001["COCO validation<br/>[validate_coco.py]"]
  node_exp002["Image detection<br/>[run_detection.py]"]
  node_exp003["Sequence tracking<br/>[run_tracking.py]"]
  node_detection_results["Detection outputs"]
  node_tracking_results["Tracking outputs"]
end

subgraph group_analysis["Counting and evaluation"]
  node_track_count["Line-count runner<br/>[track_count.py]"]
  node_line_counter["Line counter<br/>[counting.py]"]
  node_evaluation["MOT evaluator"]
  node_evaluation_results["Evaluation reports"]
end

subgraph group_planned["Conceptual capabilities"]
  node_camera_network["Camera network"]
  node_spatial["Spatial intelligence"]
  node_events["Event intelligence"]
  node_memory[("Memory system")]
  node_world_model["World model"]
end

node_operator(("Operator"))
node_camera(("Local camera"))

node_operator -->|"starts"| node_main
node_main -->|"loads config"| node_config
node_main -->|"discovers and opens"| node_camera_manager
node_camera -->|"provides frames"| node_camera_manager
node_main -->|"runs detection"| node_detector
node_detector -->|"resolves settings"| node_config
node_main -->|"checks training"| node_validator
node_exp001 -->|"loads settings"| node_config
node_exp002 -->|"loads settings"| node_config
node_exp002 -->|"writes reports"| node_detection_results
node_exp003 -->|"loads settings"| node_config
node_exp003 -->|"writes tracks"| node_tracking_results
node_evaluation -->|"loads settings"| node_config
node_evaluation -->|"reads predictions"| node_tracking_results
node_evaluation -->|"writes metrics"| node_evaluation_results
node_track_count -->|"updates crossings"| node_line_counter
node_camera_network -.->|"supports interpretation"| node_spatial
node_spatial -.->|"informs analysis"| node_events
node_events -.->|"records events"| node_memory
node_memory -.->|"informs representation"| node_world_model

click node_main "https://github.com/leonardocorreia08/observador/blob/main/main.py"
click node_config "https://github.com/leonardocorreia08/observador/blob/main/src/utils/config_loader.py"
click node_camera_manager "https://github.com/leonardocorreia08/observador/blob/main/src/cameras/camera_manager.py"
click node_detector "https://github.com/leonardocorreia08/observador/blob/main/src/detection/detector.py"
click node_validator "https://github.com/leonardocorreia08/observador/blob/main/src/validation/training_validator.py"
click node_exp001 "https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_001_detection/validate_coco.py"
click node_exp002 "https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_002_detection/run_detection.py"
click node_exp003 "https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_003_tracking/run_tracking.py"
click node_detection_results "https://github.com/leonardocorreia08/observador/tree/main/results/exp_002"
click node_tracking_results "https://github.com/leonardocorreia08/observador/tree/main/results/exp_003"
click node_track_count "https://github.com/leonardocorreia08/observador/blob/main/scripts/track_count.py"
click node_line_counter "https://github.com/leonardocorreia08/observador/blob/main/src/trafficvision/counting.py"
click node_evaluation "https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_003_tracking/evaluate_tracking.py"
click node_evaluation_results "https://github.com/leonardocorreia08/observador/tree/main/results/exp_003/evaluation"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_config,node_camera_manager,node_detector,node_validator toneBlue
class node_exp001,node_exp002,node_exp003,node_detection_results,node_tracking_results toneAmber
class node_track_count,node_line_counter,node_evaluation,node_evaluation_results toneMint
class node_camera_network,node_spatial,node_events,node_memory,node_world_model toneRose
class node_operator,node_camera toneIndigo
```

## Components

### Live perception

- [Live runner](https://github.com/leonardocorreia08/observador/blob/main/main.py): `main.py`
- [Config loader](https://github.com/leonardocorreia08/observador/blob/main/src/utils/config_loader.py): `src/utils/config_loader.py`
- [Camera manager](https://github.com/leonardocorreia08/observador/blob/main/src/cameras/camera_manager.py): `src/cameras/camera_manager.py`
- [YOLO detector](https://github.com/leonardocorreia08/observador/blob/main/src/detection/detector.py): `src/detection/detector.py`
- [Training validator](https://github.com/leonardocorreia08/observador/blob/main/src/validation/training_validator.py): `src/validation/training_validator.py`

### Detection and tracking

- [COCO validation](https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_001_detection/validate_coco.py): `experiments/exp_001_detection/validate_coco.py`
- [Image detection](https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_002_detection/run_detection.py): `experiments/exp_002_detection/run_detection.py`
- [Sequence tracking](https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_003_tracking/run_tracking.py): `experiments/exp_003_tracking/run_tracking.py`
- [Detection outputs](https://github.com/leonardocorreia08/observador/tree/main/results/exp_002): `results/exp_002`
- [Tracking outputs](https://github.com/leonardocorreia08/observador/tree/main/results/exp_003): `results/exp_003`

### Counting and evaluation

- [Line-count runner](https://github.com/leonardocorreia08/observador/blob/main/scripts/track_count.py): `scripts/track_count.py`
- [Line counter](https://github.com/leonardocorreia08/observador/blob/main/src/trafficvision/counting.py): `src/trafficvision/counting.py`
- [MOT evaluator](https://github.com/leonardocorreia08/observador/blob/main/experiments/exp_003_tracking/evaluate_tracking.py): `experiments/exp_003_tracking/evaluate_tracking.py`
- [Evaluation reports](https://github.com/leonardocorreia08/observador/tree/main/results/exp_003/evaluation): `results/exp_003/evaluation`

### Conceptual capabilities

- **Camera network**
- **Spatial intelligence**
- **Event intelligence**
- **Memory system**
- **World model**

### Other components

- **Operator**
- **Local camera**

## Connections

- Operator → Live runner: starts (evidence: `main.py`)
- Live runner → Config loader: loads config (evidence: `main.py`)
- Live runner → Camera manager: discovers and opens (evidence: `main.py`)
- Local camera → Camera manager: provides frames (evidence: `src/cameras/camera_manager.py`)
- Live runner → YOLO detector: runs detection (evidence: `main.py`)
- YOLO detector → Config loader: resolves settings (evidence: `src/detection/detector.py`)
- Live runner → Training validator: checks training (evidence: `main.py`)
- COCO validation → Config loader: loads settings (evidence: `experiments/exp_001_detection/validate_coco.py`)
- Image detection → Config loader: loads settings (evidence: `experiments/exp_002_detection/run_detection.py`)
- Image detection → Detection outputs: writes reports (evidence: `experiments/exp_002_detection/run_detection.py`)
- Sequence tracking → Config loader: loads settings (evidence: `experiments/exp_003_tracking/run_tracking.py`)
- Sequence tracking → Tracking outputs: writes tracks (evidence: `experiments/exp_003_tracking/run_tracking.py`)
- MOT evaluator → Config loader: loads settings (evidence: `experiments/exp_003_tracking/evaluate_tracking.py`)
- MOT evaluator → Tracking outputs: reads predictions (evidence: `experiments/exp_003_tracking/evaluate_tracking.py`)
- MOT evaluator → Evaluation reports: writes metrics (evidence: `experiments/exp_003_tracking/evaluate_tracking.py`)
- Line-count runner → Line counter: updates crossings (evidence: `scripts/track_count.py`)
- Camera network → Spatial intelligence: supports interpretation (evidence: `README.md`)
- Spatial intelligence → Event intelligence: informs analysis (evidence: `README.md`)
- Event intelligence → Memory system: records events (evidence: `README.md`)
- Memory system → World model: informs representation (evidence: `README.md`)
