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 schema

  • SmartFace 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 to Error 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 request

  • Added 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 and TimeDisappeared times on Tracklets created in OfflineVideoProcessing. If VideoRecord.RecordedAt is provided then the times on a Tracklet are calculated as absolute times starting from RecordedAt.

  • 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 in Ready 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/returns Labels property.

  • POST /api/v1/WatchlistMembers/Register accepts/returns Labels property.

  • POST /api/v1/Watchlists/Search contains Labels 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 and Gender have been added to matchresult entity and also to notifications matchResults.match.insert, matchResults.match, matchResults.nomatch.

  • New property Size for Face and Pedestrian entity has been added. On matchresults is property named FaceSize.

  • New property ProcessedAtfor notifications pedestrians.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 to Ready

  • 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 to RecordedAt time of VideoRecord.

  • Face property ProcessedAt is now calculated relative to RecordedAt 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. Notificatons matchResults.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 and accurate_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 is false.

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 than redetectionTime.

  • Slightly improved saving throughput of stream data.


SmartFace Platform v5_4.11.0

Release date: 06-December-2021

ℹ️ The SmartFace versioning system has changed. The SmartFace Platform version is prefixed by the marketing version v5.
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 and gpu_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