Skip to main content
Version: 1.0.0

Integration

Ultinous AI Suite is not only a stand-alone solution, but can be used in an integrated system as well. Each article contains valuable information about the required settings in Ultinous AI Suite, as well as in the corresponding third-party software.

General concept

Components

The integration has 3 components:

  • Ultinous AI Suite

  • Third party application (preferably a VMS)

  • a Connector

Note: In this document, the Third party application is often referred to as VMS, however it can be any software with similar capabilities.

Topology

Ultinous AI Suite

  • Receives video streams from cameras.
  • Detects incidents.
  • Notifies the operator on its user interface.
  • Sends Event messages with metadata to an external API via HTTP.

VMS

  • Receives good quality video streams from cameras.
  • Stores video/Provides user interface for operators including incident management.
  • Has an interface to receive real time notifications (alarms/events) from external sources.

Connector

  • Dedicated to a specific VMS.
  • Usually running on the same machine as the VMS.
  • Associates streams registered in Ultinous AI Suite with streams registered in the VMS (easier if the VMS provides a unique identifier for each camera).
  • Receives Event messages or pulls count data from Ultinous AI Suite.
  • Converts Ultinous AI Suite Events to a message which is readable by the VMS.

Capabilities

Capabilities are determined by both Ultinous AI Suite and the VMS. The following information is available in the Ultinous AI Suite Event’s metadata:

  • the incident’s type (Intrusion and Crowd Detection, Multi Object Detection and Multi Object Counter)
  • the timestamp of the incident
  • camera identifier(s)
  • the detections’ coordinates in the camera frame
  • confidence value - events with lower confidence can be filtered in order to decrease false positive alarms

(Learn more about the metadata for your Custom Integration...)

This information is translated by the Connector component. The capabilities of the VMS may limit the forwarded information and the overall end user experience.

Example scenario

Installation

  • Ultinous AI Suite is installed on an NVidia Jetson NX box.
  • The VMS is installed on a Windows server.
  • The Connector is installed on the same machine.
  • Both machines are on the same local network with fixed IP addresses.

Configuration

VMS

The VMS is configured according to its own documentation with the following requirements:

  • Observed Cameras must be registered in both Ultinous AI Suite and in the VMS. The VMS may use the primary stream of the cameras with higher resolution and FPS compared to Ultinous AI Suite. A unique identifier should be memorized for each registered camera. The identifiers will be used in Ultinous AI Suite configuration.
  • Access credentials for the connector.
  • All other settings in order to receive external events.
Connector

Connector must have the following information:

  • Access credentials for the VMS.
  • An unused port for its service.
  • The (network) location of the VMS interface.
Ultinous AI Suite

Ultinous AI Suite is configured according to its own documentation with the following exceptions:

  • Observed Cameras must be registered in both Ultinous AI Suite and in the VMS. Ultinous AI Suite often uses a secondary stream of the same camera with lower resolution and FPS.
  • Cameras’ Technical names must be set. Each technical name should be unique and should match the unique identifier of the same camera in the VMS.
  • The network address of the Connector (host, port) must be set in the alarm configuration.

Workflow

In this example let’s say we configured intrusion detection in Ultinous AI Suite.

  1. The intruder enters an observed area.
  2. The camera stream is sent to Ultinous AI Suite.
  3. Ultinous AI Suite detects the intruder and immediately sends an Event to the Connector.
  4. The Connector converts the incoming Event and sends it to the VMS.
  5. The VMS triggers an alarm and notifies the operator.

Implementations

For alarms

Milestone XProtect

Milestone XProtect is one of the most popular Video Management Systems. Ultinous AI Suite is able to send alarms to this system so you can manage incidents in your well known platform.

Genetec Security Center

The Genetec Security Center software suite is a leading Video Management System to which Ultinous AI Suite has the capability to send alarms.

Alarms via E-mail

Ultinous AI Suite can be configured to send alarms via e-mail. This enables you to use Ultinous AI Suite in conjunction with e-mail notifications, or omit the use of Ultinous AI Suite altogether. The service can be set up to be used by either human beings or automated systems.

Custom Integration

This guide will aid developers in order to receive and process Alarms triggered Ultinous AI Suite in their custom solution.

For people and vehicle counting

Counter API

Ultinous AI Suite's measurement-based counters are designed to be used with custom third party software. Read on to learn how the data created by the counters can be read from Ultinous AI Suite.

Monitoring

SNMP

SNMP settings are available in the Control Panel.

Status via HTTP API

You can progamatically acquire several metrics from the Ultinous AI Suite via its HTTP API.

The response contains a JSON object with the available metrics. Integrating applications should accept unkown keys in the response, as new metrics may be added in later versions.

The endpoint is authenticated via API token in the Authorization header, see here.

Standard HTTP response codes are used:

  • 200 for successful response
  • 401 for authentication failure
  • >=500 if the API could not respond due to error

The following example uses curl to test if the Ultinous AI Suite API endpoint is reachable.


curl -H 'Authorization: Bearer <API token>' -H 'Accept: application/json' 'http://<address-of-ualarm>/API/system/status'

or if HTTPS is configured

curl -H 'Authorization: Bearer <API token>' -H 'Accept: application/json' 'https://<address-of-ualarm>/API/system/status'


Response body:

{

"sysuptime": 78792, //< system uptime in seconds

"avgcpu": 22, //< average CPU utilization

"avggpu": 0, //< average GPU utilization (used by video analitics)

"ram_available_megabytes": 4900, //< unused RAM

"ram_used_megabytes": 7859, //< RAM usage

"ram_used_pcnt": 38, //< RAM used percentage

"ualarm": {

"systemstatus": 1, //< 1=OK, 2=ERROR

"videostorage_total_bytes": 491182010368, //< storage assigned for Event videos

"videostorage_free_bytes": 401370316800, //< storage free

"videostorage_used_pcnt": 19, //< storage used percentage

"systemstatus_msg": " ", //< if systemstatus is 2, a message describes it.

"cameras_statuses": [
{
"id": "cam5",
"display_name": "display name of cam5",
"technical_name": "technical name of cam5",
"problems": []
},
{
"id": "cam7",
"display_name": "Garage",
"technical_name": "garage cam",
"problems": []
}
]
}
}