Overview

This document provides a step by step guide to integrating the RTSP output from a Meraki MV camera, with a pretrained OpenCV 3.3 dnn module, running SSD Detection on the COCO dataset.

The script shall:

  • launch a local video stream, with a bounding box for detected objects and associated confidence score
  • print to cli the object and confidence score of detected objects
  • publish to an MQTT broker the object and confidence of objects detected, using the topic "python/test"

This was developed and tested using a Macbook Pro. The detection time for objects entering the frame to being reported on the video and MQTT stream is of the order 1.5-2.0 seconds.

Dependencies

Python

This script was develeoped using python version 3.7.3

Meraki Camera Requirements

Firmware version 4.2 or newer
2nd generation MV camera
For further details:
https://documentation.meraki.com/MV/Advanced_Configuration/External_RTSP

Steps

Installation

Create a Virtual Environment:

$virtualenv venv

Activate the virtual Environment:

$source venv/bin/activate

Clone the Repo:

$git clone https://github.com/andersm9/Meraki_OpenCV_RTSP.git
$cd Meraki_OpenCV_RTSP

Install the requirements:

$pip3 install -r requirements.txt

Dashboard configuration:

Cameras -> <your_camera> -> Setting -> External RTSP -> yes

Make a note of your RTSP stream URL

Create a file "credentials.ini" with the following contents:

[camera]

#RTSP source

host = **rtsp://<camera IP>/live**

#e.g.host = rtsp://192.168.127.29:9000/live

[mqtt]

broker = **mqtt broker location**

#e.g broker = broker.hivemq.com

port = **mqtt broker port**

#e.g. port = 1883

[ssd]

#set location of SSD model (preconfigured for this repo)

prototxt = MobileNetSSD_deploy.prototxt.txt

model = MobileNetSSD_deploy.caffemodel

#set confidence level for detection

conf = **0-1**

#e.g for 20% confidence or above for detection

#conf = 0.2

Launch the script:

$python3 MV_OpenCV.py

Example Local Video

Diagram

Example MQTT stream

Diagram

View code on GitHub
  • Owner

  • Contributors

    +1Github contributor
  • Categories

  • Products

    Meraki
  • Programming Languages

    Python
  • License

    MIT License

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.