Skip to content
/ SSTV Public

Real-time video surveillance system with AI-powered human behavior analysis and pose detection

Notifications You must be signed in to change notification settings

penspanic/SSTV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

SSTV (Smart Surveillance with Tracking and Vision)

한국어

SSTV is a comprehensive computer vision toolkit for video surveillance, human behavior analysis, and object tracking using YOLOv8 and machine learning technologies.

⚠️ Project Status: Archived
This project is no longer in active development. It has been open-sourced for reference and educational purposes. Community contributions and forks are welcome.

📝 Note: This README was automatically generated by Claude AI and may contain inaccurate information.

🎯 Features

  • Real-time Object Detection: YOLOv8-based detection for persons, objects, and pose estimation
  • Human Behavior Analysis: ML-powered behavior classification and tracking
  • Video Labeling Tool: Interactive WPF application for manual video annotation
  • Multi-tracking Support: ByteTrack integration for object tracking across frames
  • Pose Estimation: Human pose detection and analysis
  • Video Processing Pipeline: Automated video preprocessing and analysis
  • Machine Learning Training: Custom model training capabilities

🏗️ Project Structure

The solution consists of several interconnected projects:

Core Libraries

  • SSTV-Shared: Common models, utilities, and shared functionality
  • SSTV-Shared-WPF: WPF-specific components and rendering utilities
  • SSTV-MLTasks: Machine learning pipeline and YOLO processing engine

Applications

  • SSTV-Client: Real-time surveillance application with Windows Forms UI
  • SSTV-Labeler: Video annotation tool for creating training datasets
  • SSTV-ML: Machine learning model training application
  • SSTV-MLTasks-CLI: Command-line interface for batch processing
  • SSTV-Benchmark: Performance benchmarking utilities

🚀 Quick Start

Prerequisites

  • .NET 8.0 or later
  • Windows OS (for WPF applications)
  • Visual Studio 2022 or Visual Studio Code
  • ONNX Runtime
  • OpenCV

Installation

  1. Clone the repository:

    git clone https://github.com/penspanic/SSTV.git
    cd SSTV
  2. Open the solution in Visual Studio:

    cd src/SSCSharp
    start SSTV.sln
  3. Build the solution:

    dotnet build

Running Applications

SSTV-Client (Real-time Surveillance)

cd src/SSCSharp/SSTV-Client
dotnet run

SSTV-Labeler (Video Annotation Tool)

cd src/SSCSharp/SSTV-Labeler
dotnet run

SSTV-MLTasks-CLI (Command Line Processing)

cd src/SSCSharp/SSTV-MLTasks-CLI
dotnet run -- video preprocess -i "./data/samples"

📚 Key Components

YOLOv8 Integration

The project uses YOLOv8 for object detection and pose estimation:

  • Object detection models (yolov8s.onnx, yolov8m.onnx)
  • Pose estimation models (yolov8s-pose.onnx)
  • Custom model conversion scripts

Video Processing Pipeline

  • Frame extraction and preprocessing
  • Real-time processing capabilities
  • Batch processing support
  • Timeline-based event management

Machine Learning Features

  • Human behavior classification
  • Custom model training with ML.NET
  • Training data management and serialization
  • Performance benchmarking

🔧 Configuration

Model Setup

Place your ONNX models in the src/SSCSharp/Models/ directory:

  • yolov8s.onnx - Standard object detection
  • yolov8m.onnx - Medium accuracy object detection
  • yolov8s-pose.onnx - Pose estimation

Data Directory Structure

Create the following directory structure for your data:

SSTV/
├── data/
│   ├── samples/          # Place your video files here
│   ├── input/            # Input datasets for ML training
│   └── output/           # Generated models and results
└── src/                  # Source code

FFMPEG Installation (Required for SSTV-Labeler)

SSTV-Labeler requires FFMPEG for video processing:

  1. Download FFMPEG from https://ffmpeg.org/download.html
  2. Extract and add to your system PATH, or place the binaries in the SSTV-Labeler/FFMPEG/ directory
  3. Restart your development environment

📖 Documentation

For detailed documentation on each component:

🤝 Contributing

Since this is an archived project, we encourage forks and community-driven development:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🏷️ Technologies Used

  • .NET 8.0: Core framework
  • YOLOv8: Object detection and pose estimation
  • OpenCV: Computer vision operations
  • ML.NET: Machine learning model training
  • WPF: Windows desktop applications
  • Windows Forms: Real-time surveillance interface
  • ONNX Runtime: Model inference
  • ByteTrack: Multi-object tracking
  • FFMPEG: Video processing (via FFME.Windows)

⚠️ Known Issues

  • Backward video navigation by 1 frame may not work properly due to FFMPEG library limitations
  • Performance may vary depending on hardware capabilities
  • Hardcoded paths in some configuration files need to be updated for your environment

🔮 Future Enhancements (Community Welcome)

  • Cross-platform support
  • Web-based annotation interface
  • Enhanced model training pipelines
  • Real-time streaming capabilities
  • Advanced analytics dashboard
  • Docker containerization

📞 Support

If you encounter any issues or have questions, please:

  1. Check the Issues page
  2. Create a new issue with detailed information
  3. Provide system information and error logs

Since this is an archived project, community support is encouraged through discussions and community-maintained forks.


Made with ❤️ for computer vision and surveillance applications