Client

Personal Project

Company

Project Type

Machine Learning, Python

Year

2024

project-image

Facial Attribute Detection

This Flask application allows users to upload images and detect facial attributes like age and gender using pre-trained deep learning models.

Features:

  • Image Upload: Users can upload images through a web interface.
  • Facial Detection: The application detects faces within the uploaded image.
  • Age and Gender Prediction: For each detected face, the application predicts the age range and gender.
  • Real-time Processing: Processing happens on the server-side.

Requirements:

  • Python (>=3.6)
  • Flask
  • OpenCV
  • NumPy
  • dlib (optional, for more advanced face detection)
  • cv2-dnn (for importing pre-trained age/gender models)
  • Base64
  • Jinja2 (for templating, likely already installed with Flask)

Pre-trained Models:

  • Download pre-trained models for face detection, age prediction, and gender prediction. Popular options include:
    • Face detection: Haar cascades (included in OpenCV)
    • Age prediction: Age Net (deploy_age.prototxt, age_net.caffemodel)
    • Gender prediction: Gender Net (deploy_gender.prototxt, gender_net.caffemodel)

Running the Application:

  1. Download and install the required libraries.
  2. Place the pre-trained models in the appropriate directory within the project structure.
  3. Run the application using python app.py.

API Endpoint:

  • /: Renders the HTML template for the web interface.
  • /upload (POST): Accepts uploaded image files, performs facial attribute detection, and returns a JSON response with results (bounding boxes, age, gender) and a base64 encoded image with drawn detections.

Web Interface (index.html - not included):

The index.html file should include an HTML form that allows users to upload an image file. Upon submission, the form should send a POST request to the /upload endpoint with the image data.

Example Usage:

  1. Access the application in your web browser (usually http://127.0.0.1:5000/).
  2. Select an image file and upload it.
  3. The application will process the image and display the results:
    • Detected faces with bounding boxes.
    • Predicted age range and gender for each face.

Note:

  • This is a basic example and can be extended to support additional features like emotion recognition, facial landmarks detection, or integrating with different deep learning frameworks.
  • Consider adding comments within the code for better understanding.

Further Improvements:

  • Implement error handling for invalid file types or large image sizes.
  • Use a frontend framework like Bootstrap for a more polished user interface.
  • Explore more advanced face detection and deep learning models for improved accuracy.

License:

Specify the license under which the code is released MIT License.