Notifications
SmartFace Platform provides information about events recognized in the incoming video streams and uploaded files. This information is provided in the form of notifications available through GraphQL and ZeroMQ and is also stored in the database.
You receive several types of notifications from SmartFace Platform. These notifications are sent continuously for every event that occurs.
SmartFace Platform sends most notifications when information about an event (for example, face detection) has been stored in a database. However, SmartFace Platform also sends direct notifications, which are sent immediately without waiting for the event to be stored in the database.
Notifications explained
The notifications provided to you for events recognized in video streams or uploaded files are triggered in two different situations. The first group of notifications is sent directly after an event happens – these notifications are only triggered for the matching event. The second group of notifications is sent after information about the event has been stored in the database. The following figure displays the main types of notifications.
Writing the information about the recognized events in the database may take a different time, which can cause notifications to be published in a different order than the original sequence of recognized events. This may particularly apply for notifications about matching as these notifications aren’t triggered when information is written into the database, but directly after the matching result is available.
Notifications topics
There are several types of notifications SmartFace Platform provides to you. These types are called topics. You can subscribe to topics listed in the following two tables.
Direct notifications
Notifications sent directly after the event happens:
GraphQL name | ZeroMQ name | Trigger |
---|---|---|
matchResult | matchResults.match | The detected face from the processed input was matched with a watchlist member. The match result isn't saved into the database yet. This notification contains also the result of the spoof check. |
noMatchResult | matchResults.nomatch | The detected face from the processed input wasn't matched with a watchlist member. The match result isn't saved into the database. |
Database notifications
Notifications sent when the event is stored in the database:
GraphQL name | ZeroMQ name | Trigger |
---|---|---|
faceCreated | faces.insert | The detected face has been saved into the database. Some properties haven't been extracted yet. |
faceExtracted | faces.extracted | Face properties (such as age, gender and presence of a face mask) were extracted and updated in the database. |
matchResultInsert | matchResults.match.insert | The detected face from the processed input was matched with a watchlist member and this information has been saved into the database. |
trackletCompleted | tracklets.completed | The tracked face or pedestrian has been lost from tracking and this information has been updated in the database. |
heartbeat | The notification is triggered automatically every second and contains a time stamp (current UTC). The notification can be used as an indication that communication is online. | |
videoRecordNotification StateChanged | videoRecords.update | The notification is used when SmartFace Platform is processing uploaded video files. The state of the video file is changed.
State:
|
progressMessage | grouping_progress.info | Frames uploaded to RecordGrouping are being processed.ProgressStatus:
|
pedestrianInserted | pedestrians.insert | The detected pedestrian was saved into the database. |
GraphQL subscriptions
Notifications from SmartFace Platform can be read using GraphQL API, typically available on port 8097, at HTTP endpoint http://<your_server_name>:8097/graphql.
GraphQL schema can be downloaded through the URL: http://<your_server_name>:8097/graphql?sdl
For more information about GraphQL language, follow this link
ZeroMQ messaging
SmartFace Platform is publishing the notifications also through ZeroMQ messaging library. ZeroMQ uses sockets for communication, thus the host and a port needs to be specified. SmartFace Platform uses by default TCP port 2406.