Releases: serengil/deepface
v0.0.93
🚀 DeepFace v0.093 Release Notes
We’re excited to announce the latest release of DeepFace, packed with enhancements, bug fixes, and new features. Here’s what’s new in v0.093:
🌐 New Features
- CORS Enabled for All Routes: Now, CORS is enabled across all routes, enhancing cross-origin requests. (#1257)
- Face Extraction Options: Added an option to extract_faces to return faces in RGB, BGR, or Grayscale formats. More flexibility for your image processing! (#1279)
- Batch Prediction for Demography Models: We've introduced batch prediction support for demography models, speeding up the process. (#1298)
- Max Faces Argument: A new max_faces argument in represent lets you limit the number of faces processed in large images. (#1283)
🔧 Enhancements
- Image Quality Improvement: The resample argument is now set to Image.BICUBIC when rotating faces, improving the quality of low-resolution images. (#1269)
- Global Variable Management: We've centralized the management of global variables for better efficiency and maintainability. (#1296)
- Logger Class Update: The logger class is now fully Singleton, ensuring consistent logging throughout the application. (#1291)
🛠️ Refactorings
- Distance Calculation Optimization: Distance calculation functions are now more efficient, using fewer commands and leveraging numpy. (#1299)
- Detection Module Revamp: The DetectorWrapper is retired; detection is now handled directly within the detection module. (#1302)
- Model Structure Overhaul: Facial recognition, face detector, demography, and spoofing models are now organized into dedicated folders under the models directory. (#1303)
- File System Command Refactor: We’ve streamlined file system commands for better performance. (#1305)
- Facial Database Optimization: We now use set instead of list when creating the facial database, improving performance. (#1306)
- Verification Module Refactor: The verification module has been refactored to improve readability and efficiency. Previously, the same code block was run twice for an image pair; now, the logic has been moved to a subfunction, which is called separately for each image. This change simplifies the code and enhances maintainability. (#1309)
🐛 Bug Fixes
- Grayscale Face Bug Fix: Resolved an issue that occurred when returning a face in grayscale. (#1276)
- Facial Area Coordinate Bug: Fixed a bug where facial area coordinates could sometimes fall outside image borders. (#1308)
Thank you for your continued support and contributions to DeepFace! 🎉
Packages
v0.0.92
DeepFace 0.0.92 Release Notes 🎉
New Features & Improvements 🚀
-
Enhanced Find Function 🔍
Added refresh_database argument to the find function. The default value is True, but when set to False, a pickle file is used without checking for differences. (#1235) -
Version Display 📋
Package version is now shown on the API's homepage and in console logs, making it easier to track which version you're using. (#1246) -
Service Port Update 🔄
Service port moved from 5000 to 5005 to avoid conflicts with AirDrop on MacBooks. (#1246) -
Image Alignment Improvement 🖼️
When faces are close to the borders, alignment previously moved them outside the image. A border with black pixels is now added to avoid this issue. (#1247) -
Official Docker Image 🐳
Pushed the official DeepFace image to DockerHub for easier deployment and consistency. (#1249) -
Face Anti-Spoofing 🔒
Added a face anti-spoofing feature to enhance security and prevent fraudulent face inputs. (#1253)
v0.0.91
🎉 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
🚀 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
v0.0.89
v0.0.88
🚀 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
v0.0.87
🚀 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
v0.0.86
🌟 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
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
v0.0.84
🚀 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! 🚀✨