Skip to main content

Face Classification package

Project description

VisageSnap

Release build

English | 한국어

Recognizes faces and trains models, brings in the pictures and provides identification predictions and face classification. It also performs semi-supervised learning.

Feature

  • Recognize faces.
  • Train the model through semi-supervised learning with labeled or unlabeled pictures.
  • Predicts if the face belongs to someone it knows and whose face it is.

Installation

Requirements

  • Python 3.9+
    • Versions below 3.9 have not been tested, and pickle module must be installed via pip.
  • dilb

First, you need to install dilb. You can install it by following the instructions on the here.

Then, you can install VisageSnap by using pip:

pip install visagesnap

Usage

Assign a label to the face

You should assign a NameLabel to the face you want to classify first.

vs = VisageSnap.Core()
people = ['Tom', 'Jerry']
# ['NameLabel1', 'NameLabel2', 'NameLabel3'...]

vs.set_label(people)

You can also do it like this so that assign a NameLabel and NumberLabel: (NumberLabel MUST NOT BE -1)

people = {
    # 'NameLabel': NumberLabel
    'Tom': 0,
    'Jerry': 1
}

Put the picture files to be used during training in the directory. In this case, the file name follows the following rules:

(NameLabel)-(Any character).extension

Tom-123.png
Tom-124.jpg
Tom-126.jpeg
Jerry-2.png
Jerry-3.png
Jerry-4.png

Recognize faces and train the model

Before training, you need to load model. You don't have a model? It's okay. It'll be created automatically if it doesn't exist.

vs.load_model()

Train with the picture files in the directory.

vs.train_labeled_data()

If you want to train with unlabeled data, you can also try to like this:

vs.train_unlabeled_data()

Identification predictions

Put the picture files you want to predict into the directory.

result = vs.predict_all()
print(result)
{
   "target1.png": "Tom",
   "target2.jpeg": "Jerry",
   "target3.jpeg": ["Tom", "Jerry"], # multiple faces in one picture
   "target4.jpeg": None # If the face is unknown
}

Full example

You can see the full code here.


To change the directory you work with

You should put the picture files into configured directory, and also model file is stored in model directory.

from VisageSnap import Directory

my_dir = Directory( "labeled_pic",
                    "unlabeled_pic",
                    "my_model.d",
                    "predict_dir")
vs.set_directory(my_dir)

Default Directory:

{
    "labeled": "labeled",
    "unlabeled": "unlabeled",
    "model": "model"
}

Others

To get the face information

You can get the faceObject by using get_faceObject method. The faceObject is a dataclass that contains the face information.

from visagesnap import From
# From.LABEL, From.FILENAME
face_tom = vs.get_faceObject(From.LABEL, "Tom")
face_tom = vs.get_faceObject(From.FILENAME, "Tom-123.png")
# face_tom = Face(label, encodings, filenames)

name: str = face_tom.label
encodings: NDArray = face_tom.encodings
filenames: list = face_tom.filenames

To change prediction threshold

vs.threshold = 0.5  # Default: 0.48

Acknowledgement

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

VisageSnap-0.3.1.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

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

VisageSnap-0.3.1-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file VisageSnap-0.3.1.tar.gz.

File metadata

  • Download URL: VisageSnap-0.3.1.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for VisageSnap-0.3.1.tar.gz
Algorithm Hash digest
SHA256 b6917adc4f5d042d15cb947d498874705d97d06659f409ba169396d0bba025c1
MD5 be5a14f2781097630cf95fcb14d32c0b
BLAKE2b-256 c29f39b2e6d2f81987bdae49d1fe57262173e087b3034fd76ac8b357fd5c8dbb

See more details on using hashes here.

File details

Details for the file VisageSnap-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: VisageSnap-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for VisageSnap-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9cefbb6f59c4eb96878727f96b20dbc17801c024977e848089efbddb57c2c19d
MD5 1077dbf545f7974ce07b32dddeb2f7f9
BLAKE2b-256 ee53eaa6d30e0b712ccd3b7aab4fe8e213d31ac107d4cd48c3e7396940151d83

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