SmartFace Platform
SmartFace Platform v5_4.17
Release date: 06-December-2022
Release notes
Added
In the case that there is template in the edge stream, then extraction is skipped in SmartFace.
Subscriptions were implemented into GraphQL for sending notifications.
Possibility to configure authentication in REST API, GraphQL and Access Controller through OAuth or JWT.
Changed
The API endpoint
api/v1/Faces/SpoofCheck
returns information when detected face photo did not pass through liveness condition.The new version of IFace 5.0 was integrated.
Fixed
Fixed spoof check issue for faces captured by Edge Stream cameras.
Fixed video file reading for videos with improper timestamping.
Fixed bug when deletion of video record via REST API.
Technical Changelog
Added
GraphQL subscription for notifications which are also propagated via ZeroMQ (with filtering support). This is now recommended notification API. List of supported notifications:
- FaceCreatedNotificationDTO
- FaceExtractedNotificationDTO
- MatchResultNotificationDTO
- NoMatchResultNotificationDTO
- MatchResultInsertDTO
- ProgressMessageDTO
- VideoRecordNotificationStateChangedDTO
- TrackletCompletedNotificationDTO
- PedestrianInsertedNotificationDTO
New licensing support (newly generated licenses contains limit for maximum number of cameras/edge streams and component flags). SmartFace services now validates this condition and will not start/reject creation of new camera/edge stream if license limit is reached or if license component flag does not match required flag according to type of SmartFace service
SmartFace now supports optional templates coming from edge devices. When template was extracted inside edge camera SmartFace skips template extraction which will results in less resource usage
API, GraphQL and AccessController services now both supports Authentication (OAuth or JWT). By default authentication is turned off. You can look at configuration possibilities in Authentication section in appsettings files or documentation
Changed
API service no longer uses IFace internally. Template averaging and search in individuals are now done via RPC calls
API endpoint
api/v1/Faces/SpoofCheck
now returns information when detected face photo did not pass through liveness condition. See property notPerformedReasons in response schemaSmartFace installation now creates new RabbitMQ user (username : mqtt, password : mqtt) for easier example of MQTT integration
API service propagates new OTEL compatible metrics about RPC requests and API EndPoints requested
Metrics (host/port) configuration changed to use uniform names for configuration properties rather than specific configuration properties for each service type
Default HTTP metric port changed to 4318 for Linux deployments
IFace update to version 5.0
Request model for
/api/v1/Setup/DbCleanup
endpoint no longer requires deprecated property CleanupAmount to be present JSON
Fixed
Fixed bug when deletion/clearing of VideoRecord via REST API could fail if VideoRecord was part of RecordGrouping
Fixed video file reading for videos with improper timestamping
Fixed possible issue when RabbitMQ connection would terminate and some SmartFace services were unable to recover from it
Fixed spoof check issue for faces captured by EdgeStream cameras
Fixed memory leak in API and possible few other services.
SmartFace Platform v5_4.16.1
Release date: 03-November-2022
Release notes
Changed
- Optimization of proper log collection in docker workflows.
Fixed
Handling unexpected errors in Camera process were fixed.
Fixed issue when faces with null templates in Extracted state could be created when RPC extraction timed out in API.
Technical Changelog
Changed
IFace logs are logged to StdOut/StdErr instead of a file in tmp. This enabled proper log rotation/collection in docker workflows.
Fixed issue when faces with null templates in Extracted state could be created when RPC extraction timed out in API.
Handling unexpected IFace errors in Camera process more defensively, causing Camera process to restart instead of hanging on such errors.
SmartFace Platform v5_4.16
Release date: 06-Octorber-2022
Release notes
Added
SmartFace is now integrated with edge devices compatible with SmartFace Embedded. A new edge stream input and processing can be configured via a new API endpoint.
New API endpoint added to verify faces on uploaded images.
New attributes FullName and DisplayName were added into API endpoint for watchlist member registration.
A new attribute video processing duration is available in the VideoRecords API endpoint.
Technical Changelog
Added
SmartFace can now process data produced from edge camera streams. Edge cameras are doing heavy lifting (detection and tracking) and sends face data with cropped images via MQTT. For this use case new entity was added into API called EdgeStream. You can explore new CRUD API endpoints for EdgeStream management at /api/v1/EdgeStreams
New process EdgeStreamProcessor was created which is responsible for reading and processing all data coming from edge camera streams
VideoRecord now exposes 2 new properties ProcessingStartTime and ProcessingDurationMs which provides information about VideoRecord processing duration
/api/v1/WatchlistMembers/Register endpoint now also accepts FullName and DisplayName for requested WatchlistMember enrollment New /api/v1/Faces/Verify endpoint for (1:1) face verification
SmartFace Platform v5_4.15
Release date: 12-August-2022
Release notes
Added
Option to filter out face notifications with Template Quality below threshold added.
New API endpoint for spoof check on submitted image added.
The watchlist search API endpoint has been improved with the ability to enable spoof check on the submitted image before the actual search.
Changed
ZeroMQ notifications are no longer produced for Faces, Tracklets and MatchResults created from Rapid Video Processing.
The property Name and Description of a video record can be changed via the API endpoint (PUT /api/v1/VideoRecords) regardless of the state the VideoRecord is in. All other properties can only be changed when the video recording is in the Ready state.
New IFace 4.19.0 was integrated.
Upgraded to .NET 6.
Fixed
- Fixed database migration error when upgrading from version 4.10 (or lower) to version 4.13 (or higher).
Technical Changelog
Added
New configuration was added to RpcExtractor
Extraction__TemplateQualityErrorThreshold
which can be used to set faces toError
state if template quality is lower than the configured threshold. This configuration can be used to eliminate false detections from Camera processing. By default this behavior is disabled (null
threshold value).Added new API endpoint
POST /api/v1/Faces/SpoofCheck
to perform spoof check on a face detected in image sent in the API requestAdded Spoof check configuration in the Watchlist search API endpoint
POST /api/v1/Watchlists/Search
. When used, a spoof check will be performed alongside the matching on the detected faces
Changed
ZeroMQ notifications are no longer produced for entities (Faces, Tracklets, MatchResults) created from OfflineVideoProcessing. New configuration
Aggregation__EntityNotificationsEnabled
for VideoDataAggregator was added to reenable this behavior.Fixed calculation of
TimeAppeared
andTimeDisappeared
times on Tracklets created in OfflineVideoProcessing. IfVideoRecord.RecordedAt
is provided then the times on a Tracklet are calculated as absolute times starting fromRecordedAt
.Changed error behavior of OfflineVideoProcessing when the video file does not contain crucial metadata such as Video Duration or FPS
VideoRecord Name and Description properties can be changed via
PUT /api/v1/VideoRecords
endpoint regardless of the state the VideoRecord is in. Every other property can still be only changed when the VideoRecord is inReady
state.IFace upgraded to version 4.19.0
Upgraded codebase to .NET 6
SmartFace Platform v5_4.14.2
Release date: 25-July-2022
Release notes
Changed
- Fixed possible database migration error when upgrading from versions <= 4.10.X to version >= 4.13.X
SmartFace Platform v5_4.14.1
Release date: 12-July-2022
Release notes
Fixed
Grouping ‘start time’ issue is fixed
DbCleanup timeout issue on PostgreSQL is fixed
FaceMatcher in memory state not updating after DbCleanup fix
SFBase service problem when NoSQL database is disabled is fixed
Ability to configure a static port for each host in a containerized environment for camera preview
Technical Changelog
Added
- Ability to configure usage of static ports for MPEG1 camera preview on API with
CameraDefaults__PreviewPort
Changed
FaceMatcher properly updates internal state based on DB cleanup
Database migration correctly purges internal RMQ queues to prevent deserialization issues with newer SF
Fixed issue with SFBase service not working with disabled NoSQL data
Fixed issue with DB cleanup failing to remove large quantities of data
SmartFace Platform v5_4.14.0
Release date: 10-June-2022
Release notes
Added
A new “Description” text field has been added into the Videorecord API entity.
Possibility to configure custom labels for watchlist members, which are set of unique key value pairs. You can query these labels also via GraphQL/OData.
Technical Changelog
Added
You can specify labels to
WatchlistMember
which are set of unique key value pairs. You can query these labels also via GraphQL/OData.Description text field into
VideoRecord
API entity.WatchlistApi has been extended with POST endpoints from full Api
/api/v1/WatchlistMembers
/api/v1/WatchlistMembers/LinkToWatchlist
/api/v1/WatchlistMembers/UnlinkFromWatchlist
/api/v1/WatchlistMembers/{id}/AddNewFace
/api/v1/WatchlistMembers/{id}/RemoveFace
Changed
POST/PUT
/api/v1/WatchlistMembers
endpoints accepts/returnsLabels
property.POST
/api/v1/WatchlistMembers/Register
accepts/returnsLabels
property.POST
/api/v1/Watchlists/Search
containsLabels
property.Fixed timeout during deletion of cameras with many detected objects
Performance has been optimized in case when remote detector is used in camera
SmartFace platform v5_4.13.0
Release date: 27-May-2022
Release notes
Added
The new camera attributes have been added to GraphQL API to improve camera services.
A new API endpoint for video records has been added to clear processed results of rapid video processing.
A new “RecordedAt” attribute has been added to the video record, which allows setting the absolute time for detected objects during rapid video processing.
New attributes Age, Gender and FaceSize have been added to no-match/match notifications.
Changed
The background color of detected objects where the object is partially cropped or incomplete was changed from white to grey.
An improved distant passive liveness algorithm for spoof detection has been integrated.
The value returned by passive liveliness was normalized. The range is from 0 to 100 now (before ~ from -10,000 to 10,000).
Behavior of no-match notifications have changed. The system sends notifications of non-match for the tracklet at all times, even a notification of match has been sent.
Fixed
- Many small bug fixes.
Technical Changelog
Added
Properties
Age
andGender
have been added to matchresult entity and also to notificationsmatchResults.match.insert
,matchResults.match
,matchResults.nomatch
.New property
Size
for Face and Pedestrian entity has been added. On matchresults is property namedFaceSize
.New property
ProcessedAt
for notificationspedestrians.insert
,matchResults.match.insert
,matchResults.match
,matchResults.nomatch
and for API object MatchResult.New VideoRecord property
RecordedAt
. You can specify event time of video footage, related Frames and Faces time properties will now have value according to this new value (see changed section).New VideoRecord property
VideoDurationMs
. This property will now contain duration of processed video in milliseconds (after video is fully processed).VideoRecord
Source
property now accepts new format to video file that was uploaded into s3 blob storage. New format is:sfvideo://{key_to_video_file_in_blob_storage}
. Currently file is expected to be only in same bucket as SmartFace platform is configured with.Possibility to reprocess VideoRecord by using endpoint
/api/v1/VideoRecords/{id}/Clear
to clear the data produced by the video record (faces, tracklet, matches…) and set the state back toReady
Possibility to PUT new VideoRecord via REST Api with custom GUID as Id.
New HostedService added to SFBase service which is responsible for cleanup of blob records.
GraphQL camera schema now more alligns with API camera entity.
Configuration to enable JSON-based logging to console (stdout) - this facilitates easier parsing of the logs in docker-based deployments with tools such as Promtail
Configuration to enable bearer token authentication in WatchlistAPI with OAuth2 flows in SwaggerUI
Configuration to enable SSL communication with RabbitMQ
Experimental: support for re-using faces detected on smart embedded camera
Added possibility to set
BackgroundColor
for part of crop images that are outside of source image. To set it globally you need to update configuration of SmartFace.RpcDetector, SmartFace.RpcPedestrianDetector and SmartFace.Camera binaries.
Changed
IFace upgraded to version 4.15.0
Camera spoof configuration properties (DistantLivenessConditions/NearbyLivenessConditions) were changed to newer format. If you set up custom condition strings you will need to update them manually to newer format, otherwise liveness can not be performed.
Camera spoof configuration properties (DistantLivenessScoreThreshold/NearbyLivenessScoreThreshold) are now within range of <0, 100> instead of <-10000, 10000>. Both of these thresholds are now migrated to 90.
Frame property
ReceivedAt
is now calculated relative toRecordedAt
time of VideoRecord.Face property
ProcessedAt
is now calculated relative toRecordedAt
time of VideoRecord.Serialized Face is no longer persisted in database.
migrate-faces
admin cli command now uses redetections of faces instead of recreating of face from serialized one.migrate-faces
admin cli command no longer accepts-g
flag. Command will now route RPC detections/extraction to any available service (CPU/GPU).set-state-error-non-migrated-faces
admin cli command now supports –dry-run flag which will print out watchlist members which would be affected when running this command.run-migration
admin cli command now requires RabbitMQ options if there are some faces from previous installation that need to be migrated.Removed behavior when notifications
matchResults.nomatch
were suspendend for tracklets which had positive match. NotificatonsmatchResults.nomatch
will be sent everytime.Default
BackgroundColor
for part of crop images that are outside of source image is now#424B59
.
SmartFace platform v5_4.12.0
Release date: 23-February-2022
Release notes
Added
Support for deleting match results in DB cleanup process.
Possibility to configure a new ResourceID type for each camera for better HW resources utilization.
Tag support for video records in Rapid Video Processing.
Changed
Db cleanup process performance improvements.
Face detection optimization for higher resolutions inputs.
Fixed
Wrong start time of individual in grouping fixed.
Many small bug fixes.
Technical Changelog
Added
New TemplateGeneratorResourceId
any
added for all API endpoints that accepted template generation resource id. Template generation will be forwarded to any available rpc extract service.New FaceDetectorResourceId
any
andaccurate_any
added for all API endpoints that accepted face detection resource id. Face detection will be forwarded to any available rpc detect service.New GET/PUT API endpoints for video record tag management (
/api/v1/VideoRecords/{id}/Tags
).New GraphQL API endpoint for querying video record tags.
New DeleteMatchResults bool property was added to DbCleanupConfig which can be set via
/api/v1/Setup/DbCleanup
endpoint. This property now controls whether deletion of historical MatchResults (MatchResults of faces that are no longer present in database) are deleted when cleanup is triggered. Default value isfalse
.
Changed
Db cleanup performance improvement.
Camera process memory consumption was reduced when external spoof resource id was used.
Configured
FaceSize
on higher resolution images now behaves correctly.Live grouping synchronization issues fixed.
Individual
ExitTime
property is now always properly calculated.Fixed camera process crash when remote detection was used with combination with lower
templateGenerationTime
thanredetectionTime
.Slightly improved saving throughput of stream data.
SmartFace Platform v5_4.11.0
Release date: 06-December-2021
Release notes
Added
Extend the overlay graphics of the encoded output stream for each camera with preferred information for detected face and identified person.
Ability to set default color of the bounding box for the detected face, identified person and detected pedestrian in the encoded output streams.
Ability to set color for each watchlist to override the default bounding box color in the encoded output streams when a person is identified.
Changed
Camera service was extracted from base process to a separate process. The name of a docker image for camera service was changed to ‘sf-cam’.
The SmartFace versioning system has changed. The SmartFace Platform version is prefixed by the marketing version v5.
Fix
- Issue with many connections on PostgreSQL solved.
Technical Changelog
Added
Marketing versioning has been introduced as prefix to semver v5_major.minor.hotfix
Stream previews are now enriched with additional rendered object attributes. Which attributes should be displayed can be controlled via new configuration object “previewAttributesConfig” on Camera API entity.
New “previewColor” property added to Watchlist API entity where you can specify hex color that should be used as bounding box in stream preview when face was matched against member in this watchlist.
New /api/v1/Setup/Preview endpoint where you can specify default hex color for faces/pedestrians that will be used when rendering bounding boxes in stream previews.
Swagger default values
Changed
SmartFace camera processing extracted to separate service (sf-cam docker images / SFCam windows service name prefix)
SQL database connection pooling enabled by default
Internal RabbitMQ rpc requests uses own RPC topic exchange
Possibility to use remote accurate detector in camera
SmartFace Platform 4.10.0
Release date: 27-October-2021
Release notes
Added
Face search in all detected faces stored by SmartFace
GraphQL API for complex data querying
Faster NN models for detection, extraction and liveness integrated for CPU an GPU processing
Support for NVIDIA TensorRT
Support for NVIDIA CUDA 11
USB camera support in docker deployments (Windows, Linux, Mac)
Changed
Processing pipeline performance improvements
Possibility to retrieve TOP N match results for detected faces in Rapid Video Processing
Fixed
Many small bug fixes
Issues with installing SF on a Windows OS with non-English (specifically Chinese) localization
Technical Changelog
Added
New GraphQL service that can be leveraged to query SmartFace data (backward compatibility is not guaranteed). Default port is 8097.
New FaceSearch feature that allow searching in whole Face database by image with face
Support for using license with HWID on Linux
Possibility to return Top N match results in Rapid video processing (Offline video processing)
Changed
IFace of version 4.10.3 with ONNX for improved performance and with possibility to use tensor cores.
Performance optimizations in live video processing
Possibility to change trackSpeedAccuracyMode on camera via API
Fixed memory leak in API caused by RMQ client
Fixed loading of WatchlistMatcher when database contains more than 500k members
Fixed memory allocation in camera process when remote detector was used
Fixed Windows installer checkbox for registering GPU services to reflect status of current SmartFace installation
Fixed Windows installer on systems with character set different than english
Fixed issue when RabbitMq message was not acknowledged for long time which leads to unusable reader component in Rapid video processing
SmartFace Platform 4.9.1
Release date: 24-September-2021
Release notes
Fixed
Matching in the live processing pipeline when a member was registered in multiple watchlists
Exporting data in the rapid processing pipeline when using RabbitMQ export and when video record is not created in the SmartFace database
Technical Changelog
Changed
Fixed matching in the live processing pipeline when a member was registered in multiple watchlists.
Fixed exporting data in the rapid processing pipeline when using RabbitMQ export and when video record is not created in the SmartFace database.
SmartFace Platform 4.9.0
Release date: 28-July-2021
Release notes
Added
- Support for RabbitMQ messaging in the Rapid Video Processing
Changed
More detail to the JAEGER tracing added
Various performance optimizations done
Small changes and bug fixes
Technical Changelog
Added
Possibility to provide data from Rapid Video Processing via RabbitMQ messages
There is possibility to turn on/off some processing features of SmartFace platform to increase performance. See /api/v1/Setup/Features.
Improvements in tracing
VideoRecord processing now properly handles unexpected error in detection/extraction.
VideoFile processed by camera is now processed with same fps as source video file fps.
Changed
First frame from camera stream is no longer being dropped.
Fixed serialization issue of extraction metadata when age/gender extraction was disabled.
VideoRecord create request is now properly validated.
Various performance improvements, mainly regarding
Passive and external liveness
Remote face detection in camera
SmartFace Platform 4.8.1
Release date: 26-May-2021
Release notes
Added
Support for GPU acceleration for detection/extraction and HW decoding on x64 Linux platform
Possibility to install body parts detector and liveness detector via Service_Installer.bat has been added
Changed
Windows services descriptions have been changed
Fixed USB camera reading on Windows OS
Technical Changelog
Added
Support for GPU acceleration for detection/extraction and HW decoding on x64 Linux platform.
Possibility to install body parts detector and liveness detector via Service_Installer.bat has been added.
Changed
- Fixed USB camera reading on Windows OS.
SmartFace Platform 4.8.0
Release date: 13-May-2021
Release notes
Added
SmartFace Platform is now distributed also in form of docker images available on container registry
From now on you can install SmartFace Platform on Linux operating system
We provide also a SmartFace Platform build for embedded device NVidia Jetson Xavier NX and NVidia Jetson AGX Xavier
SmartFace Platform for embedded device support HW decoding
Deployment on Linux OS now supports PostgreSQL database
We have replaced NoSQL LevelDB by MinIO database
Latest version of IFace included with lot of new features:
Now you can detect presentation attacks with our liveness check
Pedestrian tracking introduced
Changed
Detection and matching algorithms were improved
Accuracy for masked faces significantly increased
Code base migrated to .NET 5
Technical Changelog
Added
Spoof detector analysing liveness based on 2 internal neural networks (liveness_distant, liveness_nearby).
SmartFace Platform docker images available on container registry which are compatible with Linux on x64 platform. Scripts and docker-compose definitions are included for basic deployment (currently detection, extraction and liveness are with no GPU support).
SQL data can be stored also into PostgreSQL database when SmartFace Platform is deployed on Linux.
SmartFace Platform docker images available on container registry which are compatible with NVidia Jetson Xavier NX / NVidia Jetson AGX Xavier devices (https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/). Scripts and docker-compose definitions are included for basic deployment (only PostgreSQL is supported for storing SQL data).
HW decoding of video streams on NVidia Jetson.
GRPC camera streams now also accept encoded images.
Pedestrian tracking.
Changed
IFace of version 4.9.1 with improved detection and matching algorithms for masked faces is now used.
Minio is now used for storing blob data. Migration of blob data from LevelDB to Minio is possible with administration tool.
Only standard .NET Framework MSSQL/PostgreSQL connection string format is supported. ADO.NET format (starting with ‘metadata’) is unsupported.
Migration from .NET Core 3.1 to .NET 5.
Fix - “Passed” fields in notifications are now always set to “false” when relevant spoof check was not performed.
SmartFace Platform 4.7.0
Release date: 22- Mar-2021
Release notes
The delay on planned release date in mid January was caused by:
several major bugs in offline video processing
implementation of an autolearn clustering for improved accuracy for the client HB Reavis (extra release 4.6)
access controller 1.4 for the client HB Reavis
working on stories for NVidia Jetson for Precise Biometrics
implementation of several front-end stories because of senior UI developer was leaving INNO and we wanted to use his knowledge of the complex issues before he has left
Added
body parts detection using OpenVINO Human Pose Estimation model (https://docs.openvinotoolkit.org/2019_R1/_human_pose_estimation_0001_description_human_pose_estimation_0001.html).
COCO keypoints and human pose description in the pedestrian API models and notifications
spoof detection (presentation attack detection) powered by body parts analysis or external liveness detector
frame timestamp and eye coordinates to match notifications
spoof detection result to NX Witness plugin
possibility to specify FaceId in /Register and /AddNewFace endpoints requests
Changed
match notifications contain information about spoof detection
API for using external liveness
SmartFace Platform 4.6.0
Release date: 5-Jan-2021
Release notes
Improvements of accuracy of watchlist autolearn for faces covered by masks:
Watchlist autolearn clusters images based on whether the face is covered by a face mask or not
Possibility to configure extraction algorithm
Technical Changelog
Added
Added possibility to set different extraction algorithm used by Extractor service.
Added field to Face entity (AutolearnClusterType) which specifies whether autolearn face is contained in masked or unmasked cluster.
Changed
Autolearn now creates two averaged templates. Each averaged template is created from from cluster of either masked/unmasked autolearn faces. This should help decrease number of false positive matches.
Added new fields to WatchlistAutoLearnConfig which controls behavior of new autolearn behavior (NoFaceMaskConfidenceThreshold/FaceMaskConfidenceThreshold/MaskedSelectionThreshold).
SmartFace Platform 4.5.0
Release date: 30-November-2020
Release notes
- Faster than real time offline video processing
Technical Changelog
Added
New pipeline for faster than real time video processing.
Installer now supports possibility to skip installation of GPU services.
Added additional checks to installer to check whether it is safe to upgrade SmartFace to newer version.
Changed
API for Video records is adapted for faster than real time pipeline while ensuring backward compatibility with previous 4.x versions.
SFStaticExtract and SFStaticDetect services were removed and their functionallity was moved to SFDetect/SFExtract services.
Fixed possible transaction issue when /Register endpoint was called in parallel.
SF services are now using official .NET core hosting packages for windows services instead of TopShelf.
SmartFace Platform 4.4.0
Release date: 02-October-2020
Release notes
Added
Following ICAO attributes available for detected face. Attributes are propagated in “faces.insert”, “faces.extracted”, “matchResults.nomatch” and “matchResults.match” notification:
Template Quality
Yaw Angle
Pitch Angle
Roll Angle
New argument “KeepAutolearnPhotos” added into Register method for Watchlist Member, where you can specify whether Register call should keep faces gathered by Watchlist Autolearn
Smooth preview for live streaming added. Preview now streams all frames not only processed ones
Technical Changelog
Added
Added new argument into Register method “KeepAutolearnPhotos” where it is possible to specify whether Register call should keep faces gathered by WatchlistAutolearn.
Face now contains YawAngle, PitchAngle, RollAngle and TemplateQuality. These fields are also propagated in “faces.insert” “faces.extracted” “matchResults.nomatch” “matchResults.match” notifications.
Changed
Live preview should be always smooth because we no longer stream only processed frames.
Fixed small memory leak in Gstreamer.
SmartFace Platform 4.3.0
Release date: 24-September-2020
Release notes
Pedestrian detection added
Information about detected pedestrians is provided in new notification and is also available via new API endpoint
Tracking is currently not supported for pedestrian detection
Technical Changelog
Added
Added .net implementation of pedestrian functions provided by the IFace
Support of pedestrians detection with notifications, list of detected pedestrians at new Pedestrian endpoint and detection configuration via new .json properties at camera endpoint
Changed
- Changed dataflow and database insertion
SmartFace Platform 4.2.1
Release date: 23-September-2020
Release notes
Added
- Added set-state-error-non-migrated-faces command into Admin CLI. This command will update all faces that have incompatible template versions to error state so SmartFace services will ignore them when starting up. This command should be executed only after some faces could not be migrated into newer version.
Changed
- SFWatchlistMatcher service will now ignore loading faces of watchlist members in error state.
SmartFace Platform 4.2.0
Release date: 27-August-2020
Release notes
SmartFace Platform detects whether a person wears a face mask or not. This information is stored in the database and is provided to you in notifications
Possibility to enable Watchlist autolearn feature and disable data storage (store only matched faces)
Improved algorithms for extraction. This update requires migration of your data
Affinity configuration for camera processing available. This feature improves scaling possibilities
Default matching threshold changed from 24 to 40
Technical Changelog
Added
Affinity configuration from appsettings.json
Extracting face mask information from face
Face mask confidence - from range (-10 000, 10 000) lower value means lower confidence that the mask is present.
Nose tip confidence - from range (0, 10 000) lower value means lower confidence that the nose tip is visible. Can be used to determine if the face mask is worn properly.
Face mask status - Enum denoting if face mask is worn. Calculated from face mask confidence using the Face Mask Confidence threshold config
Added FaceMaskConfidenceConfig used for calculating Face mask status. Default value is 1000.
Added face template migration command to Admin CLI
Changed
- IFace 3.11.1 - face mask support
SmartFace Platform 4.1.0
Release date: 28-July-2020
Release notes
Integration with Network Optix’s Nx Witness VMS added
Remote detection for the camera service added
Changed default max eye distance for the camera from 2000px -> 600px
Technical Changelog
Added
Integration with Nx Witness VMS
Create camera response returns service name of the assigned camera service
Remote detection for camera service. To use remote detection use
cpu_remote
andgpu_remote
resource ids for cameras.Changed default max eye distance for camera from 2000 -> 600
SmartFace Platform 4.0.2
Release date: 21-July-2020
Release notes
Added
- AWS S3 client used at WatchlistApi for storing images
Changed
IFace 3.10.4 - performance improvements
Changed default max face size from 2000 -> 600
Service dependencies between all SmartFace services have been removed
Fixed registering of GPU services
SmartFace Platform 4.0.1
Release date: 02-July-2020
Release notes
Changed
- Fixed issue where LivenessRequest for external liveness wrongly mapped RightEyeY from RightEyeX
SmartFace Platform 4.0.0
Release date: 09-June-2020
Release notes
Added
New Rest API for easier integration with SmartFace. The new API is by default hosted on port 8098
Lazy loading of neural networks in face handler
ZeroMQ notification with subscription topic matchResults.nomatch. This notification is provided when face from stream is not matched against any registered watchlists member
Concept of resource id’s by which is possible to select GPU or CPU processing for processing/API calls, ie. configure CPU/GPU processing per camera
Possibility to set Id for Watchlist and WatchlistMember via PUT
Possibility to configure DBCleanup in SmartFace installer
Codebase change to .NET Core as one of the main prerequisites for running SmartFace Platform on Linux
Changed
Renamed entities InputFile -> VideoRecord
Renamed entities Identity -> Individual. This includes database, endpoints, notifications…
Renamed entities WlItem -> WatchlistMember. This includes database, endpoints, notifications…
Renamed entities WlHits -> MatchResults. This includes database, endpoints, notifications…
Added type column to MatchResults (WlHits)
Renamed entities Persons -> Tracklets. This includes database, endpoints, notifications…
Renamed entities Photos -> Frames. This includes database, endpoints, notifications…
Renamed table Faces -> VisualObjects. This was only done on database level.
Renamed table and odata entity Grouping -> GroupingMetadata
Following entities have had their Id changed from integer to Guid type:
Frames
VisualObjects
Trackelts
Scopes
Streams
Watchlists
WatchlistMembers
Individuals
MatchResults
ZeroMQ subscription topic wlHits.match -> matchResults.match
ZeroMQ subscription topic wlHits.insert -> matchResults.match.insert
WebApi renamed to ODataApi
Most of ODataApi POST, PATCH, DELETE methods have been moved to new new API on default port 8098
Renamed all services
Cameras / VideoRecords are created in default video scope on which grouping is not performed
Removed
Removed the concept of “ExternalId” from Watchlists and WatchlistMembers. Only one string Id is present on the entities which will be generated by SmartFace when not specified, or it can be specified by the user
Automatic grouping trigger for records (formerly Scopes with type Event) was removed. Grouping is triggered manually from API
Removed Hls and MJPEG streaming
Removed FaceAttributes entity
MatchStrategy cannot be set anymore, default state is ALL
Technical Changelog
Added
New Rest API for easier integration with SmartFace. The new API is by default hosted on port 8098
ZeroMQ notification with subscription topic matchResults.nomatch. This notification is fired when face from stream is not matched against any registered watchlists member.
Concept of resource id’s by which is possible to select GPU or CPU processing for processing/API calls
Possibility to set Id for Watchlist and WatchlistMember via PUT
IFace 3.10.1 and IDKit 7.6.6 were integrated
Changed
Renamed entities InputFile -> VideoRecord
Renamed entities Identity -> Individual. This includes database, endpoints, notifications…
Renamed entities WlItem -> WatchlistMember. This includes database, endpoints, notifications…
Renamed entities WlHits -> MatchResults. This includes database, endpoints, notifications…
Added type column to MatchResults (WlHits)
Renamed entities Persons -> Tracklets. This includes database, endpoints, notifications…
Renamed entities Photos -> Frames. This includes database, endpoints, notifications…
Renamed table Faces -> VisualObjects. This was only done on database level.
Renamed table and odata entity Grouping -> GroupingMetadata
Following entities have had their Id changed from integer to Guid type:
Frames
VisualObjects
Trackelts
Scopes
Streams
Watchlists
WatchlistMembers
Individuals
MatchResults
ZeroMQ subscription topic wlHits.match -> matchResults.match
ZeroMQ subscription topic wlHits.insert -> matchResults.match.insert
WebApi renamed to ODataApi
Most of ODataApi POST, PATCH, DELETE methods have been moved to new new API on default port 8098
Renamed all services
Cameras / VideoRecords are created in default video scope on which grouping is not performed
Removed
Removed the concept of “ExternalId” from Watchlists and WatchlistMembers. Only one string Id is present on the entities which will be generated by SmartFace when not specified, or it can be specified by the user
Automatic grouping trigger for records (formerly Scopes with type Event) was removed. Grouping is triggered manually from API
Removed Hls and MJPEG streaming
Removed FaceAttributes entity
MatchStrategy cannot be set anymore, default state is ALL
SmartFace Platform 3.7.0
Release date: 30-April-2020
Release notes
Added
- Support for External Liveness. By default this feature is off, you can enable it via LivenessConfig. When enabled, SmartFace will send RPC request with raw image data and face coordinates to External Liveness RPC server and if successfull liveness result is returned, Smartface will emit LivenessResult notification.
SmartFace Platform 3.6.2
Release date: 16-July-2020
Release notes
Changed
Fixed deleting of Autolearn face over the buffer size.
improved performance of WatchlistItemRpcController by not allocating face handler for every request. Face handler is now allocated only once on the first RemoveFace call.
SmartFace Platform 3.6.1
Release date: 02-July-2020
Release notes
Changed
Fixed internal error when multiple same external IDs of non-existing watchlist are sent to the rpc/WatchlistItems/Register API method
No transactions are now coordinated by MSDTC
SmartFace Platform 3.6.0
Release date: 16-March-2020
This release support migration from previous versions only if previous face data were deleted! Smartface camera/system configuration will not be affected.
Release notes
Added
IFace 3.8.3 and IDKit 7.6.0 were integrated
Watchlist Autolearn. Every day, SmartFace will select additional face for watchlist memeber from previous watchlist hits. This will increase true matches from wild stream faces and also decrease number of false matches to improve support AccessControl vertical. By default this feature is disabled (see WatchlistAutoLearnWorkerConfig).
DataStorageConfig through which you can control whether data from stream processing are saved or not (GDPR friendliness). Two options are currently available None/All. Default value is All.
Changed
Template extraction algorithm changed from accurate_server_wild to balanced.
Removed support for accurate_server detection algorithm, supported algorithms are (fast, balanced, accurate)
balanced and acccurate detection algorithms are both neural detectors and were retrained (fast mode still uses AdaBoost)
face confidenece thresholds were normalized for all detection algorithms to <0,10000>. However every detection algorithm have different “recommended” face confidence thresholds.
SmartFace Platform 3.5.1
Release date: 18-February-2020
Release notes
Changed
fixed memory leak in process of extraction
data storing speed further optimized
installer now correctly changes count of video slots in the database
installation migration process has been fixed
SmartFace Platform 3.5.0 - 2019-01-24
Release date: 24-January-2019
Release notes
Added
possibility to trigger event scope grouping /rpc/Groupings/Trigger
relative timestamp has been added to entity Photo
Changed
face crop method changed to IFACE_FACE_CROP_METHOD_TOKEN_NOT_FRONTAL
fixed grouping of event scopes with input files on slow machines where not all faces could be extracted
SmartFace Platform 3.4.1
Release date: 17-December-2019
Release notes
Changed
- fixed memory leak in process of tracking
SmartFace Platform 3.4.0
Release date: 04-December-2019
Release notes
Added
new fields FaceArea, FaceOrder, FacesOnFrameCount, FaceAreaChange, PhotoId have been added to WlHit entity
new fields FaceArea, FaceOrder, FacesOnFrameCount, FaceAreaChange have been added to Face entity
document more error response code for API endpoints
new API function for configuration constants /odata/Configs/Function.GetConstants() has been added
added min/max validations for MaxResultCount input parameter of API method Watchlist/Search
new parameter FaceExtractionFrequence was added to SreamWorkerConfig to be able to get faces more often then FaceDiscoveryFrequence
added additional config ImageSizeConfig, which affects size of processing images in SmartFace
Changed
- integrated newest iface 3.7.0 with smaller memmory footprint and faster NN detector
SmartFace Platform 3.3.2
Release date: 27-November-2019
Release notes
Changed
- fixed memory leak of accurate_server detector running on CPU
SmartFace Platform 3.3.1
Release date: 19-November-2019
Release notes
Changed
fixed milestone integration plugin when more than one faces are registered as watchlistitem
fixed milestone integration plugin rendering issue
document all known API response codes to swagger
SmartFace Platform 3.3.0
Release date: 19-September-2019
Release notes
Added
Integration with Milestone VMS
REST API - Rpc/Watchlists - new RPC: /rpc/Watchlists/Search - Search by image in watchlist
REST API - Stream - new property: Name
Possibility to set processor affinity via config
Changed
- integrated newest iface 3.6.2 with fix in tracking
SmartFace Platform 3.2.0
Release date: 30-July-2019
Release notes
Added
performance/reliability improvement - each camera runs in separate process
live extractor and matcher are now decoupled from camera service
setting config values and enabling/disabling workers request are now asynchronous
new field FaceId has been added to WlHit entity
validation of all Config values in methods on endpoint /odata/Configs
jaeger tracing for live mode pipeline
experimental support for USB cameras
new endpoint /rpc/License/Check to check license of IDKit and IFace
zeroMQ heartbeat messages on topic “heartbeat”
Changed
integrated newest iface 3.6.0 with support for RTX nvidia GPU’s
logging has been changed to structured logging via Serilog
SmartFace Platform 3.1.0
Release date: 21-May-2019
Release notes
Added
support for MPEG1 streaming via TCP. Behavior can be configured with new StreamWorkerConfig properties (MPEG1PreviewEnabled, MPEG1VideoBitrate, MPEG1PreviewPort).
first version of CLI application (sfcli) - source code is open sourced at (https://github.com/innovatrics/smartface)
added new ZeroMQ notification when face attributes were extracted and saved to database (topic: “faces.extracted”)
installer now shows location to installer logs in case of any error during installation
Age and Gender properties were flatten and migrated to Face entity (FaceAttributes table still exists, but will be deprecated and removed in next major release).
GenderFormatted property was added to API Face entity (possible values: Male/Female).
Changed
- integrated newest iface 3.5.3 and idkit 7.2.7.
Removed
- Id property was removed from API of Config entity.
SmartFace Platform 3.0.2
Release date: 13-May-2019
Release notes
Changed
- Fix - WebApi memory leak.
SmartFace Platform 3.0.1
Release date: 26-March-2019
Release notes
Changed
Fix - Possible memory leak during HLS streaming has been fixed
Fix - Limitation for maximum count of HLS segments has been removed
SmartFace Platform 3.0.0
Release date: 20-Fabruary-2019
IMPORTANT - Previous versions of SmartFace are incompatible.
Release notes
Added
EasyInstaller - separate installer which install all SF prerequisities (.net framework, erlang, RabbitMQ, MsSql server with default database)
New notification - persons.completed - is fired after all faces which belongs to this current person are extracted and saved
Wachlist RPC methods are available on endpoint: http://hostname:8099/rpc
REST API - Rpc/WatchlistItems - new RPC: /rpc/WatchlistItems/Register
REST API - Rpc/WatchlistItems - new RPC: /rpc/WatchlistItems/AddExistingFace
REST API - Rpc/WatchlistItems - new RPC: /rpc/WatchlistItems/RemoveFace
REST API - WlHit - new property: WatchlistDisplayName
REST API - WlHit - new property: WatchlistExternalId
REST API - WlHit - new property: WatchlistFullName
REST API - WlHit - new property: WlItemExternalId
REST API - Watchlist - new property: ExternalId
REST API - WlItem - new property: PersonId
REST API - Configs - New Action.SetConfgiValues
Changed
IFace 3.5, IDKit 7.2 - threshold 0 - 100
Watchlist api reworked
SaveBehavior - values could be combined e.g. “FistFace, BestFace”
SaveBehavior - All - save all detected faces to database
SaveBehavior - FirstFace - save first detected face to database
SaveBehavior - BestFace - when person is lost save face with highest quality
Video pipeline use MQ to deliver tracking events to database worker
Age and Gender are calculated in extraction process for each face
WebApi is now available on default port 8099
odata endpoint: http://hostname:8099/odata
swagger: http://hostname:8099/swagger
image handler: http://hostname:8099/image/{image_guid}
hls preview stream: http://hostname:8099/Preview/{streamId}/playlist.m3u8
REST API - ScopeData - Description is not required
REST API - FaceAttributes - property renamed: ValueFormatted => ValueFormatted
REST API - WlItem - property renamed: ExternalReference => ExternalId
REST API - Type renamed: BulkReponseData => BulkResponseData
REST API - Configs - StreamWorkerConfig - property DeletePhotoData has been renamed to SavePhotoData and logic was reversed
REST API - Configs - DetectFaceWorkerConfig - property DeletePhotoData has been renamed to SavePhotoData and logic was reversed
REST API - Configs - ContinuousGroupingWorkerConfig - property GroupingInterval has been renamed to GroupingStep
Removed
Api query attribute @calculate has been removed
Dependency on IIS has been removed
Link from Identity to WlItemId has been removed
REST API - WlHit - property removed: ExternalReference
REST API - WatchlistItem - method removed: Action.LinkToItentities
REST API - WatchlistItem - method removed: Action.UnLinkFromItentities
REST API - Worker - property removed: Key
REST API - Configs - GroupName prefix in config context has been removed. Configuration of workers uses only worker id as context
REST API - Configs - FaceHandlerConfig - context “web” was removed. Single config with context “.” is used in both backend and webapi