Skip to content

Releases: serengil/deepface

v0.0.91

02 May 07:29
Compare
Choose a tag to compare

🎉 DeepFace v0.0.91 Release Notes 🚀

We're excited to introduce some fantastic updates in this release! Here's what's new:

📏 Custom Threshold Support: With PR-1223, we've enhanced the verify method to support an optional threshold parameter. Now, you can tailor the verification process to your needs for stricter or more lenient results.

📚 Enhanced Documentation: Thanks to PR-1224, you'll find the latest publication mentioned in the README. Additionally, experiment results are conveniently shared in the benchmarks folder for your reference.

🖼️ Improved Functionality: We've fixed a bug in the represent function (PR-1225) where face regions were inaccurately returned if detection was skipped. Now, you can expect more reliable results.

📝 License Inclusion: PR-1225 addresses a missing license in the pip package, ensuring compliance and transparency.

🔧 Issue Templates: To streamline communication and issue tracking, we've created issue templates with PR-1203. Now, reporting and addressing concerns is easier than ever before.

Thank you for your continued support and feedback! Download DeepFace v0.0.91 now to enjoy these enhancements and more. Happy coding! 🤖✨

Package

v0.0.90

16 Apr 21:08
5518a5d
Compare
Choose a tag to compare

🚀 DeepFace 0.0.90 Release Notes

👁️ Improved Eye Detection:

  • Now utilizes dlib detector for obtaining the centers of the left and right eyes, enhancing accuracy and reliability (#1138).

  • Eye positioning is now relative to the person instead of the observer, aligning with biological standards (#1140).

💻 Enhanced Performance:

  • Fast MtCnn detector now supports GPU acceleration for faster processing (#1145).

🔍 Model Correction:

  • FaceNet model now correctly uses InceptionResNetV1, rectifying the mislabeling as V2 in its docstring (#1151).

🔧 Streamlined Functionality:

  • Embeddings extraction function renamed to "forward" and moved to superclass for improved modularity (#1156).

  • Improved file detection by examining content type instead of relying solely on file extension, enhancing security (#1171, #1173, #1174).

  • Separated resize functionality into representation module for better code organization (#1175).

  • Singleton pattern implemented for logger classes to optimize resource usage (#1177).

  • Introduction of CenterFace face detector to DeepFace's toolkit (#1184).

  • Consideration of additional arguments impacting embeddings during facial database creation (#1185).

  • Introduction of File Utils for improved file management (#1186).

🛠️ Bug Fixes:

  • Detection post-alignment now validates projected coordinates against base image size to prevent failures due to invalid coordinates (#1191).

Package

https://pypi.org/project/deepface/0.0.90/

v0.0.89

22 Mar 10:14
a3f04e6
Compare
Choose a tag to compare

🛠️ Enforcing TF 2.12 or earlier is necessary if you intend to utilize the DeepFace model. Additionally, the LocallyConnected2D dependency isn't imported by default as it's unavailable post TF 2.12. - #1134

v0.0.88

21 Mar 18:36
Compare
Choose a tag to compare

🚀 DeepFace v0.0.88 Release Notes 🚀

We're thrilled to announce the latest update to DeepFace, version 0.0.88! This release brings fixes, improvements, and enhancements to ensure a smoother and more accurate facial recognition experience. Here's what's new:

✨ TensorFlow Compatibility Fix: We've addressed an issue where TensorFlow 2.16 caused trouble with DeepFace due to the default use of Keras 3. Thanks to PR-1126, this issue has been sorted out, ensuring seamless integration with the latest TensorFlow version.

👁️ Eye Coordinate Correction: In previous versions, there was a bug affecting the calculation of left and right eye coordinates, particularly for OpenCV and SSD models. While this bug didn't impact facial recognition accuracy, it led to incorrect return values. Thanks to PR-1126, this issue has been resolved, guaranteeing accurate eye coordinate calculations.

🧪 Expanded Unit Tests: We're dedicated to ensuring the reliability and stability of DeepFace. To achieve this, we've added more unit tests for the API in PR-1127 and PR-1128. These tests help validate the functionality of the API, ensuring consistent performance across different scenarios.

With these fixes and enhancements, DeepFace v0.0.88 is better equipped to deliver accurate facial recognition results while maintaining compatibility with the latest TensorFlow versions. Upgrade now to experience the improvements firsthand! 🌟

Stay tuned for more updates and improvements as we continue to evolve DeepFace to meet your needs. Thank you for your continued support and feedback! 🙌

Package

https://pypi.org/project/deepface/0.0.88/

v0.0.87

17 Mar 12:12
3a30071
Compare
Choose a tag to compare

🚀 DeepFace Project Release Notes - Version 0.0.87

We're excited to announce the latest updates to the DeepFace project! Here's what's new:

👻 GhostFaceNet Model Added: Introducing GhostFaceNet model to our DeepFace model portfolio! Utilize this cutting-edge addition for even more accurate and robust facial recognition capabilities. - #1111

🔧 Real-time Streaming Module Refactored: We've revamped our real-time streaming module for enhanced performance and efficiency. Enjoy smoother streaming experiences with DeepFace! - #1110

🛠️ Dependency Compatibility Fix: We've resolved an issue where importing the DeepFace model was causing exceptions due to a missing dependency after TensorFlow 2.12. Enjoy seamless integration regardless of your TensorFlow version. - #1083

📐 Improved Input Handling for Non-Keras Models: We've enhanced the input handling for facial recognition models like SFace and Dlib, ensuring consistency and ease of use across all models. Say goodbye to unnecessary complexities with retired layer.input_shape! - #1091

👀 Refactoring Fast MtCnn detector: model building simplified and bug while extracting facial area was sorted. - #1115

Upgrade now to DeepFace version 0.0.87 and unlock these exciting features and improvements! 🎉

## Package

https://pypi.org/project/deepface/0.0.87/

v0.0.86

09 Mar 22:56
Compare
Choose a tag to compare

🌟 Release Notes: Enhancements & Fixes 🌟

🎯 All detectors now return a confidence score between 0 and 1 (#1041)

📏 Fixed the "expand facial area" logic – it was doubling the expand_percentage for width and height instead of applying it correctly. Now, it's just right. (#1047)

🔄 Ensured rotation angles are now nicely constrained within a [0, 360) range, keeping things in a perfect circle. (https://github.com//pull/1047)

🚫💬 Added meaningful error messages for when a face can't be detected for a given a numpy array or base64 encoded image. (#1059)

🚀 Optimized the verify function to avoid unnecessary recalculations of embeddings when multiple faces are detected in one of the image pairs. (#1059)

🌐 Loading images from web if and only if given image is really link, discarding files with name starting with http prefix (#1059)

🔍 In the find function, we're now checking the type of base64 encoded images to ensure compatibility with jpg, jpeg, and png formats. (#1059)

🚨 The fastmtcnn detector has been fixed to gracefully handle cases where no face is detected. (#1059)

🔄 Verify function now gracefully accepts pre-calculated embeddings as inputs. (#1072)

📊 We're now including column names in the output pickle files of the file function for that extra clarity and convenience. (#1072)

🔍📁 In find function, we are now tracking replaced files in a folder (#1072, #1074)

🛠️ Updated GitHub Actions configuration to wave goodbye to those pesky warnings. Smooth sailing ahead! (#1082)

🤖 We now check the TensorFlow version in DeepFace model to avoid issues with LocallyConnected2D not being supported after tf 2.12. Ensuring smooth imports and no surprises! (#1083)

v0.0.85

25 Feb 15:43
ca8a149
Compare
Choose a tag to compare

Fixes and Enhancements:

🐛 Bug Fix: Resolved issue with image processing from the web. Now your DeepFace package handles web images seamlessly. #1026

🔄 Interface Upgrade: The interface of detectors has been revamped! Detectors now return facial area coordinates, eye locations, and confidence scores. #1025

🛠 Common Functionality Centralization: All detectors now share common functionalities like detection, alignment, and expanding facial areas, thanks to the new parent module - DetectorWrapper. #1025

🎭 Improved Face Alignment: We've switched the order! Now, face alignment precedes facial area extraction. No more black pixels, providing a cleaner output. #1025

📐 Dlib Detector Fix: Corrected the returned facial area coordinates for the dlib detector. #1020

📣 Version Information: Now you can easily access version information directly from the DeepFace module with version variable. #1007

🔄 Streaming Module Refactoring: The streaming module has undergone a thorough refactoring, enhancing its efficiency and performance. Enjoy a smoother streaming experience! #1031

🔄 Recognition Module Overhaul: The backend of the find function, the recognition module, has been revamped for improved functionality and reliability. #1031, #1032

🐛 Image Loading Bug Fix: Resolved a pesky bug where OpenCV's imread was returning 'None' instead of a valid image. Say goodbye to unexpected errors when loading images! #1038

🌐 Confidence Score Standardization: Now, all detectors uniformly return confidence scores in the scale [0, 1]. This standardization ensures consistency across your DeepFace detections. #1041

## Package

https://pypi.org/project/deepface/0.0.85/

v0.0.84

04 Feb 13:36
Compare
Choose a tag to compare

🚀 Release Notes - Version 0.0.84 (Feb 04, 2024) 🚀

We are thrilled to announce the latest release, packed with exciting enhancements, bug fixes, and organizational improvements. Let's dive into the highlights of this release:

Features & Enhancements:

🛠️ Error Prevention in MTCNN Detector: Resolved a TypeError when running the MTCNN detector on an image with no faces. A condition using short-circuit evaluation has been added to prevent this exception. (#976)

📸 Updated Return Type for Face Detection: Modified the return type of Detector.detect_faces and its inherited classes to improve clarity. Now returning a List[DetectedFace] where DetectedFace includes the detected image, facial area coordinates, and face confidence score. (#978)

📁 API Restructuring: Moved the API under the 'deepface' folder for better organization. Unit tests have been added to ensure the reliability of the API functionalities. (#1004)

🐞 Bug Fix in API Serialization: Resolved the bug causing "Object of type int32 is not JSON serializable" in the API. Converted facial area regions from numpy int32 to Python built-in int. (#1004)

🔄 Facial Area Expansion: Added an 'expand facial area percentage' argument to all functions for greater flexibility. (#990)

🛠️ Code Refactoring and Organization: Retired the 'find target size' function, moving facial recognition model input shapes retrieval to clients. Created a preprocessing module, relocated load image functions, and organized code logic into separate modules. (#990)

🐍 Snake Case for Distance Calculation: Made distance calculation functions snake-cased for consistency. (#990)

📦 Commons Module Refactoring: Retired commons.function in favor of commons.package_utils and commons.version_utils. The logic previously available under function.commons has been moved to the appropriate modules. (#999)

Documentation & Miscellaneous:

📖 Citations Added: Included a citations.md file for easy access to citations and references. (#999)

🧹 Code Cleanup and Restructuring: Distance calculation functions have been moved into the verification module. Version information is now stored in package_info.json. The Postman collection is now located under api/postman. (#999)

We appreciate your continued support and feedback. Please feel free to explore these improvements and let us know if you encounter any issues or have suggestions for further enhancements. Happy coding! 🚀✨

Packages

v0.0.83

26 Jan 21:01
0833da1
Compare
Choose a tag to compare

🔄 Enhancement

Find function now returns a pandas dataframe, with the distance column named as distance by default. Improved naming practice for clarity and consistency.PR-974

Ticket: #969

🎯 New Feature

Added optional threshold argument to the find function. You can now filter the pandas dataframe after finding distances for each pair. If threshold is not set, the pre-tuned threshold will still be used for the given model name and distance metric. PR-974

Ticket: #972

🐛 Bug Fix

Resolved yunet bug related to "Argument 'score_threshold' can't be treated as a float." The issue has been sorted out. PR-974

Ticket: #973

Packages

v0.0.82

25 Jan 14:59
0833da1
Compare
Choose a tag to compare

Bugs

🔄 Normalization Layer Update : The VGG-Face model's normalization layer, causing issues for some GPU users (e.g. #957, #966), has been revamped. In this pull request, the normalization layer's functionality has been seamlessly integrated into the embedding calculation using regular NumPy operations instead of the Keras backend. PR-967

🚧 DeepID Model Representation Fix: Resolved an issue with the representation call of the DeepID model, ensuring smooth and error-free execution. PR-964

🐛 Ssd detector's alignment bug: When face detection is done with Ssd, unexpectedly it returns zero dimensional image. This causes errors in the alignment stage. We terminated the aligment procedure now if one of the dimension's shape of coming image is 0. PR-959

Improved Dependency Handling: Meaningful exception messages are now thrown when importing uninstalled optional dependencies (e.g., Ssd, YuNet), providing clear guidance for resolving dependencies. PR-959

📦 Package Inclusion in Wheel Build: The readme and dependencies are now included in the built wheel package. This inclusion mitigates potential errors when uploading to Conda and ensures a smoother installation process for users. PR-950

Enhancements

🗄️ Datastore Management Enhancement: After running the find function, the created datastore is now expected to be updated rather than deleted if new instances are added in the database folder. This PR ensures that the pickle file is appropriately modified when instances are added, dropped, or if the content of existing images changes, improving overall data management. PR-959

📂 Modularized Functionality Logics: With this PR, the functionality logics for various operations in the DeepFace interface, including verify, find, analyze, represent, stream, and extract faces, have been relocated to the modules folder. As a result, the DeepFace interface (DeepFace.py) now boasts a cleaner and more organized structure. PR-953

🧬 Abstract Classes for Models: New abstract classes, namely FacialRecognition, Detector, and Demography, have been introduced. All facial recognition models, extended models (e.g., age, gender), and detectors now inherit from these abstract classes. [This architectural enhancement simplifies the process of adding new backends for these models. PR-960, PR-962

📚 Docstring Refinement: Docstrings in the deepface interface have been re-arranged for improved readability and understanding, enhancing the overall documentation. PR-965

🐳 Dockerfile Optimization: The Dockerfile has been updated to enhance the docker build cache layer, resulting in an optimized and more efficient build process. PR-951

Package