Ten projekt to API oparte na Flask, które wykorzystuje model YOLOv8 do wykrywania osób w obrazie z kamery.
Utworz w folderze repo python venv
py -m venv .
cd Scripts/
activatePrzed uruchomieniem projektu upewnij się, że masz zainstalowane potrzebne biblioteki:
pip3 install -r requirements.txtDodatkowo, do przyspieszenia obliczeń zalecane jest posiadanie GPU oraz zainstalowanego CUDA.
Skrypt można uruchomić w dwóch trybach:
python script.py --deploy 0Dostępne endpointy:
GET /detect- zwraca JSON z informacją, czy osoba jest wykrytaGET /detect_image- zwraca obraz z oznaczoną wykrytą osobą (tylko w trybie debugowania)
python script.py --deploy 1- Automatyczne restartowanie API podczas problemów z kamerką
python script.py --restart 1
Serwer działa na 127.0.0.1:8080 przy użyciu Waitress.
detect_person()- Sprawdza, czy w obrazie z kamery znajdują sie ludzie, zwraca także ich ilość.detect_person_image()- Dodatkowo rysuje ramki wokół wykrytych osób.getImg()- Pobiera obraz z kamery.
- API loguje na poziomie:
- Debug
- Error
- Warning
- Info
- Do pliku
logs, który stworzy się przy pierwszym uruchomieniu
- Skrypt używa najmniejszego modelu YOLOv8 (
yolov8n.pt) dla szybszych obliczeń. - Kamera jest ładowana z domyślnego urządzenia (
cv2.VideoCapture(0)). Jeśli masz wiele kamer, może być konieczna zmiana indeksu. - Endpoint
/detect_imagedziała tylko w trybie debugowania.
Projekt na licencji MIT.