11 SAFR Milestone Integration Guide

1.1 Introduction

Integrated SAFR Milestone is only available on Windows.

Integrating SAFR’s facial recognition and analysis capabilities into Milestone enables you to use SAFR’s video feed information overlays within Milestone camera video feeds, thus making it much easier to quickly and accurately separate unknown people from authorized people from known threats. You’ll also have immediate access to additional information such as age, gender, sentiment, name, company, known associates, or any other configurable information you want to create.

Integrating the two systems also allows SAFR’s information about individuals to trigger Milestone alerts and other actions within the Milestone system. Metadata within Milestone’s bookmarks are enriched with SAFR’s additional information, allowing you to more easily find relevant bookmarks.

1.1.1 Integration Overview and Requirements

A typical deployment requires the following:

  • A machine running Milestone XProtect. (Bookmarks are only supported on XProtect Expert and Corporate.)
  • Machines running Milestone XProtect Smart Client and Milestone Admin Tool for monitoring and administration of Milestone.
  • One or more machines running the SAFR Desktop Client to process videos.
  • If you’re doing a SAFR local deployment, you’ll also need a machine running SAFR Server. SAFR Server can run on the same machine as one of the Desktop Clients, provided the host machine meets the system requirements.

Cameras are connected to Milestone XProtect. SAFR can then connect to Milestone XProtect to perform analysis of the video and add overlays. Depending on the number of cameras you need, one or more machines can run the SAFR Desktop Client, with each client processing multiple video feeds. SAFR processes the video and returns information to Milestone to overlay the video feeds and generate events. The SAFR Desktop Client is also used to perform various management activities.

1.1.2 System Requirements

Milestone has the following requirements:

  • Milestone XProtect 2019 R1 or later must be installed.
  • Each camera connected to Milestone requires a Milestone license.
  • For each camera connected to Milestone on which you want to run SAFR overlays, you’ll need a second Milestone license. Thus, each Milestone camera running SAFR overlays requires 2 Milestone licenses total.

SAFR has the following requirements:

  • Each camera running SAFR must have a SAFR license.
  • Each machine running the SAFR Desktop Client must meet the following requirements:
  • The Desktop Client must be version 1.4.142 or later.
  • The system requirements described here.
  • Local SAFR deployments require at least one machine running SAFR Platform 1.4.140 or later.
  • Each machine running SAFR Platform must meet the system requirements described here.

1.1.3 Install and Configure Milestone XProtect

Download and install the latest Milestone installer package from the Milestone Download Portal.

To create a SAFR user in Milestone and set its permissions, do the following:

  1. Add a SAFR user (e.g. safr-roles) in the Milestone XProtect Management Client by going to the Site Navigation pane and selecting Security > Roles.
  2. Highlight Administrator in the Roles pane.
  3. At the bottom of the GUI click Users and Gr and then Add. (Select Basic to add the safr-roles.)
  4. Open the Milestone XProtect Management Client, go to Security > Roles > SAFR > Camera, and check Allow for the following checkboxes:
  • Read
  • View Live
  • Create bookmarks (only available on XProtect Expert and Corporate)
  • Read bookmarks (only available on XProtect Expert and Corporate)
  • Edit bookmarks (only available on XProtect Expert and Corporate)

  1. Click Save to save the changes.

1.1.4 Update Milestone XProtect Operator Permissions

To enable the Milestone operators to view SAFR-created overlays, do the following:

  1. Open the Milestone XProtect Management Client, go to Security > Roles > Operators > Metadata, and check Allow for the following checkboxes:
  • Read
  • View Live
  • Playback
  1. Go to Security > Roles > Operators > Analytics Events and check Allow for the following checkbox:
  • Read
  1. Go to Security > Roles > Operators > Alarms and check Allow for the following checkboxes:
  • View
  • Receive notifications
  1. Click Save to save the changes.

Note: Overlays are not visible if the live permission is not added to the Operator role.

1.1.5 Install and Configure SAFR

  1. From the SAFR Download Portal, download and install either SAFR Platform or SAFR Desktop, depending on your deployment type. Make sure to select the Milestone VMS extension install option.
  2. Start the Desktop Client and go to Tools > Preferences.
  3. Click the Milestone tab.

Note: If the Milestone Preferences tab is not displayed, it’s possible that you didn’t select the Milestone VMS Extension when you installed SAFR.

  1. To connect to the Milestone XProtect server and enable access to the cameras connected to Milestone server enter the following.
    • Username:SAFR user created when you installed and configured Milestone above. (e.g. safr-roles)
    • Password: Password created for the SAFR user.
      • If you created the user (in this example safr-roles) as a Windows user versus basic user, check the "Windows credentials" box.
    • Directory: IP address or domain address of server running Milestone XProtect.
      • If all in one server for a small deployment or PoC, "localhost" should work.

See the Operation Guide for a complete description of the settings on the Milestone Preferences tab.

1.1.5.1 Customizing Ports for SAFR Server Services

For smaller deployments in which you want to run both SAFR and Milestone XProtect on the same machine, you must customize the port assignments in SAFR to ensure SAFR and Milestone XProtect do not conflict.

SAFR uses the following ports by default:

  • COVI: 8080
  • Event: 8082
  • VIRGA: 8084
  • CVOS: 8086

To customize ports, do the following:

  1. Stop or disable any conflicting software using the required ports.
  2. Install the SAFR Platform.
  3. Open Notepad as Administrator and open C:\Program Files\RealNetworks\SAFR\safrports.conf.
  4. Edit any conflicting ports to new values. (e.g. CoviHTTP=18080)
  5. Run C:\Program Files\RealNetworks\SAFR\bin\configure-ports.bat. Running this batch script stops, reconfigures, and re-starts SAFR services.
  6. Run C:\Program Files\RealNetworks\SAFR\bin\check.bat. check.bat displays the new port settings.

1.1.5.2 Verify your Connection

To verify successful connection to the Milestone system, open the Preferences > Camera tab. Cameras connected to the Milestone system should be visible. All cameras connected to the Milestone system have a Milestone prefix in their names.

22 SAFR Milestone Operation Guide

2.1 SAFR Milestone Preferences

  • Username: Name of the user with the necessary permissions to connect SAFR to Milestone.
  • Password: Password of the user with the necessary permissions to connect SAFR to Milestone.
  • Windows credentials: Indicates whether the user is a Windows user or a basic user.
  • Directory: IP address or hostname of a Milestone server.
  • Draw Overlays: Enables the use of SAFR overlays on Milestone cameras.
  • Overlay Password: This is the password that should be configured/used in Milestone to access SAFR to receive overlay data. See the Interpret Video Feed Overlays page for information about SAFR overlays. After you add the overlay password, you need to restart the Milestone XProtect Smart Client and the SAFR Desktop Client.
  • Report Events: Enable to allow the reporting of SAFR events to Milestone. Note that only events reported to the SAFR Events server are reported to Milestone.
  • Include Event Details: Increases the verbosity of events in attaching JSON to the event that
    • includes all of the technical details of the event. This is useful if an operator is using macros to handle the event for decision-making.
  • Insert Bookmarks: Adds bookmarks to the video stream related to events. Allows operators to search video for events or recognized person names. Use caution when deciding what to include since many faces can cause many bookmarks to be created.
  • Include Unrecognizable Faces: When enabled, adds bookmarks when a face is detected but SAFR does not have enough information to determine if they are a stranger or a known person. This can result in an overwhelming number of bookmarks, so it’s disabled by default. However, this setting can be useful when monitoring areas with very few people.
  • Include Strangers: When enabled, adds bookmarks when a face is recognized and determined to be a stranger. This option is generally useful for secured areas where only known people should be.
  • Include Enrolled: When enabled, adds bookmarks when a face is recognized and determined to be a known person.
  • Include Concerns and Threats: When enabled, adds bookmarks when a face is recognized and determined to be a known concern or threat.

2.2 Connect Cameras to Milestone

It is very likely that cameras are already connected to the Milestone server but if additional cameras are to be added use the Milestone Management client. The best information on how to do this is in the Milestone XProtect Administration Guide. However, what follows is a brief explanation of the procedure:

  1. Open the Administration client.
  2. Go to Recording Servers.
  3. Right-click the Recording Server to which you want to add a camera.
  4. Select Add Hardware.
  5. Select a method to auto-discover the camera. For this example, use auto-discover.

Enter the username and password for the camera.

  1. Check the box next to each manufacturer of the cameras you want to add. Click Next.
  2. Add any username and password combination used to connect to the camera.
  3. Cameras appear in the list as they are discovered. Check the box next to each camera you want to add.
  4. The hardware for each camera is listed. Check the box for each part to be added. Types of parts are camera feeds, microphones, speakers, and others.
  5. Hardware parts need to be added to groups. At the left, select the default group for each type of hardware. At the right, you can override the group for individual hardware parts.
  6. Click Finish to add the selected hardware.

Note: The XProtect Smart Client has to be restarted to pick up newly added cameras.

2.3 Create Overlay Metadata Driver on Milestone Server for each Camera

1. Open the Milestone XProtect Management Client. In the left pane, under Servers, click Recording Servers.

2. In the center pane, right-click the appropriate server name, and click Add Hardware.

3. In the dialog, click the Manual option, and click Next.

4. If not already in the list, click Add to include the password from the SAFR > Preferences > Milestone tab Overlay Password field. Include a username of your choice. (e.g. SAFR)

If you make changes to the overlay password on the SAFR > Milestone tab, make sure that you click OK at the bottom of the window. Then make sure the password on the Add Hardware username/password page includes the changed password. If not, the add hardware operation will fail.

5. After you have edited the username and password table, click Next.

6. Click Clear All, select Milestone only, and click Next.

7. Add the IP address and port number of the SAFR client active overlay connections. To find this information, go to SAFR > Properties > Milestone tab, and click Active Overlay Connections. The dialog provides a table of camera names, IP addresses, and port numbers. Please note the IP address of the SAFR Desktop Client and not the IP address of the camera itself.

The password in the Overlay Password field must be included in the Add Hardware username/password table or the add hardware operation will fail.

8. From the Hardware Model menu, select MIP Driver. Click Add to create more rows for additional MIP driver addresses and ports if needed. Click Next.

9. On connection success, click Next.

10. Select the Metadata check box. We recommended that you click the Name field for the MIP driver (Metadata Port 1) and rename it to include the name of the camera to assist you when associating the camera with the MIP driver later. Click Next to add the hardware.

11. From the Add to Group menu, associate the MIP driver with a specific metadata group to make it easier to locate. Click Finish.

12. If the menu does not include a choice, or if you receive an Assign Device to a Device Group message, do the following:

  1. In the list in the left pane, to the right of the Default Metadata Group field, click the folder icon.
  2. In the Select Group dialog, in the lower-left corner, click the folder-plus icon to add a group.

  1. Provide a name for the device group, and click OK.

  1. From the Add to Group menu, you can now select the new device group.

13. After the driver has an associated device group, click Finish.

2.4 Associate the Milestone Integration Platform (MIP) Device with the Camera

  1. In the Milestone XProtect Management Client, in the left pane, click Recording Servers and expand the tree view to display the cameras and MIP drivers.

  1. With the camera highlighted, in the right-pane, at the bottom of the window, click Client.

  1. In the Select Devices dialog, on the Device Groups tab, click to highlight the MIP device you renamed earlier for easy identification. Click Add so that the device appears in the Selected pane. Click OK.

  1. Click Save to save the changes.

In the right Related Metadata field, the MIP device name is displayed and is now associated with the highlighted camera in the left pane.

2.5 Connect SAFR to Milestone Video Feeds

Once the camera is in the Video Archiver, it shows up as a Milestone camera in SAFR. If it does not, try closing and re-opening SAFR.

To get the SAFR enhancements to show up on the Milestone camera feed:

  1. Open the SAFR Desktop Client.
  2. Select the Milestone version of the camera (It has Milestone as the first part of the camera name.) from the menu in the main window (upper left).

On successful connection to the Milestone camera, video from the camera plays in the SAFR Desktop Client window.

If overlays have been configured, you can see the enhancements by watching the camera’s video feed in XProtect:

  1. Open XProtect.
  2. Go to the Live tab.
  3. Drag and drop a camera from the left side into one of the tiles in the middle.

The camera feed should start up and show the same overlays that are in SAFR (for example, ovals, names).

To connect to additional cameras:

  1. Open another instance of the SAFR Desktop Client by selecting New from the File menu.
  2. Repeat the previous steps to connect to a different Milestone camera feed.

On successful connection to the Milestone camera, video from the camera plays in the SAFR Desktop Client window.

  1. Repeat this process for as many video feeds as desired (up to the capacity of the machine SAFR is installed on).
  2. If more capacity is needed, install SAFR on additional machines and repeat the setup process.

Note: By default, the SAFR Desktop Client for Milestone operates in Enrolled Monitoring video processing mode and generates events and bookmarks into the Milestone system for every enrolled person. If a different mode is desired for a selected camera, choose a different mode from the video window mode selector menu.

2.6 Automatic Bookmarks

Milestone creates bookmarks to help locate important events. Bookmarks are populated with person type, ID class, and name. They can also provide more detailed information with even more search attributes, such as age and gender.

The following illustration shows how bookmarks can be used to review important events, such as the detection of a stranger tailgating behind a registered user.

Note: The purple indicator identifies the person is a stranger.

2.7 SAFR Identities

To add people through the SAFR Desktop Client from an image or video file, do the following:

  1. Open the Desktop Client.
  2. Click File > Import Faces.
  3. Select the image.
    1. For an image, each recognized face is enclosed by a box, and you have the option to type a name.
    2. For a video, each recognized person is learned automatically as long as the faces meet the minimum criteria for recognition.
  4. If faces are not learned, check the settings in the Detection and Recognition tabs under Preferences to ensure faces meet minimum criteria.
    1. Detection > Minimum searched face size
    2. Recognition > To allow identification

Users added to SAFR are not synchronized to Milestone. These users exist only in SAFR.

It may be desirable to edit people properties to control which events get triggered when that person is recognized. For example, setting a person’s ID Class to Concern or Threat triggers the respective alarms. The most important people attributes are Name, Image, Person Type, and ID Class.

The Name, Image, and Person Type should be edited through SAFR. Person Type defines a person’s role

(e.g. staff or visitor), while the ID Class defines the risk level (No-Concern, Concern, or Threat). Person Type and Image can be edited in the Desktop Client by changing the Person Type on the People screen.

ID Class and all other attributes of a person are also edited within SAFR People dialog, accessed through the SAFR Desktop Client Tools menu. All identities are created by default with an ID Class of No Concern. To edit a person’s ID Class, open the People window from the SAFR Desktop Client Tools menu as follows:

The Person Type and Name can be edited by clicking the respective fields on the People screen. To edit ID

Class, double-click the person and choose the desired value from the ID Class menu in the People Edit dialog as shown in the following illustration:

2.8 SAFR Events

You can use SAFR to generate events. When enabled on the Events Preferences page, events occur when a person appears in the view of a connected camera. When a person appears in the camera’s view, they’re immediately assigned an ID Class attribute, although that ID Class may change if the system successfully recognizes them and assigns them a more appropriate ID Class. The types of ID Classes are listed below.

  • Unrecognizable: A face was detected but it wasn’t of sufficient quality to attempt recognition.
  • Stranger: The person’s face is of sufficient quality to recognize them, but they’re not registered in SAFR’s Identity Database.
  • No-Concern: Registered person.
  • Concern: Registered person who has been marked as a person of concern.
  • Threat: Registered person who has been marked as a known threat.

SAFR Events are placed under Analytics Events and available in the event picker in Milestone when creating an Event:

A screenshot of a computer

Description automatically generated

Events are populated dynamically with information such as person name and person type. The table below shows all the combinations of events that result from above Analytics Events.

Event Message

Id Class

Named

Person Type

Condition

People Attributes

Unrecognizable face detected

N/A

N/A

N/A

Face detected but insufficient information for recognition

idClass="unidentified"

Stranger detected

Stranger

N/A

N/A

Face detected but not found in registered people

idClass="stranger"

Registered person detected without name

Normal

No

None

Registered person without name or person type assigned

idClass="noconcern" && personType="" && name=""

Registered person detected with name <name>

Normal

Yes

None

Registered person with name but no person type

idClass="noconcern" && personType="" && name=<name>

Registered person detected of type <personType>

Normal

No

Defined

Registered person with person type but no name

idClass="noconcern" && personType=<personType> && name=""

Registered person detected of type <personType> with name <name>

Normal

Yes

Defined

Registered person with person type and name

idClass="noconcern" && personType=<personType> && name=<name>

Concern person detected without a name

Concern

No

None

Same as above for Concern

idClass="concern" && personType="" && name=""

Concern person detected with name <name>

Concern

Yes

None

Same as above for Concern

idClass="concern" && personType="" && name=<name>

Concern person detected of type <personType>

Concern

No

Defined

Same as above for Concern

idClass="concern" && personType=<personType> && name=""

Concern person detected of type <personType> with name <name>

Concern

Yes

Defined

Same as above for Concern

idClass="concern" && personType=<personType> && name=<name>

Threat person detected without a name

Threat

No

None

Same as above for Threat

idClass="threat" && personType="" && name=""

Threat person detected with name <name>

Threat

Yes

None

Same as above for Threat

idClass="threat" && personType="" && name=<name>

Threat person detected of type <personType>

Threat

No

Defined

Same as above for Threat

idClass="threat" && personType=<personType> && name=""

Threat person detected of type <personType> with name <name>

Threat

Yes

Defined

Same as above for Threat

idClass="threat" && personType=<personType> && name=<name>

2.8.1 Milestone Alarms

SAFR Events can be used to trigger Alarms in Milestone. This is done by creating a new Alarm in Milestone and selecting one of the SAFR Events as the trigger. In the Alarm definition of the Management CLient, you select “Analytics Events” and then pick from the list of SAFR Analytics events as well as select the sources that should be monitored.

A screenshot of a computer

Description automatically generated

In the Smart Client, the Alarm List and Alarm Preview can be added to one of the views in the Layout to see alerts in real time.

2.9 SAFR Overlays

SAFR for Milestone enhances video monitoring by providing overlays that gives the security personnel more information, including person types, threat classification, and name. It can even be used to augment the video views with age and gender information that may be useful in reporting suspects.

The following illustration shows how overlays give more information about the subjects in view:

The person in the top left is a stranger, the person in the top right is a recognized person with low probability, and the person in the bottom left is a known threat. The information is conveyed by the color of their overlays. The following list describes the default colors used in SAFR overlays:

  • Gray: Unrecognizable. A face was detected but it wasn’t of sufficient quality to attempt recognition.
  • Purple: Stranger. The person has been recognized, but they’re not in Genetec’s cardholder database nor in SAFR’s Person Directory.
  • Blue: Registered person without a name. The face was recognized as matching one already in the database.
  • Green: Registered person with a name.
  • Yellow: Concern. The registered face has been tagged as a concern.
  • Red: Threat. The registered face has been tagged as a threat.

2.10 SAFR Operator Modes

SAFR has different operator modes that control what events are generated. Below is a short summary of the modes most relevant to Milestone XProtect integration. For a complete description, see the Operator Modes documentation.

  • Secure Access: Trigger events only for cardholders (or persons registered directly in SAFR) only when there is a high confidence match. Useful for secure entry. (e.g. unlocking doors)
  • Secure Access with Smile: Same as Secure Access but includes an additional trigger event if the subject smiles.
  • Enrolled Monitoring: Trigger events for cardholders (or persons registered directly in SAFR) but with lower confidence.
  • Enrolled and Stranger Monitoring: Same as Enrolled Monitoring but triggers events for strangers also.

2.11 Alarms and Notifications

You can also use SAFR to view recognition events. Recognition events occur when a known, unknown, or unrecognized person appears in the view of a camera. The types of recognized persons are:

  • Unrecognizable: A face was detected but it wasn’t of sufficient quality to attempt recognition.
  • Stranger.
  • Registered person without a name.
  • Registered person with a name.
  • Registered person marked as a Concern.
  • Registered person marked as a Threat.

There are several combinations of these conditions that can be triggered. The following shows multiple events populated in the Milestone alerts panel:

Note: Clicking any of the events on this screen allows the video from that event to be replayed.

3 Troubleshooting Tips

Note: When closing SAFR, use the Quit SAFR option on the File menu. Closing SAFR using the Window Close button will cause you to lose the SAFR state settings and connected cameras for that window.

If detection or recognition results in not many faces found or recognized, check that the Milestone video feeds are of a sufficiently large frame size.

If events are not being triggered, ensure the correct SAFR video processing mode is selected.

If overlays are not displayed after configuration, the issue may involve a Windows Defender firewall security alert either before or after your system has been rebooted. The result is that the SAFR application is blocked. Configure Windows Defender Firewall Inbound Rules to enable SAFR and

Client.

1