This application allows multiple users simultaneously to upload images for face detection performed by MTCNN model. The system outputs the predicted faces by sending JSON message from the server to the client with bounding boxes coordinates. Operations are asynchronous without the need to reload the webpage.
- uploading images for face detection
- accessing the list of uploaded images
- removing the specified entry from the list
- managing multiple users
- displaying images with detected faces
- counting detected faces
- displaying the real-time active users count
Flask | Flask-SocketIO, Flask-RESTful |
Python 3.8.6 | MTCNN, Matplotlib Pyplot |
JavaScript | |
AJAX | |
HTML5 | |
Jinja2 | |
CSS | |
Bootstrap |
This application was developed according to REST (Representational state transfer) software architectural style.
Main properties implemented:
- client-server architecture
- resources specific identification
- unified interface
- use of self-decribing messages
- stateless interaction
The specific URI (URL) consists of a set of parameters which are transfered to the resource. This application is based on MIME type application/json resource representation.
HTTP protocol methods used: GET, POST, DELETE.
Pipfile content: [[source]]
- url = "https://pypi.org/simple"
- verify_ssl = true
- name = "pypi"
[packages]
- flask = "*"
- mtcnn = "*"
- matplotlib = "*"
- flask-restful = "*"
- flask-socketio = "*"
[dev-packages]
- mkdocs = "*"
[requires]
- python_version = "3.8.6"
The application can be run from the FACE DETECTION WEB APP/app.py file and navigating to the http:https://127.0.0.1:5000 in the browser.
Recommended browsers: Opera, Chrome.
The project documentation can be accessed by navigating to the project's root directory (\FACE DETECTION WEB APP) and in the command line running:
mkdocs serve
The documentation should be available here: http:https://127.0.0.1:8000