Object Tracking using Yolov8 and OpenCV, served using FastAPI.
First, run:
pip install -r requirements.txt
To run the code, simply run:
python main.py --url <your video directory/URL>
Untuk menggambar region, ada dua opsi:
- Pertama tekan tombol p di keyboard dan klik kanan menggunakan mouse. Kemudian klik empat titik yang ingin dijadikan region, bila selesai bisa tekan tombol p lagi
- Koordinat bisa diubah melalui
curl -X 'POST' 'http://localhost:8000/api/config/area' -H 'Content-Type: application/json' -d '{
"points": [
[100, 100],
[300, 100],
[200, 300],
[100, 300]
]
}'
Desain database untuk program ini adalah:
Data Name | Data Type |
---|---|
track_id | int |
event | varchar |
timestamp | varchar |
coordinates | varchar |
data ini ditampilkan pada endpoint /api/stats/.
- track_id: ID yang diberikan pada setiap orang yang masuk ke dalam region yang digambar
- event: menentukan apakah orang tersebut masuk/keluar dari region
- timestamp: waktu saat orang dengan ID tertentu masuk/keluar
- coordinate: koordinat region yang sudah digambar.
Adapun juga program menampilkan jumlah total orang yang masuk dan keluar dari area region melalui live video feed.
- Desain Database: Sudah ditulis di Readme bagian Desain Database
- Pengumpulan Dataset: Sudah dijelaskan pada bagian Pengumpulan Dataset
- Object Detection & Tracking: Sudah dilakukan dengan menggunakan YOLO v8. Object tracking menggunakan bytetrack.
- Counting & Polygon Area: People counting sudah diimplementasi dan region sudah dibuat bisa diubah sesuai input user
- Integrasi API: Sudah dilakukan dengan FastAPI. Belum sempat integrasi menggunakan dashboard.
- Deployment: Sudah dilakukan, namun belum sempat dilakukan containerization.