Skip to main content

svnm - A Simplified Deep Learning Models Package

svnm is a Python package designed to simplify the process of using deep learning models in your code. With just a simple import, you can easily load pre-trained models and make predictions with minimal setup. This package is aimed at making deep learning models more accessible for developers, enabling rapid experimentation and deployment.

Routing

Image Classification

Features

  • Easy-to-use interface: Import the package and start making predictions with minimal code.
  • Pre-trained models: Includes popular deep learning models ready for use without additional training.
  • Flexible prediction methods: Support for various types of input data to make predictions.
  • Lightweight and efficient: Focuses on simplifying deep learning workflows without overhead.

Installation

To install svnm, simply use pip:

pip install svnm

Model Usage

Gender Detection

from svnm.models import GenderDetection

model = GenderDetection()

# Single Prediction
prediction, confidence = model.predict("face_image.jpg")
print(f"Predicted Gender: {prediction} with confidence {confidence:.2f}")

# Batch Prediction
image_paths = ["face1.jpg", "face2.jpg", "face3.jpg"]
predictions = model.predict_batch(image_paths)
for img, (label, conf) in zip(image_paths, predictions):
    print(f"Image: {img} -> Predicted Gender: {label} with confidence {conf:.2f}")

# Visualization
model.visualize_prediction("face_image.jpg")

How Gender Detection Works

The Gender Detection model in svnm classifies whether a detected face belongs to a male or female. It works as follows:

  1. Loading the Model: The pre-trained deep learning model is loaded automatically when the GenderDetection class is initialized.
  2. Processing the Image: The input image is preprocessed and resized before being fed into the model.
  3. Making Predictions: The model analyzes the facial features and predicts the gender along with a confidence score.
  4. Batch Processing:
    • Supports batch predictions for multiple images at once.
    • Each image is processed individually, and the results are returned as a list.
  5. Visualization:
    • If visualize_prediction() is called, the image is displayed with the predicted gender and confidence score.

Face Detection

from svnm.models import FaceDetection

model = FaceDetection(save=True, save_dir="predictions")

# Single Image Prediction
predictions = model.predict("face_image.jpg")
print("Face Detection Results:", predictions)

# Batch Prediction
image_paths = ["face1.jpg", "face2.jpg", "face3.jpg"]
batch_predictions = model.predict_batch(image_paths)
for img, preds in zip(image_paths, batch_predictions):
    print(f"Image: {img} -> Predictions: {preds}")

How Face Detection Works

The Face Detection model in svnm is designed to detect human faces in images. It works as follows:

  1. Loading the Model: The pre-trained YOLO-based face detection model is loaded automatically when the FaceDetection class is initialized.
  2. Processing the Image: The input image is read, preprocessed, and fed into the model.
  3. Detecting Faces: The model detects faces in the image and returns bounding box coordinates, confidence scores, and class labels.
  4. Batch Processing:
    • Supports batch predictions for multiple images at once.
    • Each image is processed individually, and the results are returned as a list.
  5. Saving and Visualizing Results:
    • If save=True, the detected faces are highlighted in the image and saved to the specified directory.
    • The model outputs a list of detected faces with their positions and confidence levels.

FaceRecognition Class

FaceRecognition(models=None)
  • Description: Initialize the class with a list of DeepFace models. Default models are: ["Facenet", "OpenFace"].
  • Parameters:
    • models (optional): List of model names to use.

detect_face(image_path, show=True)

  • Description: Detects faces in an image using OpenCV Haar Cascade.
  • Parameters:
    • image_path: Path to the image.
    • show: If True, displays the detected face(s).
  • Returns: Tuple (faces, image_with_rectangles)

get_combined_embedding(image_path)

  • Description: Extracts embeddings from selected models and calculates:
    • Average embedding
    • Concatenated embedding
    • Standard deviation embedding
  • Returns:
    {
        "avg": np.array,
        "concat": np.array,
        "std": np.array
    }
    

compare_embeddings(embedding1, embedding2)

  • Description: Compares two embeddings using cosine similarity.
  • Parameters:
    • embedding1: Output of get_combined_embedding
    • embedding2: Output of get_combined_embedding
  • Returns: Dictionary of similarity scores for each method:
    • "avg", "concat", and "std"

train(df, save=False, json_path="trained_data.json")

  • Description: Trains the recognizer with a DataFrame of image paths and labels.
  • Parameters:
    • df: Pandas DataFrame with path and label columns.
    • save: If True, saves the result to a JSON file.
    • json_path: Path to output JSON file.

find_best_match(image, source_type=None)

  • Description: Finds the best matching label for a new image using cosine similarity on concat embeddings.
  • Parameters:
    • image: Image path or URL
    • source_type: 'url' or 'path'. Defaults to 'path'
  • Returns: Tuple: (predicted_label, similarity_score)

Handwritten Digit Recognition

from svnm.models import HandwrittenDigitRecognition

model = HandwrittenDigitRecognition()

# Single Image Prediction
prediction = model.predict("digit_image.jpg")
print("Predicted Digit:", prediction)

How Handwritten Digit Recognition Works

  1. Loading the Model: The pre-trained digit recognition model is initialized.
  2. Processing the Image: The input image is resized and normalized before being fed into the model.
  3. Making Predictions:
    • The model predicts the digit and outputs the confidence score.
    • Supports batch predictions for multiple images at once.

Example Output

{"digit": 7, "confidence": 0.98}

Metadata

Release files for svnm 1.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for svnm 1.4.2
File Size Uploaded
svnm-1.4.2.tar.gz 12.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for svnm 1.4.2
File Interpreter ABI Platform
svnm-1.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 26.5 kB

Release files / svnm-1.4.2.tar.gz

Download URL svnm-1.4.2.tar.gz
Size 12.8 kB
Tags Source
SHA-256 checksum
How to use checksums
88d5485136157147bc302570f2a90b0f76bdc6d84d3ed9baf508699d7eca6cf7
BLAKE2b-256 checksum
How to use checksums
0f39263a97aa80e8b3d82af3c803e23c6b845a23c1069e7f16426c1a9123ae4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.1

Release files / svnm-1.4.2-py3-none-any.whl

Download URL svnm-1.4.2-py3-none-any.whl
Size 13.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
23b646617eedd069cca2632fd09af85592b0d42fbf86d497819cf5134044476d
BLAKE2b-256 checksum
How to use checksums
07901a4d4fede9d2f72ecceaef40872c59911cce818050dc9da887075cdf2800
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.1

Release history Release notifications | RSS feed

This release

1.4.2 This release

2 release files

1.4.1

2 release files

1.3

2 release files

0.1.7

3 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page