Demandator is a package to use to ask image classification of images from your shell.
- 🔍 Classify images
- 📊 Plot graph of prediction
- 💾 Save results to improve the AI model throught transfer learning
- 👥 Manage users
Demandator requires Python 3.6 to run.
Before you can actually start, you will need to install some required packages. On Debian based distributions, you can do this by simple running
sudo apt install git
Clone the repository and install the dependencies.
1) Clone the repository
$ git clone https://github.com/FedericoFogolin/demandator.git
2) Enter the repository from the folder where you downloaded the file
$ cd demandator
3) Create a new user with the following command
$ python3 demandator_pkg/scripts/dbmanager.py -a <name_user> -p <password>
4) Test the program with one of the images provided
$ python3 main.py test_images/test.jpg -u <username> -p <password>
5) If everything worked out properly (🤞), you can run the classificator with your own files
$ python3 main.py <image-path> -u <username> -p <password>
You can add one or more of the below arguments to personalize your queries
Arg | DFLT | Range | Description |
---|---|---|---|
-g | off | None | Plot the graph of predictions |
-n | 5 | 1-50 | Number of results to display |
-v | off | count <= 2 | Display verbosity |
-t | 0.0 | 0.00 <= Float <= 0.99 | Limit results to that minimum threshold |
You can also run a series of tests in order to verify that the program behaves correctly with different inputs. To be able to do that we implemented a test suite which you can run by typing the following while being in the demandator folder:
$ python3 -m unittest -v -b tests/test_main.py
Demandator is created with:
Demandator uses a number of modules to work properly, so make sure to have them properly installed:
- numpy - NumPy is the fundamental package for scientific computing with Python
- argparse - Parser for command-line options, arguments and sub-commands
- hashlib - Secure hashes and message digests
- sqlite3 - DB-API 2.0 interface for SQLite databases
- os - Miscellaneous operating system interfaces
- sys - System-specific parameters and functions
- requests - Python HTTP for Humans.
- ast - Abstract Syntax Trees
- PIL - Python Imaging Library
- cv2 - Wrapper package for OpenCV python bindings.
- logging - Logging facility for Python
- verboselogs - Verbose logging level for Python's logging module
- 🔑 Manage maximum number of calls throught access tokens
- 📸 Classify multiple images at once
- 🔍Possibility to switch from classification to object detection and back
- 📌Display detected object boundaries
- Enrico Da Rodda - Hackerman
- Fabio De Benetti - BennyD
- Federico Fogolin - SwagyFog
- Lorenzo Pinto - MisterP
GPL
Free Software 4ever, Hell Yeah!