Hệ thống nhận diện hành vi bạo lực sử dụng YOLOv8 và Web Service
ViolenceGuard là một dự án Computer Vision nhằm phát hiện và nhận diện các hành vi bạo lực trong video và camera real-time. Dự án sử dụng mô hình YOLOv8 được huấn luyện trên dataset Fignet và triển khai dưới dạng Web Service với kiến trúc MVC.
- Nhận diện các hành vi bạo lực trong môi trường học đường và xã hội
- Cung cấp giải pháp giám sát an ninh tự động
- Hỗ trợ phân tích video và camera real-time
- ✅ Upload Video: Tải lên video và phân tích nhận diện hành vi bạo lực
- ✅ Camera Real-time: Nhận diện trực tiếp qua camera
- ✅ Bounding Box Visualization: Hiển thị kết quả với khung nhận diện
- ✅ Lịch Sử Phân Tích: Lưu trữ và xem lại các phân tích trước đó
- ✅ API RESTful: Tích hợp dễ dàng với các hệ thống khác
Dự án được xây dựng theo mô hình MVC (Model-View-Controller):
- Model: YOLOv8 detector, Video processor, Database models
- View: HTML/CSS/JavaScript frontend
- Controller: Flask API endpoints, Request handlers
- Python 3.8+
- CUDA-capable GPU (khuyến nghị cho training)
- 8GB RAM minimum
- 50GB disk space (cho dataset và models)
# 1. Clone repository
git clone https://github.com/yourusername/ViolenceGuard-YOLOv8-Web.git
cd ViolenceGuard-YOLOv8-Web
# 2. Tạo virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# hoặc
venv\Scripts\activate # Windows
# 3. Cài đặt dependencies
pip install -r requirements.txt
# 4. Tạo các thư mục cần thiết
mkdir -p uploads outputs logs models dataset# Development mode
python run.py
# Truy cập: http://localhost:5000Dự án sử dụng Fignet Dataset với các lớp hành vi:
fighting- Đánh nhauhitting- Đấm đákicking- Đápushing- Đẩyweapon- Sử dụng vũ khínormal- Hành vi bình thường
python scripts/prepare_dataset.py --source /path/to/fignet --output ./dataset# Train YOLOv8 model
python scripts/train_model.py --data dataset/data.yaml --epochs 100 --img 640
# Hoặc sử dụng Jupyter Notebook
jupyter notebook notebooks/model_training.ipynbViolenceGuard-YOLOv8-Web/
├── app/ # Web application
│ ├── models/ # Model layer (YOLOv8, processors)
│ ├── controllers/ # Controllers (API endpoints)
│ ├── views/ # HTML templates
│ └── static/ # CSS, JS, images
├── dataset/ # Training data
├── models/ # Trained models
├── scripts/ # Utility scripts
├── notebooks/ # Jupyter notebooks
└── run.py # Application entry point
Xem chi tiết tại PROJECT_GUIDELINE.md
POST /api/upload
Content-Type: multipart/form-dataGET /api/results/{video_id}GET /api/camera/stream- Backend: Flask, Python
- Deep Learning: YOLOv8 (Ultralytics), PyTorch
- Computer Vision: OpenCV
- Frontend: HTML5, CSS3, JavaScript, Bootstrap 5
- Database: SQLite/PostgreSQL
- Project Guideline - Hướng dẫn chi tiết dự án
- API Documentation - Tài liệu API
- Training Guide - Hướng dẫn training model
Mọi đóng góp đều được chào đón! Vui lòng:
- Fork repository
- Tạo feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Tạo Pull Request
Distributed under the MIT License. See LICENSE for more information.
- Project Lead: [Your Name]
- Contributors: [Team Members]
Project Link: https://github.com/yourusername/ViolenceGuard-YOLOv8-Web
Made with ❤️ for Computer Vision Course