Vision-Guard
A realtime object detection system optimized for CCTV footage. Identify and track people, vehicles and other relavant objects.
Vision-Guard
Vision-Guard is a reusable object detection runner for CCTV footage analysis. It uses YOLOv8 to identify people, vehicles, and other relevant objects, then saves the annotated results for inspection or downstream security workflows.

The Goal
Security footage can come from many sources and formats. Vision-Guard provides one command-line entry point for running the same detection workflow over a sample image, a recorded video, or a live camera stream supported by the Ultralytics source interface.
Detection Pipeline
Image, Video, or CCTV Source
↓
YOLOv8 Model Loading
↓
Frame-by-Frame Inference
↓
Bounding Boxes and Class Labels
↓
Annotated Detection Results
↓
Saved Results and Statistics
How It Works
The detector accepts a source path and a model checkpoint from the command line. Before inference, it creates the configured output directory and loads the requested YOLOv8 model, downloading the checkpoint automatically when it is not available locally.
Ultralytics handles the source decoding and inference loop for images and videos. Detection results are rendered into a named run directory, making outputs easy to compare across different model versions or input sources.
Output
Results are saved under results/detection_run.

Implementation Details
- Model: YOLOv8 with selectable model sizes such as nano and small
- Inference: Ultralytics prediction API with automatic result rendering
- Input Sources: Static images, video files, and compatible live streams
- Output Management: Reproducible named runs in a configurable results directory
- Interface: Lightweight Python CLI built with
argparse
Why This Structure
The inference function is separated from command-line argument parsing, so it can be imported into another Python workflow without depending on CLI state. The source and model are also configurable at runtime, allowing the same detector to move from quick experiments to larger CCTV batches without changing the implementation.