Milestone XProtect integration

Milestone XProtect is the industry-leading open platform VMS for IP camera-based security and CCTV. The integration between SmartFace Platform and Milestone XProtect VMS enhances the Milestone VMS with face recognition capabilities. The main advantage of this integration is that information processed by SmartFace Platform is displayed and stored by Milestone XProtect VMS together with processed video streams.

Key features overview

  • Milestone XProtect Smart Client receives notifications about detected or identified persons

  • Detected or identified persons are displayed with:

    • Cropped image

    • Time of detection

    • Estimated age

    • Estimated gender

    • Camera name

    • Watchlist name (in the case of identification)

    • Matched score (in the case of identification)

  • Milestone XProtect Smart Client displays recorded videos from the time when a person was detected and identified.

Architecture overview

Integration between SmartFace facial recognition software and Milestone XProtect video management system (VMS) is done through the SmartFace - Milestone Agent.

SmartFace - Milestone Agent processes notifications from SmartFace and transforms them into data structures, called Analytics Events, which are used by Milestone XProtect. SmartFace is processing the same video streams (RTSP) from cameras as Milestone XProtect. Therefore, it is required to map cameras configured on both sides (see the chapter Configuration of the Milestone integration).

Analytics Events with information from SmartFace are then displayed in SmartFace Alarm plugin installed on XProtect server.

Integration between SmartFace and Milestone XProtect

Milestone Agent

Milestone Agent is .NET console application that is registered as a Windows service. This service listens to ZeroMQ notifications from SmartFace and transforms them into Analytics Events that are sent to Milestone XProtect server. The following notifications are transformed into Analytics Events:

Transformation of SmartFace notifications into Milestone XProtect Analytics Events

It is required that the Agent connects to both SmartFace and Milestone XProtect server. Configuration of connectivity to both servers is read from a JSON file which is generated by Agent Configurator. For more information about this component, see the section Agent configurator below. The Agent automatically reloads its configuration when the JSON file is created or edited.

The configuration file is located at: C:\ProgramData\Innovatrics\SmartFaceMilestoneAgent\SmartFace_Milestone_Config.json

Logs for this service are located at: C:\ProgramData\Innovatrics\SmartFaceMilestoneAgent\smartface_milestone_service.log

Agent Configurator

Agent Configurator is a Windows desktop application which enables you to easily set up all required configuration properties for the integration between SmartFace and Milestone XProtect and ensures that properties inserted are valid. With this application you configure a connection to SmartFace, Milestone XProtect and the mapping of cameras between these two servers. Created or modified configuration is automatically read by SmartFace - Milestone Agent.

Logs for this desktop application are located at: C:\ProgramData\Innovatrics\SmartFaceMilestoneAgent\smartface_milestone_configurator.log

SmartFace Alarm plugin

When notifications are sent from SmartFace, you can see them in Milestone XProtect Smart Client as Analytics Events. These events include information extracted in SmartFace. SmartFace Alarm Plugin renders and displays this information in XProtect Smart Client Alarm Manager. Alarm Manager is a module that is included in XProtect Smart Client automatically from version Express and higher.

Installation of Milestone XProtect integration

For the proper functioning of the integration, it is required to install SmartFace Platform, Milestone XProtect and the integration components: SmartFace – Milestone Agent and Alarm plugin. SmartFace and Milestone XProtect should be successfully installed before you start to install the integration components.

The following chapter describes the process of installation and configuration of the integration components in these steps:

Install and configure SmartFace Platform

Install SmartFace Platform v5) For information on how to install SmartFace Platform, see Installation on Windows using installer.

⚠️ Please keep in mind that the installation requires an activation of the SmartFace Platform license. You can find all information in the above link.

Install Milestone XProtect

Milestone provides several versions for XProtect VMS from free Essential version to large-scale Corporate installation. However, the integration requires that XProtect VMS includes the Alarm Manager module. This module is available only from Express version and higher.

For more details about XProtect versions, available functionalities and modules, please see the Milestone Product Index (product matrix).

For further details and installation steps, please see the XProtect Manual and Documentation.

Install and configure integration components

Install SmartFace – Milestone Agent

Installation of SmartFace – Milestone Agent also installs Agent Configurator and creates a desktop shortcut for this application.

⚠️ For connectivity reasons we recommend installing Agent on the same server as on which SmartFace is installed. If the Agent is installed on a separate server, it is required that the Agent has connectivity to SmartFace Platform and Milestone XProtect server.

It is also mandatory that the TCP port 2406 on SmartFace Platform is opened for the correct reception of SmartFace notifications.

To install SmartFace – Milestone Agent
  1. Download the .exe installer from the Customer Portal.

  2. Run this Windows x64 based installer, which creates, registers and starts SmartFace – Milestone Agent service.

  3. The default folder where the Agent is installed is C:\Program Files\Innovatrics\Milestone Agent

Install SmartFace Alarm plugin

⚠️ Before installing the SmartFace Alarm plugin, please make sure that XProtect Smart Client includes the Alarm Manager component. See the section above Install Milestone XProtect.
To install SmartFace Alarm plugin:
  1. Download the SmartFace Alarm plugin from our Customer Portal.

  2. Extract the downloaded .zip file.

  3. Create the folder SmartFaceAlarmPlugin on the machine that hosts Milestone XProtect server in the destination: C:\Program Files\Milestone\MIPPlugins\

  4. Copy the extracted files into the created folder. The expected path should look like: C:\Program Files\Milestone\MIPPlugins\SmartFaceAlarmPlugin

  1. Restart Milestone XProtect server. The plugin will be loaded only after the restart.

  2. After the installation, please follow the steps in the chapter Configuration of the Milestone integration.

Configuration of the Milestone integration

Agent Configurator is a simple Windows desktop application with a graphic user interface. Its purpose is to configure the integration between SmartFace and Milestone XProtect.

The configuration includes these steps:

  1. Configure SmartFace connection.

  2. Configure Milestone XProtect connection.

  3. Configure camera mapping between SmartFace and Milestone XProtect.

To configure the integration


  2. Set Server URL to the SmartFace API endpoint. Server URL should contain a hostname and a port for this endpoint. The default SmartFace Web API port is 8099. If the Agent Configurator is installed on the same server as SmartFace, you can set the hostname as a localhost.

  1. Specify Server URL for Milestone XProtect and the correct credentials. Make sure that the user used in the configuration belongs to the group which has read rights for camera configuration in Milestone Recording server and also rights to send Analytics Events. If the Agent is installed on the same server as XProtect, Server URL can be set as localhost.

  1. When the connection to both servers is successfully established, Agent Configurator will load all configured cameras from both servers and display them in the following screen. Pair the SmartFace cameras to cameras processed by Milestone XProtect. Notifications about detected and identified persons will be received only from cameras that are mapped.

  1. Save the changes by clicking Apply. After that, SmartFace – Milestone Agent will automatically reload its configuration created or edited by Agent Configurator. Notifications about detected and identified persons are now sent to Milestone XProtect.

XProtect Smart Client

Information extracted in SmartFace is displayed as Analytics Events in XProtect Smart Client, under the Alarm Manager tab in the bottom pane. If Analytics Events are not visible and a list of alarms is displayed instead, please follow these steps:

  1. Select the pane where the alarms are displayed.

  2. Click Setup in the right top corner.

  3. In the Properties pane located on the left choose Event as a Data Source

  4. Click Setup.

Setting up Analytics Events instead of alarms in XProtect Smart Client

If the configuration of the integration between SmartFace and XProtect is correct, a notification about detected and identified persons is displayed at the bottom of the pane. The column Message displays whether a face was only detected or also identified against a watchlist for the received Analytics Event.

For every detected or identified person, you may view further information by selecting the specific row.

Detected person

For a detected person a notification contains the following information:

  • Cropped image

  • SmartFace camera name

  • Estimated age

  • Estimated gender

  • Biometric quality

  • Detection time

  • Milestone camera name

Notification about detected person in XProtect Smart Client

Identified person

For an identified person the notification contains the following information:

  • Cropped image

  • Watchlist image

  • SmartFace camera name

  • Watchlist name

  • Name of the watchlist member (identified person)

  • Identification time

  • Matching score

  • Milestone camera name

Notification about identified person in XProtect Smart Client

XProtect server can be configured to record a video sequence from live streams based on received Analytics Events. If the recording of video sequences in XProtect server is enabled, the recorded sequence of the video footage will be displayed next to the notification from SmartFace.

Trigger alarms in XProtect

It is possible to trigger alarms in XProtect based on the notifications about detected and identified persons sent from SmartFace.

Before you can set up an alarm, it is necessary to define an Analytics Event in Milestone XProtect Management Client for every type of event (detected and identified) received from SmartFace. Analytics Events must be named the same as the events received from SmartFace. You can find the event names from SmartFace in the messages displayed in XProtect Smart Client.

Please follow these steps to define Analytics Events:

  1. Open Milestone XProtect Management Client.

  2. Unfold Rules and Events in Site Navigation.

  3. Right-click Analytics Events.

  4. Click Add New …

  5. Choose the name of the event between:

    • SmartFacePersonDetected

    • SmartFacePersonIdentified

  6. Save the Analytics Event.

After you created Analytics Events with correct naming, you may set up multiple alarms with various rules, triggered based on the incoming events. For more information, see the Milestone documentation.