Hello! Thank you for visiting this repo!
This repo contains almost everything you need in getting started for Human Binary classification
These are packages that is tested in my system to run the suite:
- Python 3.6.9
- OpenCV 3.4.7
- Numpy 1.17.2
- Matplotlib 3.1.1
- Tensorflow 1.10.0
- h5py 2.10.0
- scipy 1.3.1
- scikit-learn 0.21.3
- pydot 1.4.1
- graphviz 2.40.1
For more information of installed packages in my system, refer to the packages.txt
dataset_generator folder contains basic tool for creating the dataset.
The dataset is a binary class data, consisting of human region-of-interest images and non-human images. The images varies in size, with smallest being 25 X 25 px.
The ROI images are retrieved from a foreground mask by using contour detection to make a bounding rectangle for cropping the original frame. The foreground mask is made by using background subtraction technique using Mixture of Gaussian (MOS)
Please refer to the included _INSTRUCTIONS.txt for steps & information.
dataset folder contains two subfolders representing two classes: human and nonhuman. There are 1229 human ROI images and 7126 nonhuman ROI images, retrieved from VIRAT 2.0 dataset using the dataset generator in this repo.
Huge thanks to Afriezal Lienardi and Vincenza Steven Ber for creating and doing manual labeling of the dataset!
In the root of the directory, there are three python files, run them in order:
dataset_pickler.py: Packs the dataset images in thedatasetdirectory into separate training data and test data and saves it as a pickle file (train_data.pkl&test_data.pkl) for convenience.model_maker.py: Makes pretrained model using Tensorflow and Keras. It saves the model(s) as.h5file with an image of its architecture and loss & acc graph in a folder named from datetime in themodelsdirectory. Feel free to experiment with this file!model_loader.py: Loads pretrained.h5model for evaluation and visualization.
models directory contains several pretrained models, some are included with test data. You can use these pretrained model for anything you like! Make sure to read the architecture.
Detection_Engine folder contains ready-to-use suite of files, models, and sample videos for human detection systems.
Run demo.py or HumanDetectionVisualization.py for demonstration, or see each source code for more in-depth analysis.
Featuring HumanDetector.py used in the TREYESpassing project. TREYESpassing is an app that alerts it's user when someone entered an area that is owned by the user and access to the area is prohibited for everyone.