This is an open-source video-based object counting software for tallying pretty much anything (vehicles, people, animals — you name it).
- Python 3 (tested with version 3.7)
- Clone this repo.
- Install the dependencies in requirements.txt
pip install -r requirements.txt
. - Choose a detector and install its dependencies where necessary (if you're not sure what to pick, we recommend you start with
yolo
).
Detector | Description | Dependencies |
---|---|---|
yolo |
Perform detection using models created with the YOLO (You Only Look Once) neural net. https://pjreddie.com/darknet/yolo/ | |
tfoda |
Perform detection using models created with the Tensorflow Object Detection API. https://github.com/tensorflow/models/tree/master/research/object_detection | CPU: pip install tensorflow-cpu GPU: pip install tensorflow-gpu |
detectron2 |
Perform detection using models created with FAIR's Detectron2 framework. https://github.com/facebookresearch/detectron2 | python -m pip install 'git+https://github.com/facebookresearch/detectron2.git' (https://github.com/facebookresearch/detectron2/blob/master/INSTALL.md) |
haarcascade |
Perform detection using Haar feature-based cascade classifiers. https://docs.opencv.org/3.4/db/d28/tutorial_cascade_classifier.html |
- Create a .env file (based on .env.example) in the project's root directory and edit as appropriate.
- Run
python -m main
. - Run using Docker
docker build -t adrian-krol/ivy .
.
By default, runs in "debug mode" which provides you a window to monitor the object counting process. You can:
- press the
p
key to pause/play the counting process - press the
s
key to capture a screenshot - press the
q
key to quit the program - click any point on the window to log the coordinates of the pixel in that position