Nje sistem Computer Vision qe perdor YOLO v8 per detektimin ne kohe reale te automjeteve, gjurmimin dhe analizen e fluksit te trafikut ne kryqezime rrugore.
- Veçorite
- Teknologjite
- Instalimi
- Fillimi i Shpejte
- Perdorimi
- Dokumentacioni i API
- Struktura e Projektit
- Performanca e Modelit
- Licenca
- Detektimi i Automjeteve ne Kohe Reale duke perdorur YOLO v8
- Klasifikimi Multi-klase: Makina, autobuse, kamione, motoçikleta
- Gjurmimi i Automjeteve neper frame te videos duke perdorur algoritmin SORT
- Analiza e Fluksit te Trafikut me numerim direksional
- REST API per aksesimin e te dhenave ne kohe reale
- Panel Kontrolli Interaktiv (Dashboard) me statistika dhe grafike live
- Procesimi i Videos (perpunim ne grup dhe stream ne kohe reale)
- Vendosje me Docker (Deployment) e gatshme
- Mbeshtetje WebSocket per perditesime ne kohe reale
- Computer Vision: OpenCV, YOLO v8 (Ultralytics)
- Deep Learning: PyTorch
- Gjurmimi: Algoritmi SORT me Kalman Filter
- Backend: FastAPI, Uvicorn
- Frontend: HTML5, CSS3, JavaScript, Chart.js
- Deployment: Docker, Docker Compose
- Te Dhenat: COCO Dataset, dataset lokal i trafikut te Tiranes
- Python 3.10+
- GPU e afte per CUDA (rekomandohet) ose CPU
- Docker (opsionale, per deployment te kontainerizuar)
- Klononi repository-n:
git clone https://github.com/ekipi-juaj/Monitorimi_trafikut_Gr6.git
cd Monitorimi_trafikut_Gr6- Krijoni mjedisin virtual (virtual environment):
python -m venv venv
source venv/bin/activate # Ne Windows: venv\Scripts\activate- Instaloni varesite (dependencies):
pip install -r requirements.txt- Shkarkoni modelin YOLO:
Modeli YOLO v8 do te shkarkohet automatikisht ne ekzekutimin e pare. Per modele te trajnuara me porosi (custom), vendosini ato ne direktorine
models/.
python demo.pyKjo do te procesoje nje video demo ose do te perdore kameren tuaj nese nuk gjendet video.
# Startoni serverin API
python -m uvicorn src.api:app --reload
# Hapni panelin e kontrollit ne shfletues
# Shkoni tek: frontend/index.html (ose sherbejeni me nje server lokal)# Ndertoni dhe ekzekutoni me Docker Compose
docker-compose up --build
# Aksesoni API ne: http://localhost:8000
# Aksesoni panelin ne: http://localhost:80from src.detector import VehicleDetector
from src.tracker import VehicleTracker
from src.counter import VehicleCounter
from src.utils.video_processor import VideoProcessor
# Inicializoni komponentet
detector = VehicleDetector()
tracker = VehicleTracker()
counter = VehicleCounter(line_position=0.5)
processor = VideoProcessor(detector, tracker, counter)
# Procesoni videon
stats = processor.process_video(
"path/to/video.mp4",
output_path="path/to/output.mp4",
display=True
)
print(f"Totali i automjeteve: {stats['counts']['total_vehicles']}")import requests
# Merrni statistikat aktuale te trafikut
response = requests.get("http://localhost:8000/api/traffic/current")
data = response.json()
print(data)
# Procesoni nje video permes API
files = {"file": open("video.mp4", "rb")}
response = requests.post("http://localhost:8000/api/video/process", files=files)
print(response.json())# Procesoni stream-in e kameras ose IP kameras
processor.process_stream(source=0) # 0 per kameren e kompjuterit
# Ose perdorni RTSP URL per kamerat IP
processor.process_stream(source="rtsp://camera-ip/stream")Merr statusin e sistemit
Pergjigja:
{
"status": "running",
"is_processing": false,
"detector": "YOLO v8",
"tracker": "SORT",
"timestamp": "2026-01-19T17:30:00"
}Merr statistikat aktuale te trafikut
Pergjigja:
{
"timestamp": "2026-01-19T17:30:00",
"vehicle_counts": {
"total_vehicles": 45,
"total": {"car": 30, "bus": 5, "truck": 8, "motorcycle": 2},
"up": {"car": 15, "bus": 2},
"down": {"car": 15, "truck": 8}
}
}Ngarko dhe proceso nje skedar video
Parametrat:
file: Skedar video (multipart/form-data)
Pergjigja:
{
"message": "Video u procesua me sukses",
"input_file": "traffic.mp4",
"output_file": "processed_traffic.mp4",
"statistics": {...}
}Perditesime te trafikut ne kohe reale permes WebSocket
Formati i mesazhit:
{
"timestamp": "2026-01-19T17:30:00",
"counts": {...},
"is_processing": true
}Per dokumentacion te plote te API, vizitoni /docs kur serveri eshte duke punuar (dokumentacion i gjeneruar automatikisht nga FastAPI).
Monitorimi_trafikut_Gr6/
├── README.md # Ky skedar
├── requirements.txt # Varesite Python
├── Dockerfile # Konfigurimi i container-it Docker
├── docker-compose.yml # Konfigurimi Docker compose
├── demo.py # Skripti Demo
├── data/ # Direktoria e te dhenave
│ ├── raw/ # Datasetet bruto
│ ├── processed/ # Te dhena te procesuara
│ └── annotations/ # Skedaret e anotimit
├── src/ # Kodi burimor (Source code)
│ ├── detector.py # Detektori i automjeteve YOLO v8
│ ├── tracker.py # Gjurmuesi SORT
│ ├── counter.py # Numeruesi i automjeteve
│ ├── api.py # REST API
│ └── utils/ # Mjete ndihmese (Utilities)
│ ├── config.py # Konfigurimi
│ └── video_processor.py # Procesimi i videos
├── models/ # Modele te trajnuara
├── notebooks/ # Jupyter notebooks
├── tests/ # Unit tests
├── docs/ # Dokumentacion
├── demo/ # Materiale Demo
└── frontend/ # Paneli (Dashboard)
├── index.html
├── style.css
└── app.js
- mAP@0.5: ~90% ne datasetin COCO
- FPS i Detektimit: 20-30 FPS (GPU), 5-10 FPS (CPU)
- Saktesia e Gjurmimit: ~85%
- Klasat e Mbeshtetura: makine, motoçiklete, autobus, kamion
- Saktesia: >85% ne datasetin e Tiranes
- Preçizioni (Precision): >85%
- Mbulimi (Recall): >80%
- FPS ne Kohe Reale: >20
Ekzekutoni testet unitare (unit tests):
pytest tests/ -vEkzekutoni me mbulim kodi (coverage):
pytest tests/ --cov=src --cov-report=htmlDokumentacion shtese eshte i disponueshem ne folderin docs/:
- API_DOCUMENTATION.md - Referenca e plote e API
- DEPLOYMENT_GUIDE.md - Udhezime per deployment
- USER_GUIDE.md - Udhezuesi i perdoruesit
Ky projekt eshte zhvilluar per qellime edukative.