SmartFace Embedded Stream Processor
[3.3.0] - 2024-07-31# Added# Added NO_COLOR environment variable to disable color output in stderr logs Changed# Logging was switched entirely to stderr by default honoring settings.log.level settings.log.path has been marked deprecated Face attributes are available in frame data also without liveness enabled The supported Solver API version is now v0.10.x Ambarella solver updated to v0.10.1 with a static EazyAI-based implementation Ambarella vproc.bin location is now first searched for in the current working directory TFLite solver updated to v0.10.1 with a new face detector solver resolutions Removed# The settings server is removed from the Stream Processor. Settings are now read from the ‘settings.yaml’ on startup. The user register topic has been removed. [3.1.0] - 2024-05-10# Changed# Storage is now entirely memory-mapped.Metadata keys are limited to 31B and values are unlimited in size Moved storage path from ‘settings.face_identification.storage’ to ‘settings.storage.path’ Resetting settings update will restore startup settings Removing the settings update message will now correctly restore the initial license Database synchronization ID (DSID) string is now limited to 255B [3.0.0] - 2023-04-17# Added# Retained MQTT settings message can now override settings from settings.yaml
. The health message now contains license status and HWID. Changed# Settings file changes no longer cause Stream Processor to restart. Instead, the settings are reloaded and applied on startup. The supported Solver API version is now v0.9.x, old solvers (< 0.9) are not compatible Removed# THE SFE settings server is removed from the Stream Processor. Settings are now read from the settings.yaml
on startup and can be updated via the MQTT topic The user register topic has been removed. [2.6.6] - 2024-03-15# Added# AMBARELLA_BUFFER_ID env variable is replaced by settings for camera_input.ambarella.solver as ambarella_buffer_id. (Ambarella solver 0.8.8) Removed# Removed AMBARELLA_BUFFER_ID env variable [2.6.5] - 2024-03-11# Changed# Input and output solvers loading is cached. Fixed# Fixed freezing when sfe_stream_processor restarted [2.6.4] - 2024-02-28# Changed# MQTT topic user/register is deprecated and will be removed in the next major release. Fixed# Fixed duplicated User and Metadata in storage when user-centric MQTT topic is used [2.6.3] - 2024-02-16# Added# Added filtering of faces by minimal and maximal face size. [2.6.2] - 2024-02-09# Fixed# [2.6.1] - 2024-02-02# Added# Added support for Ambarella cv28 architecture. Changed# Ambarella solvers unified for cv2, cv22, cv25 and cv28 to provide same accuracy on all platforms New feature-based licensing for solvers - old licenses won’t work IMPORTANT: From SFE Stream Processor version 2.6.1 you should use the new license type for license generation (prefixed with NEW) [2.6.0] - 2023-12-20# Added# Removed# Removed settings for landmark threshold and face mask threshold [2.5.6] - 2023-12-12# Added# Added support for Jetson with Jetpack 4.4 and 4.6 Changed# db::update message now uses a more efficient delete operation allowing it to scale better when deleting a large number of records Identification errors will now be reported in logs [2.5.5] - 2023-11-30# Fixed# Health status ONLINE is now sent after the Client is subscribed to topics [2.5.4] - 2023-11-28# Fixed# [2.5.3] - 2023-11-21# Changed# Health status ONLINE is now sent after a client has been connected to a broker. The Client subscribes to topics after it is successfully connected to a broker. Fixed# Fixed MQTT client with no subscriptions after a restarted broker. [2.5.2] - 2023-11-13# Fixed# Addressed the issue of reconnecting to a broker when it was previously offline. [2.5.1] - 2023-11-06# Added# Added user/+/metadata MQTT topic to support custom user data for user-centric MQTT API Added db/clear MQTT topic to support direct DB reset, for example, using SFE Client GUI app Special handling of zero-copy solvers was extended to support Hailo and ONNX Runtime. Changed# Misc solvers updated to v0.8.5. ONNX Runtime solver updated to v0.8.5. StreamProcessor with onnxrt/onnxrt_gpu solvers requires zero-copy frame input solvers. [2.5.0] - 2023-10-10# Added# New, passive liveness detection strategyface_liveness_passive.liveness_strategy
setting set liveness evaluation to be performed on every extracted face or only on matched facesliveness conditions evaluation for passive liveness distant in Stream Processor and FrameData messages face_detection.order_by
setting can set the ordering of the detected faces by the detection confidence or the size of the face.sfe_stream_processor health report messages are now published via MQTT topic :topic/:client_id/health
(SE-204) Learned to handle storage update messages on topic :topic/:client_id/db/update
Added Storage status messages on topic :topic/:client_id/db/status
Added Custom user data support in records storage and FrameData message Changed# Changes in FrameData messageAdded DSID (database version) to IdentificationData Added MetaData to IdentificationData Added identification (true/false) flag in FaceData IdentificationData.id is deprecated and will be replaced by uuid Added liveness_conditions and conditions_met to LivenessData Some structures are moved to common.proto Records storage is now a single binary file Integrated new passive liveness DISTANT model with significantly improved accuracy Fixed# face_detection.max_detection
setting now represents the maximal number of detected faces that will be evaluated in later enabled processes[2.4.0] - 2023-07-21# Added# new sfe_settings_server solver parameters can be set via settings.yaml -> solvers.<solver_name>.parameters, sfe_settings_server or environment variables License data can be set via settings.yaml -license.data
which overrides system-provided licensing data.The format of the data string is Base64 (RFC 4648) encoded license file. Log level and log file path can be configured via settings.yaml full_frame.image_quality
setting can set frame image compression quality for formats that support it (Jpeg). The range is <0.0, 1.0>.crop.image_quality
setting can set crop image compression quality for formats that support it (Jpeg). The range is <0.0, 1.0>.Added support for TensorflowLite solver enabling NN acceleration on NXP iMX8M Plus chip with VX delegate support Changed# RawBGR
image format changed to Raw
path to the solver is set using solvers.<solver_name>.solver parameter MQTT topic for publishing the messages is a combination of topic
and client_id
string Fixed# full_frame.image_width
and full_frame.image_height
settings are now respected.Setting both will result in a full-frame image being resized to fit the requested resolution while keeping the original aspect ratio. The resulting image may contain black borders. By setting image_width
or image_height
only the missing dimension will be calculated to fit the image precisely by using the original frame aspect ratio. By not setting any of the parameters the frame will not be resized. [2.3.0] - 2023-06-02# Added# Stream processor now supports passive liveness evaluation Added ACCURATE_MASK template extraction solver for Ambarella Changed# Tracking improvementsface_detection.detection_threshold
setting now acts as filter for a low-confidence detections.tracking.high_threshold
is now renamed to tracking.threshold
and controls the minimal detection confidence required to track.tracking.match_threshold
was renamed to tracing.stability
and its value range is now inverse of the former.tracking.max_time_lost
was renamed to tracking.max_frames_lost
as it operates on frame ticks rather than time. Performance improvements (fast image resize, parallel warp) in all solvers [2.2.1] - 2023-03-16# Added# Register user supports any size if input image - it is resized to the required resolution FrameData messages now support the serialization of images in multiple formats - Jpeg, Png and RawBGR. It is configurable via settings.yaml Stream Processor now supports messaging in multiple formats - JSON, YAML, Protobuf. It is configurable via settings.yaml [2.2.0] - 2023-03-06# Added# Bidirectional MQTT communication for management of user storageregister user with image/template delete user get user reset storage [2.1.0] - 2022-11-30# Added# Face template extraction Face template matching with persistent storage support Possibility to send “empty” (no detection/tracking) FrameData message for debugging purposes TLS support for encryption of MQTT communication Changed# The Edge detector is renamed to SmartFace Embedded Stream Processor (sfe_stream_processor) The Settings server is renamed to SmartFace Embedded Setting Server (sfe_settings_server) [2.0.0] - 2022-09-06# Added# Using asynchronous API for detection tasks Tracking of detected faces New HTTP server for easier configuration of settings in YAML format Crop of a face considering its face size and face size extension parameterCrops of the detected faces added to the FrameData message Added information about lost tracking in the FrameData message Licensing Changed# The Standalone detector was replaced by a new Edge detector [1.0.0] - 2022-05-01# Added# Standalone detector with stream annotation for face bounding boxes and key points