Skip to main content

Running the Application

This page explains how to run the main application and interact with its graphical user interface (GUI).


Running the Code

Navigate to the src/ directory and execute the main entry point:

Windows (CPU / Standard Shell)

python main.py

WSL / Linux (GPU Accelerated)

source ~/my_venv/bin/activate
python main.py

GUI Dashboard Layout

Once launched, the VIOLENCE DETECTION SYSTEM dashboard appears. It is designed with a dark, high-contrast theme suitable for security environments.

Violence Detection System UI

The layout is split into three main areas:

1. Header & Live Status

  • Title: Branding header (VIOLENCE DETECTION).
  • Status Indicator: Displays system status in real-time:
    • ● STANDBY (Gray): The system is ready and waiting for video input.
    • ● PROCESSING (SKIP N) (Green): Active analysis is running on the video stream.

2. Main Work Area (Split Panel)

  • Left Panel: Live Feed
    • Renders the video feed with bounding boxes, skeletal lines, and label overlays.
    • Shows the video source type (e.g., SOURCE: LOCAL FILE).
    • Displays the active processing speed in FPS (Frames Per Second) at the top-right corner.
  • Right Panel: Detection Data
    • Displays a running list of detections occurring in the active frame.
    • Displays a count indicator showing the number of current detections in real-time.
    • Highlights critical safety detections (such as knife or VIOLENTA) in red to capture the operator's attention.
  • Frame Skip (Spinner): Sets how often the model runs inference.
    • Adjustable between 1 (run on every single frame) and 5 (run on 1 frame out of 5).
    • Frame skipping decreases processing overhead (useful on low-spec hardware) while the internal sequence buffer remains aligned.
  • Load Video: Opens a file explorer dialog supporting .mp4, .avi, .mov, and .mkv files. Selecting a file initializes the AI pipeline.
  • Stop: Immediately halts video playback and releases memory handles, returning the system to STANDBY.
  • Open Suspect Folder: Opens the local suspect/ folder using your operating system's file browser.
  • Open Logs Folder: Opens the local logs/ folder.

Understanding Pipeline Alerts

As the system processes videos, it automatically logs threats and takes visual records:

[LIVE SCREEN OVERLAY]
Red Box: "Sospetto CON COLTELLO 2 | VIOLENTA (0.87) | Confidence: 0.94"
▲ ▲ ▲ ▲
Prefix Track ID LSTM Prob Keypoint Det Conf

Face Crop Capture (suspect/)

When a person's threat status is elevated to Knife Suspect (Sospetto CON COLTELLO) or Violent Action (VIOLENTA), the system:

  1. Calculates the region of interest for their face based on YOLO-Pose facial keypoints (eyes, nose, ears).
  2. Crops the face area from the clean, original frame.
  3. Saves it under: suspect/face_susp_[person_id]_[timestamp].jpg

This photo index serves as a quick reference database for security reviews.

Event Logging (logs/)

All threat occurrences are logged in text files within the logs/ folder, structured by date (e.g., logs/log_20260616.txt). Log entries follow this standard format:

2026/06/16-23:54:12 Sospetto CON COLTELLO 2 | VIOLENTA (0.87) | Confidence: 0.94

These logs can be parsed programmatically or reviewed manually.