The Pangiam Trueface On-Prem documentation page can be found here.
The Templatize Face endpoint now accepts three new form parameters, each defaulting to True: error_on_image_exposure, error_on_template_quality, and error_on_face_blur. When True, a request is rejected if a detected face fails the corresponding check (image exposure, template quality, or blur). When False, a failed check is logged as a warning instead, and the request proceeds normally.
The Templatize Face endpoint response now includes three new objects for each templatized face: image_exposure (result of GOOD, OVER_EXPOSED, or UNDER_EXPOSED, plus image_pixels_above_brightness_threshold, image_pixels_below_darkness_threshold, and face_pixels_above_brightness_threshold), template_quality (is_good and score), and face_blur (result of GOOD or BLURRY, plus score, the estimated probability that the face image is blurry). See documentation for more details.
The Enroll Face endpoint now checks a detected face's estimated template quality and image blur on every enrollment. When strict_enrollment is True, a request is rejected if either check fails. When False, the issue is logged as a warning instead, and the face is still enrolled. See documentation for more details.
The underlying Trueface engine (SDK) has been upgraded for this release from v3.0.30903 to v3.1.924.
HOSTED_DATABASE is now optional in application settings and defaults to False when omitted. It has been removed from the bundled .env examples (including the AWS Lambda template) so local Docker Postgres setups do not need the variable; it may be necessary to set HOSTED_DATABASE=True only when using certain managed or hosted Postgres service. See the Introduction documentation under Settings for details.
all whitelist endpoints have been modified from being deprecated to being removed. They are no longer available.
all .env examples where 'trueface-secret' has been used as a password value have been changed to an updated string. It is HIGHLY ENCOURAGED for users to change these default values to something more secure. See the documentation for more details.
Example:
JWT_SECRET_KEY=trueface-secret
is now listed as:
JWT_SECRET_KEY=trueface-secret-jwt-secret-key@@
documentation now reflects new password examples and additional encourangement to new users to change these default password examples in order to run their systems securely.
The logging behavior at INFO and DEBUG levels has changed substantially to make log output easier to follow.
documentation for the Match Faces and Identify Face endpoints now explicitly notes that when a faceprint is supplied as input instead of an image, face-analysis response fields (such as bounding_box, quality, landmarks, mask, spoof, spoof_score, face_confidence, and face_landmarks_106, where applicable to the endpoint) will be returned as null, and yaw/pitch/roll will be returned as 0.0. This is a documentation clarification only -- there is no behavioral change.
v2/identify-face, e.g. searching an empty or non-existing collection, resulted in an the incorrect error message being emitted. These cases now emit a general message along with a code in the data of the payload for specifics on the type of error.DB_HOSTADDR .env var has been removed and the functionality has been absorbed by the DB_HOST var. This means that you can still use an ip address for a remote database in the format of, for example: 192.168.100.10, but you would add DB_HOST=192.168.100.10 to the .env file rather than DB_HOSTADDR=192.168.100.10./v2/match-faces endpoint is documented as reporting a spoof_score along with the spoof label when detect_spoof is set to True. However, the spoof_score has been missing. This has been fixed, and the spoof_score now correctly appears in this endpoint.LITE_V3 facial-recognition model has replaced the LITE default model. For more information, see How To Download Additional Face Recognition Models or the SDK_FR_MODEL descriptions in Settings in the documentation.spoof_score results across all endpoints are now rounded to the fifth decimal place. For example: "spoof_score": 0.02203226648271084 will now be "spoof_score": 0.02203, though in some rare cases in which the spoof score is very small, such as 0.000001, it may display in an exponent format such as: "spoof_score": 1e-05identify_video has been changed from "Unable to detect face" to "No face detected in image." in order to bring it in line with error messaging standards in all other endpoints.strict_enrollment is True -- face height is greater than or equal to SDK_SMALLEST_FACE_HEIGHT. Continuing enrollment. has been removed when using the enroll-face endpoint. Enrollment of a face smaller than SDK_SMALLEST_FACE_HEIGHT is not possible in either of the strict_enrollment=False and the strict_enrollment=True cases, so if any face smaller than SDK_SMALLEST_FACE_HEIGHT exists in an image, it will not be detected by the system.Face height: <pixel_height> pixels has been removed when using the enroll-face endpoint. This was part of determining the SDK_SMALLEST_FACE_HEIGHT check, which has proved to be unnecessary.SDK_SMALLEST_FACE_HEIGHT under Settings in the documentation for details.v2/login incorrectly shows the access_token having the word "Bearer" in it. This has been corrected.New boolean parameter force_collection_reload added. This parameter affects the loading of the collection into memory from database when performing the specified operation. force_collection_reload is optional and defaults to True. Prior to the change, collections were always loaded from the database prior to operations involving identify, enrollment, and removal from a collection. In deployments where either the number of collections is fixed or where there is only a single PTOP instance, callers setting this parameter to False can now leverage the speed-ups associated with not reaching out to the database. The following APIs are affected:
v1 endpoints have been marked as deprecrated and will be removed in the next release.
All endpoints are now configured to accept both Form Data and JSON input. The exception to this is the Upload Whitelist endpoint, which, because it takes an uploaded file, can only receive form data. All other endpoints can take url's in liew of uploaded files if users want to make their API requests in JSON.
The following fields are now a required part of the v2 Identify Video endpoint:
The following error messages have been either replaced or added to the system. Please update your code if it depends on specific error messaging:
"An unexpected HTTP error occurred. Please check the details and try again."
"Invalid Header Content-Type. Supported Content-Types are: "
"application/json, multipart/form-data, application/x-www-form-urlencoded"
"Invalid JSON format. Ensure the JSON structure is correct: "
"all strings should be enclosed in double quotes, booleans should "
"be true/false (without quotes), numbers should not be quoted, "
"and there should be no trailing commas."
"Json validation error. Please check errors below for details."
"Json - 'application/json' header error - please check headers or check to make sure json is present in request."
"Error: Invalid image file. Please check the image and try again."
"Error: image base64 string invalid. Please check the image string and try again."
"Error: image url invalid. Please check the image url and try again."
"Error: Invalid faceprint. Please check the faceprint and try again."
"Error: Exactly one of {image_type}, {image_type}, or {image_type} must be provided, or error reading image."
"Error: Unsupported image type. Please check the image type and try again."
"Validation Error: Missing required field(s) {missing_fields_str} in the request."
"Validation Error: {bad_bool_input} should have valid boolean type, unable to interpret input. Please remove any quotes around the value(s)."
"Validation Error: {bad_float_input} should have valid number(s), unable to interpret input. Please remove any quotes around the value(s)."
"Validation Error: {bad_list_input} should have valid entry(s), unable to interpret input. Please check input and try again"
"Error: bad or corrupt image or base-64 string. Please check input and try again."
"Collection name cannot be empty."
This changelog outlines the changes made to the matcher-onprem. It includes updates to the SDK, new endpoints for loading and listing collections, and modifications to how collections are loaded in enrollment and identification steps. Additionally, several vulnerabilities have been fixed, error messages have been made clearer in certain scenarios, and various small bugs have been addressed.
Updated the documentation for the following v1 endpoints to include missing information:
Added missing description to "V2 Identify Video"
Added missing similarity threshold to docs for "V2 Match Faces"
In the case where a whitelist is established for v1 or v2, and the user is not allowed to access the whitelist, the error code has been changed from 400 to 403
For the following endpoints, certain error cases were returning a status code of 400 instead of the documented 422. These conditions now return a 422 to match the documentation. The error message strings are unchanged:
/load-collections endpoint to load collections from disk into memory, useful for speeding up the first request to a collection after the system has been restarted./list-loaded-collections endpoint to list all collections that are currently loaded into memory./load-collections and /list-loaded-collections added.Inference threading model has been improved at the SDK level. This should increase the response speed of the system.
PTOP is now configured only to work with PostgreSQL version 12.x. In the past, other versions were allowed, but were not guaranteed to work and could cause problems. The system now insists on Posgres 12.x.
Underlying sdk has been updated to ver 2.0. This is a siginificant upgrade which offers a number of benefits, but also introduces a major breaking change and possible issues with backwards compatibility. We appologize for any inconvenvience.
We are now no longer able to support Facial Recognition Model TFV5 in v2.0+. This model could not be converted to the required format. As a substitute, we've released TFV5_2, which has very similar accuracy and inference time to TFV5. However, faceprints are not compatible between the two models. If you want to upgrade a TFV5 collection to TFV5_2, you will need to regenerate and re-enroll faceprints for all your images.
The 'FULL' facial recognition model (also known as TFV4), is no longer supported and has been removed from the system and from documentation.
/identify endpoint where strict head orientation was being enforced.SDK_FR_MODEL=tfv5 to SDK_FR_MODEL=tfv7- character issue in collection creation and detailnamespace in collection endpoints/v2 endpoints.Content type
Image
Digest
sha256:6ec60ff17…
Size
4 GB
Last updated
3 months ago
docker pull pangiam/trueface-onprem