Skip to main content
Cisco Meraki Documentation

MV Presence Analytics

Summary

  • Presence analytics introduces 2 new features: (1) line-crossing analytics and (2) area-occupancy analytics
  • Public APIs for presence analytics are available to developers 
  • 3rd-generation fisheye cameras (MV33 and MV93) with Advanced people counter mode enabled are the preferred camera models for generating accurate people-counting results
  • We recommend upgrading the camera firmware to v5.5.1 or greater for the best experience (the minimum firmware requirement is 5.4.1)

presence-summary.png

Introduction

Presence analytics, powered by MV smart cameras, gives facility managers and retail strategists measurable insight into space occupancy. Built on top of machine learning and edge processing technologies, foot traffic can be estimated on configured 2nd and 3rd-generation cameras, at no additional cost.

3rd generation fisheye cameras (MV33 and MV93) are purpose-built for people counting. The fisheye form factor has a large field of view that minimizes occlusion when ceiling-mounted correctly. 

Screenshot 2024-03-11 at 2.46.20 PM.png

Note: The Advanced people counter mode can be enabled for MV33 and MV93. Enabling this mode will deploy a custom ML model that greatly improves people counting accuracy.\

Leveraging MV’s world-class edge architecture, presence analytics is performed directly from cameras to deliver real-time inferencing. MV’s REST/MQTT APIs are offered to empower the development of bespoke building management and monitoring solutions. As part of the Cisco Meraki family, our customers have access to a wide ecosystem of trusted partners who can help you get started with additional insight and metrics.

Features

For the best experience, please upgrade the camera firmware to version 5.5 and greater (minimum firmware requirement is 5.4.1). 

Presence analytics enables the MV security camera to double as a full-service sensor for occupancy detection. Once the camera is configured (by creating a crossing line or an occupancy area) to collect data, aggregated historical foot traffic count can be accessed from the dashboard, under the Camera > Analytics tab. For each camera, a total of 10 lines plus areas can be saved. The data for each configuration will retain for 6 months per area/line from the date of the configuration

Line crossing configuration

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 occupancy configuration

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 adding an 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

 

Advanced people counter

Advanced people counter is a new mode only available for 3rd generation fisheye cameras (MV33 and MV93). Enabling this configuration from Camera > Setting > Sense deploys an optimized people tracking and detection model for ceiling-mounted fisheye cameras. To maximize accuracy, the camera mount height should be measured and applied to the setting. 

Note: HDR will be automatically disabled once Advanced People Counting is enabled

Screenshot 2024-02-29 at 4.28.48 PM.png

 

Export

CSV export of historical data can be performed from the Camera > Analytics tab by selecting on the export icon.

presence-export.jpg

Installation guideline

The accuracy of object detection models is dependent on various factors, including traffic volume, occlusion, camera angle, lighting conditions, and, for MV33 and MV93, correct mounting height. If your primary purpose for the camera is counting footfall traffic, depending on environmental factors, experimentation with different placements may be required to achieve the desired performance.

Fisheye cameras

Ceiling-mounted fisheye cameras have the desired form factor to maximize counting accuracy. To take advantage of Advanced People Counting and maximize accuracy, 3rd generation fisheye cameras should follow these best practices:

  • Make sure camera mounting is set to “Ceiling” under Camera > Settings > Video Settings
  • Physically mount MV33 or MV93 top-down, at a distance of between 2.5 to 4 meters from the floor
  • Leave 0.3 to 1.5 meters of space between the camera and where an object might appear before entering a line/area
  • Line and area should be placed near the center of the camera field of view
  • The optimal lux level is 200. Darker scenes will produce less accurate data

Analytics_Coverage_2024-01-23.png

clipboard_e960fea7a611c12090af53fae9bc222c3.png

Line and area should be created within the covered space Occlusion is avoided due to the fisheye form factor

Dome cameras

  • Mount at an angle that avoids occlusion
  • For area occupancy, adjust Duration, to narrow down the behavior you want to track trend for
clipboard_eda97eeafcee00de1379e3c19fc4c73bb.png Screenshot 2024-03-11 at 2.23.28 PM.png
Beware of occlusion when multiple people/vehicles overlap Setting duration to more precisely target a behavior to track

Feature/hardware compatibility 

Camera model(s)

Line crossing

Area occupancy

Advanced people counter

Domes (MV13, 63)

✔️

✔️

X

Fisheyes (MV33, 93) 

✔️

✔️

✔️ (Recommended)

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

✔️

✔️

X

Bullets (MV52)

✔️ ✔️

X

Flex (MV2)

✔️ ✔️

X

Fisheyes (MV32)

✔️ ✔️

X

Domes (MV21, MV71)

X

X

X

 

Minimum software requirements

  • We recommend upgrading the camera firmware to v5.5.1 or greater for the best experience (the minimum firmware requirement is 5.4.1)
  • Advanced people counter requires enablement from Camera > Setting > Sense

If there are no detections on the camera and no MQTT output for a camera, please ensure the camera is receiving the correct PoE power as stated in its datasheet. To see if you're hitting this issue, search the Event Log for Event Type "PoE power error. Incorrect PoE standard detected." which will be logged when the camera boots.

Developer tools

MQTT

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?