Skip to content

CollaborativeStateMachines/VideoSurveillance

Repository files navigation

Video Processing and Detection System

License: GPL v3 Docker Image Version Docker Image Version Docker Image Version

Overview

The Video Processing and Detection System is a Cloud-Edge-IoT video surveillance application designed to enhance security through intelligent image processing. At the IoT layer, cameras capture images at a configurable rate. The system's primary goal is to prevent unauthorized access by detecting unknown individuals. When an unknown person is identified, an alarm is triggered within the IoT layer, and the capturing rate is dynamically adjusted.

Face recognition is used to distinguish between known and unknown individuals by comparing detected faces against a database of authorized profiles. As this process is computationally intensive, it is offloaded to the Cloud layer. However, to minimize unnecessary Cloud processing—given that most captured images do not contain people—Edge processing is introduced as an intermediary step.

At the Edge layer, lightweight object detection is performed to filter images. While this detection can identify various object types, it is specifically configured to identify the presence of people within an image. Only images containing a detected person are forwarded to the Cloud for further processing (e.g., face recognition), optimizing system efficiency and resource usage.

Images are transmitted via HTTP as JPEG-encoded files, with 80% quality and a resolution of 640x480 pixels, across the IoT, Edge, and Cloud services. The video streams processed by the system originate from the WiseNET dataset [1], providing a robust and standardized testing environment for system evaluation.

Overview

Prerequisites

  1. Python: Ensure Python 3.12+ is installed.

  2. Dependencies: Install required Python libraries:

    pip install -r requirements.txt
    

Installation

  1. Clone this repository:

    git clone https://github.com/UIBK-DPS-DC/VideoSurveillance.git
    cd VideoSurveillance
    
  2. Set up the virtual environment:

    python -m venv venv
    source venv/bin/activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    

Helm (Kubernetes) deployment:

  1. Clone this repository:

    git clone https://github.com/UIBK-DPS-DC/VideoSurveillance.git
    cd VideoSurveillance
    
  2. Deploy using Helm:

    cd kubernetes/video-surveillance
    helm install video-surveillance .
    

Configuration

Set the following environment variables as needed:

Usage

  1. Start the Processor Module

    Run the processor module for face recognition:

    python processor.py
    
  2. Start the Preprocessor Module

    Run the preprocessor module for object detection:

    python preprocessor.py
    
  3. Start the Capture Module

    Run the capture module to capture and process video frames:

    python capture.py
    

API Endpoints

Preprocessor (preprocessor.py):

  • POST /process: Accepts a video frame (image) and performs object detection.
    • Request: Image file in image field.
    • Response: JSON with detected objects.

Processor (processor.py):

  • POST /process: Accepts a video frame (image) and performs face recognition.
    • Request: Image file in image field.
    • Response: JSON with recognized faces.

Attributions

This project makes use of the following resources:

License

This project is licensed under the GPL License. See LICENSE for details.

References

  • [1]: Roberto Marroquin, Julien Dubois, Christophe Nicolle, WiseNET: An indoor multi-camera multi-space dataset with contextual information and annotations for people detection and tracking

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Contributors