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.
- 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
The solution consists of several interconnected projects:
- 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
- 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
- .NET 8.0 or later
- Windows OS (for WPF applications)
- Visual Studio 2022 or Visual Studio Code
- ONNX Runtime
- OpenCV
-
Clone the repository:
git clone https://github.com/penspanic/SSTV.git cd SSTV -
Open the solution in Visual Studio:
cd src/SSCSharp start SSTV.sln -
Build the solution:
dotnet build
cd src/SSCSharp/SSTV-Client
dotnet runcd src/SSCSharp/SSTV-Labeler
dotnet runcd src/SSCSharp/SSTV-MLTasks-CLI
dotnet run -- video preprocess -i "./data/samples"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
- Frame extraction and preprocessing
- Real-time processing capabilities
- Batch processing support
- Timeline-based event management
- Human behavior classification
- Custom model training with ML.NET
- Training data management and serialization
- Performance benchmarking
Place your ONNX models in the src/SSCSharp/Models/ directory:
yolov8s.onnx- Standard object detectionyolov8m.onnx- Medium accuracy object detectionyolov8s-pose.onnx- Pose estimation
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
SSTV-Labeler requires FFMPEG for video processing:
- Download FFMPEG from https://ffmpeg.org/download.html
- Extract and add to your system PATH, or place the binaries in the SSTV-Labeler/FFMPEG/ directory
- Restart your development environment
For detailed documentation on each component:
Since this is an archived project, we encourage forks and community-driven development:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- .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)
- 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
- Cross-platform support
- Web-based annotation interface
- Enhanced model training pipelines
- Real-time streaming capabilities
- Advanced analytics dashboard
- Docker containerization
If you encounter any issues or have questions, please:
- Check the Issues page
- Create a new issue with detailed information
- 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