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.2.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.2-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: VisageSnap-0.3.2.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.2.tar.gz
Algorithm Hash digest
SHA256 4cce90c4d83ba5c3dcf960c295d4a46bc8b3620e2a24e1f85133cd9203a8e638
MD5 b3726097cf6121f573fde994d04050c3
BLAKE2b-256 659243f1dee5756539fa0eda4c499ac519c845e03b2cb4a5fb840ccb5402be48

See more details on using hashes here.

File details

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

File metadata

  • Download URL: VisageSnap-0.3.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d323ba16efc22529833cbaef6afbbb40d11fd6f24616dc7f23b0e17dcf6d1b72
MD5 dcf63aa5f54020b8e81ee125738bb706
BLAKE2b-256 ccd33e8e2959f466b8a0114efacf1d588a92ba6e3c4d79653be3b2ecf3fee89c

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