A package to make the usage of DeepLearning models easier
Project description
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:
- Loading the Model: The pre-trained deep learning model is loaded automatically when the
GenderDetectionclass is initialized. - Processing the Image: The input image is preprocessed and resized before being fed into the model.
- Making Predictions: The model analyzes the facial features and predicts the gender along with a confidence score.
- Batch Processing:
- Supports batch predictions for multiple images at once.
- Each image is processed individually, and the results are returned as a list.
- Visualization:
- If
visualize_prediction()is called, the image is displayed with the predicted gender and confidence score.
- If
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:
- Loading the Model: The pre-trained YOLO-based face detection model is loaded automatically when the
FaceDetectionclass is initialized. - Processing the Image: The input image is read, preprocessed, and fed into the model.
- Detecting Faces: The model detects faces in the image and returns bounding box coordinates, confidence scores, and class labels.
- Batch Processing:
- Supports batch predictions for multiple images at once.
- Each image is processed individually, and the results are returned as a list.
- 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.
- If
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: IfTrue, 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 ofget_combined_embeddingembedding2: Output ofget_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 withpathandlabelcolumns.save: IfTrue, 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
concatembeddings. - Parameters:
image: Image path or URLsource_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
- Loading the Model: The pre-trained digit recognition model is initialized.
- Processing the Image: The input image is resized and normalized before being fed into the model.
- 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}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file svnm-1.4.2.tar.gz.
File metadata
- Download URL: svnm-1.4.2.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88d5485136157147bc302570f2a90b0f76bdc6d84d3ed9baf508699d7eca6cf7
|
|
| MD5 |
52a7502d2f01e01f522651183359eee1
|
|
| BLAKE2b-256 |
0f39263a97aa80e8b3d82af3c803e23c6b845a23c1069e7f16426c1a9123ae4a
|
File details
Details for the file svnm-1.4.2-py3-none-any.whl.
File metadata
- Download URL: svnm-1.4.2-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23b646617eedd069cca2632fd09af85592b0d42fbf86d497819cf5134044476d
|
|
| MD5 |
c34773a478beb0700e6155cf7a5d49c6
|
|
| BLAKE2b-256 |
07901a4d4fede9d2f72ecceaef40872c59911cce818050dc9da887075cdf2800
|