Skip to main content
Cisco Meraki Documentation

MV Presence Analytics

Overview 

MV Presence Analytics is available for Early Access for all 2nd and 3rd generation cameras starting with firmware version greater than 5.4.1. The feature provides people counting and occupancy reports in the dashboard for the lines and areas defined by the customer. Go to Cameras > Camera > Analytics to configure a line and/or area. Data generated from the moment the line/area was configured will be available under a sub tab of the Analytics tab. It is also possible to retrieve data via MQTT and APIs.

It is important to mention that the people counter app is based on the people detector ML model and the accuracy of data is correlated with the accuracy of the people detections. The accuracy of object detection models is dependent on various factors, including the object size, lighting conditions, the richness of the dataset, and other factors. Therefore, try your best to follow the configuration guidance below to achieve the best FoV, lighting conditions, and object size. Where it is possible, disable HDR, and consider enrolling your camera in intelligence training to include your videos in our model retraining process. That would help to enhance the model accuracy for your environment, hence the results of the people counter app will improve over time.

We are upgrading 2nd generation cameras from Zones to Areas starting October 17, 2023. 

Why upgrade my cameras now?


We are upgrading all 2nd generation cameras (cameras ending in MV-*2) to support our latest occupancy analytics. These updates will introduce two new capabilities for our 2nd generation cameras: Lines for crossing analytics and Areas for improved occupancy analytics, as described in this document. These new capabilities will be available under the refreshed Analytics tab once these updates go live on October 17th. In order to prepare for this, we recommend:

  1. Opt-ing in to Presence Analytics 
  • Opting in to Presence Analytics today will offer improved occupancy analytics for any 3rd generation cameras and prepare your 2nd generation camera networks for a seamless update to the new experience.
  1. Upgrading your firmware to Beta version 5.4 today
  • Once your camera is upgraded to MV5.4, it will automatically convert any existing Zones into Areas. This means that you can start interacting with your new Areas data as soon as the feature goes live on Oct 17th.

Once this new update goes live, we will disable creating or editing Zones and redirect our users to the new and improved Areas experience to manage their Areas and create new crossing Lines! We will also launch Dashboard APIs to support these new occupancy analytics.

What is the feature? 

Accessible from Cameras > Camera > Analytics, these features are available for the user:

  • Tools to define and configure Lines and Areas (up to 10 configurations)
  • Charts for counting and occupancy reports (data is available after the date of configuration)
  • Various filtering tools to provide the best overview of historical data;

In addition to dashboard features, MQTT can be used to retrieve live data for people tracks and API to retrieve historical data.

Line Crossing and Counting

The Line counts people crossing in each direction. When people cross the Line in the direction of the arrow, they are counted as "In". People moving in an opposite direction to the arrow are counted as "Out."

Each Line is a polyline with four adjustable vertices, allowing precise adjustments to fit the entry/exit point.

When applying a Line to a fisheye camera, the Line will automatically curve according to the mounting height configured for the camera to adjust for the specific fisheye lens characteristics. This makes it easier to fit a Line to physical spaces.

clipboard_e8998fa6a657b11d65e31cbd7bc8572cf.png
Area Crossing and Occupancy

An Area is used to monitor occupancy within a region of interest for a particular location.

Each Area is a polygon with eight adjustable vertices, allowing precise adjustments to fit the region of interest.

When applying a Area to a fisheye camera, the Area will automatically curve according to the mounting height configured for the camera to adjust for the specific fisheye lens characteristics. This makes it easier to fit an Area to physical spaces.

clipboard_e205f0230452b6b56720bde7e5016e636.png

How will it help my business? 

  • Increase store efficiency by identifying trends in store traffic and make data-driven decisions related to marketing, store staff, opening hours and customer service.
  • Reduce operational costs: No need to run separate systems for security and store counting. One system to configure, operate and maintain.
  • For store managers to understand the trends in number potential customers in the store.
  • For marketing managers to measure the impact of marketing and promotion activities to store traffic.
  • For store managers to plan staffing based on the number of customers visiting the store.
  • For business operation teams to measure the conversion rate of the store.
  • For business operation teams to compare the customer traffic between stores and locations.

Configuration  Edit section

Camera Installation Requirements

The MV93 series fisheye cameras provide the best results for Presence Analytics.

Camera Generation

Model

Line crossing

Area occupancy

Area occupancy with duration

Advanced tracking for higher accuracy people counting

3rd 

Domes (MV63)

✔️

✔️

✔️

X

Fisheyes (MV93)

✔️

✔️

✔️

✔️

2nd 

Domes (MV12, 22/X, 72/X)

✔️

✔️

✔️

X

Bullets (MV52)

✔️ ✔️

✔️

X

Flex (MV2)

✔️ ✔️

✔️

X

Fisheyes (MV32)

✔️ ✔️

✔️

X

1st 

Domes (MV21, MV71)

X

X

X

X

 

To optimize your deployment for higher accuracy occupancy analytics, we recommend installing MV93s as follows:

  • Mount top-down, making sure it covers the floor area where people should be counted.

  • Configure the camera "Mounting" setting to "Ceiling" under the Cameras > Camera > Settings > Video Settings 

  • Mount the camera between 2.5 and 4 meters (8 - 13ft), measured from the mounting plate to the floor and provide the "Mount height" under Cameras > Camera > Settings > Sense

  • Mount the camera between 0.5 to 1.5 meters (1.5 - 5 ft) away from the door or nearby walls, ideally centered within/over the region to be measured for counting or occupancy.

  • Disable HDR

Please note that it is possible to use Presence Analytics with other models of MV cameras, but there is a high risk that one object might cover the other, meaning that for instance two people walking next to each other might be counted as one if the one closest to the camera obscures the other.

MV63 example: There are two people in the image below, but one is occluded by the other. Because of the occlusion and lack of color contrast, the model may not be able to distinguish between the two people and may count them as one. 

clipboard_eda97eeafcee00de1379e3c19fc4c73bb.png

MV93 example. The image below shows the same event from the above. Because the MV93 is deployed top-down, the occlusion is avoided and it is that easier for the model to distinguish two people.

clipboard_e960fea7a611c12090af53fae9bc222c3.png


The counting accuracy is best in the center of the FoV and decreases towards the periphery. For this reason, lines and areas may not be placed around the edges of the frame and this is represented visually by a 'haze' around the edge of the view.

Analytics_Coverage_2024-01-23.png

 

If the area you want to monitor falls into this area, please revisit the camera placement if installation requirements allow or add another camera to cover the desired area of interest.

ezgif.com-video-to-gif (2).gif

 

Software Configuration Requirements

The camera firmware version must be >= 5.4 

1. Enable Presence Analytics under Cameras> Camera > Settings > Sense 

2. Set the mount height in the "Mount height"

3. Select Head [performance] model

4. Save changes

clipboard_eeba759e6c3f39d979d2e294887b74bf7.png

After configuration

Once everything is configured, you will be able to browse the Presence Analytics data by using the tabs on the “Analytics” tab. Please note, that camera will begin generating data at the time of the configuration and forward.

Presence Analytics allows a maximum of 10 lines and/or areas per camera. The camera will start the data collection after the configuration is done. 

ezgif.com-video-to-gif (1).gif

Line charts will represent the people's counting/occupancy numbers over the selected time range.

ezgif.com-video-to-gif (3).gif

Get a sense of the data

People and vehicle counting will provide an aggregation of each line-crossing event. Occupancy will provide an overview on the current selected area and configured duration.

The data for each configuration will retain for 6 months per area/line from the date of the configuration.

clipboard_ede4b3f837d17bdf75161c93a4637d04b.png

There are “Time range”  and “Resolution” filters available for the data breakdown. By default, chart displays data for the past 7 days and 24 hours resolution. To choose specific dates of interest use the “Custom” time range.
Each “Time range” supports the following resolutions:

Time range

Last 2 hours

Last 24 hours

Last 7 days:

Last 30 days:

Custom

Resolution

  • 15 minutes

  • 30 minutes

  • 60 minutes

  • 6 hours

  • 12 hours

  • 24 hours

  • 6 hours

  • 12 hours

  • 24 hours

  • 12 hours

  • 24 hours

  • 12 hours

  • 24 hours

Advanced developer tools

MQTT for Presence Analytics​​​​​​
Line crossings and people/vehicle counts

Line crossing data events will be delivered for all configured crossing lines over MQTT in the following format:

TOPIC /merakimv/<serial-number>/crossing/<uuid>
{
  "_v" : 1,
  "label" : "crossing_line_1",
  "event" : "crossing_in|crossing_out"|"expired"|"appeared",
  "object_id" : 123,
  "type" : "person|vehicle",
  "ts" : 1663779000000
}

The uuid will map to the generated uuid a configured crossing line or area is given when created. Vehicle counting is only available for non-fisheye cameras.

Occupancy data

Occupancy data will be pushed to the configured MQTT recipient every (wall clock) minute and will contain the positions for all objects that have occupied the space during the minute starting at ts and ending at ts+60 seconds. When a track no longer has overlapping time for the current period it will no longer be included in the list. Object_ids in this payload can be matched with what is sent for this area on the crossing topic above.

TOPIC /merakimv/<serial-number>/occupancy/<uuid>
{
  "_v" : 1,
  "label" : "area_51",
  "objects" : 
  [
     { "object_id": 12,
       "type" : "person",
       "ts_entered" : 1678971542000,
       "ts_appeared" : 0,
       "ts_exited" : 0,
       "ts_expired" : 0
     },
     { "object_id": 13,
       "type" : "person",
       "ts_entered" : 1678971548000,
       "ts_appeared" : 0,
       "ts_exited" : 1678971620000,
       "ts_expired" : 0
     },
     { "object_id": 17,
       "type" : "vehicle",
       "ts_entered" : 1678971621000,
       "ts_appeared" : 0,
       "ts_exited" : 0,
       "ts_expired" : 1678971641000
     },
     { "object_id": 18,
       "type" : "person",
       "ts_entered" : 0,
       "ts_appeared" : 1678971621000,
       "ts_exited" : 0,
       "ts_expired" : 1678971641000
     }
  ],
  "ts" : 1678971600000
}

Note that vehicles will not be supported by the fish-eye cameras.

The live data for areas will be pushed on the crossing topic in a similar fashion as people and vehicle counts are for crossing lines with the only exception that you can receive events with directions "expired" and “appeared” as well. These events are sent when a tracked object is lost/timed out or discovered/appeared within an area.

TOPIC /merakimv/<serial-number>/crossing/<uuid>
{
  "_v" : 1,
  "label" : "area_51",
  "event" : "crossing_in"|"crossing_out"|"expired"|"appeared",
  "object_id" : 123,
  "type" : "person|vehicle",
  "ts" : 1663779000000
}

The live crossing data stream is only available to a client over MQTT, while the data sent on the occupancy topic will also be available from the internal and external API's.

Tracks payloads

Track data will be pushed whenever a track has expired/is lost, one push per track. This functionality has to be enabled specifically per camera. The timestamp is set to when the track expired and the positions is an array of estimated feet positions for the track in the interval interval_ms milliseconds:

TOPIC /merakimv/<serial-number>/tracks
{
  "_v" : 1,
  "interval_ms" : 500,
  "positions" : 
  [
    [
      0.48191,
      0.64122,
      1657849000
    ],
......
    [
      0.48367,
      0.5828,
      1657847500
    ]
  ],
  "object_id" : 123,
  "ts" : 1657849000
}
  • Was this article helpful?