Skip to main content

Getting Started

Follow this guide to set up the environment, install the necessary dependencies, and prepare the models for inference.


Prerequisites​

Before setting up the project, ensure you meet the following requirements:

Operating System​

  • Windows 10/11 (Tested with Tkinter GUI support).
  • Linux / WSL (Recommended for CUDA/GPU-accelerated training and inference).

Software Requirements​

  • Python 3.8+ (Python 3.9 or 3.10 is highly recommended).
  • CUDA Toolkit & cuDNN (If you intend to run real-time inference or training with GPU acceleration).
    • Check your CUDA version by running:
      nvidia-smi
    • Match your TensorFlow and PyTorch installations to your installed CUDA version.

Step 1: Clone the Repository​

Clone the project repository from GitHub and navigate to the project directory:

git clone https://github.com/lraton/real-time-violent-action-detection.git
cd real-time-violent-action-detection

Step 2: Install Dependencies​

It is highly recommended to use a Python virtual environment to manage dependencies and avoid conflicts.

Create a Virtual Environment​

On Windows:​

python -m venv src/.venv
src\.venv\Scripts\activate

On Linux / WSL:​

python3 -m venv src/.venv
source src/.venv/bin/activate

Install Required Packages​

Navigate to the src/ directory where the dependency manifest is located, and install the packages:

cd src
pip install --upgrade pip
pip install -r requirements.txt

[!NOTE] The requirements.txt installs OpenCV, PyTorch (Ultralytics dependency), TensorFlow, Tkinter dependencies, and helper libraries. If you have a GPU, ensure PyTorch and TensorFlow are installed with CUDA support. For example:

  • PyTorch (CUDA 12.1): pip install torch torchvision --index-url https://download.pytorch.org/PR/whl/cu121
  • TensorFlow (CUDA Support): Refer to the official TensorFlow installation guide for matching versions.

Step 3: Set Up Model Weights​

The system relies on three separate pre-trained networks. Ensure the following files are placed in their respective folders in the project root:

real-time-violent-action-detection/
└── models/
├── yolo11n-pose.pt <-- YOLOv11 Pose estimation model
├── lstm_violence_detector_v8.keras <-- LSTM violence action classifier
└── knife/
└── run2/
└── weights/
└── best.pt <-- Fine-tuned knife detection model
  • YOLOv11-Pose Model: Automatically downloaded on first run or can be manually placed in the models/ directory as yolo11n-pose.pt.
  • Knife Detection Model: The fine-tuned YOLO model trained specifically on knives. It should be placed in models/knife/run2/weights/best.pt.
  • LSTM Classifier Model: The recurrent sequence classifier trained on the keypoint dataset. It should be placed in models/lstm_violence_detector_v8.keras.