Skip to main content

A module intended to abstract away a lot of the complexity of using OpenCV to detect and recognise faces for beginner programmers.

Project description

Vision Made Easy

This project aims to remove a lot of the complexity of dealing with the Open CV for beginner level programmers to experiment with face detection and recognition.

This project has been initially developed for use within my own classes that I teach but I hope it might find use for others too.

PROJECT HOME

INSTALL

pip install visionmadeeasy

To successfully run the demo, you will also have to...

  • Download a cascade file such as haarcascade_frontalface_default.xml from https://github.com/opencv/opencv/tree/master/data/haarcascades and save it into your project folder
  • Create a sub-folder called "datasets" in your project folder. This is where it will store your training photos.
  • Make sure you have a web camera attached :-)

DEMO CODE

import visionmadeeasy

def i_see_a_face( location, img ):
    print(f"I see a face!!! It is at {location['x']},{location['y']}")
    return True # must return True to keep the loop alive

def i_recognise_a_face( location, person_name, confidence, img ):
    print(f"Hello {person_name}! I am {confidence}% sure it is you :-)")
    return True # must return True to keep the loop alive

if __name__ == "__main__":
    vme = visionmadeeasy.VisionMadeEasy(0, "dataset")
    quit = False
    while not quit:
        print("Demonstration time! Menu of options...")
        print("1. Detect faces")
        print("2. Record faces")
        print("3. Train for faces recorded")
        print("4. Recognise faces (must do training first)")
        print("5. Exit")
        choice = int(input("Enter your option (1 to 5):"))

        if choice == 1:
            print("[face_vision] Task: Searching for faces.\nLook at the camera! (press ESC to quit)")
            # Demo of detecting faces
            vme.detect_face(i_see_a_face)

        elif choice == 2:
            print("About to save 50 images of different angles etc of a person, saving to folder ./dataset")
            id = int(input("Enter unique person number: "))
            n = input("Enter person name: ")
            print("Smile! :-)")
            # Demo of recording faces
            vme.record_face_dataset(images_to_record=50, interval=1, person_identifier=id, person_name=n)

        elif choice == 3:
            print("[face_vision] Task: Training... please wait...")
            # Demo of training faces
            vme.train_from_faces()

        elif choice == 4:
            print("[face_vision] Task: Searching for faces I recognise.\nLook at the camera! (press ESC to quit)")
            # Demo of recognising faces
            vme.recognise_face(i_recognise_a_face)

        elif choice == 5:
            quit = True

print("Goodbye!")

AUTHOR

LICENSE

MIT License (C) 2019 Paul Baumgarten

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

visionmadeeasy-2019.2.17.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

visionmadeeasy-2019.2.17-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file visionmadeeasy-2019.2.17.tar.gz.

File metadata

  • Download URL: visionmadeeasy-2019.2.17.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0

File hashes

Hashes for visionmadeeasy-2019.2.17.tar.gz
Algorithm Hash digest
SHA256 9f24e484dcaef7fb2875aea847ceea021b2feeb1276d3fd8a0c337113128832d
MD5 62fdefe9afffe53f9462c01e8882a6a2
BLAKE2b-256 4827dfddcd176b6b646fa1dcdecd7908b8cb18096e5ce59b587858b4df3f4b75

See more details on using hashes here.

File details

Details for the file visionmadeeasy-2019.2.17-py3-none-any.whl.

File metadata

  • Download URL: visionmadeeasy-2019.2.17-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.19.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0

File hashes

Hashes for visionmadeeasy-2019.2.17-py3-none-any.whl
Algorithm Hash digest
SHA256 88402a1d3fd8b68c4ffaaa3355c8f328fde733c66f63eec17bd055762ea1b9d6
MD5 c104c168290c6db693d9ae780f9f90b7
BLAKE2b-256 cda792ca1bff6f8d2e170978358360a1686a920e62778d63441ebf49f59f034d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page