This is the toplevel code of Mobiliya's Security & Surveillance project based on Microsoft Azure platform.
This repository holds together all the source code, setup instructions & user guide which will allow developer to access, setup & get the solution functional on their Azure environment & hardware setup. User is requested to follow all instructions & guidelines for setting up the solution.
For fully deploying the solution, we will require to perform following steps:
If you are looking to just browse through the source code, please refer to section 3.0 "Repository Structure"
- Azure account
- Azure B2C application (setup guide)
- Video Indexer (setup guide)
- Nvidia Jetson TX2 hardware
- Host machine with Linux (for flashing Nvidia Jetson)
- Camera with RTSP URL
Ensure that the pre-requisites are met. Simplest way to perform the software setup on Azure is to:
- Click the "Deploy to Azure" button. Enter Video Indexer key and B2C application details acquired in earlier steps.
- Please refer to Deployment Guide for guidelines.
- Follow the guidelines provided in the following document (PowerBI Setup) to configure PowerBI. (Can be done Later, prior to loading Reports)
This step will only install required components on hardware. Refer step 2.2.3 for configuration step. Ensure that the pre-requisites are met. Simplest way to complete hardware setup is to:
- Follow the guidelines provided in the following document (Jetson Flashing) for flashing Nvidia jetson.
- Open Terminal on Jetson and follow below steps to install Aggregator and ComputeEngine on Jetson. (will take ~30 mins)
$ git clone https://github.com/MobiliyaTechnologies/SecurityAndSurveillance.git
$ cd SecurityAndSurveillance/Setup/installation
$ sed -i -e 's/\r$//' install.sh
$ sudo chmod +x install.sh
$ ./install.sh -r=https://github.com/MobiliyaTechnologies
- Open Terminal on Jetson and follow below steps to install only ComputeEngine on Jetson. (Aggregator should be installed on another machine)
$ git clone https://github.com/MobiliyaTechnologies/SecurityAndSurveillance.git
$ cd SecurityAndSurveillance/Setup/ComputeEngine
$ sed -i -e 's/\r$//' install.sh
$ sudo chmod +x install.sh
$ ./install.sh
- Open Terminal on Hostmachine (preferably Ubuntu) and follow below steps to install Aggregator.
$ git clone https://github.com/MobiliyaTechnologies/SecurityAndSurveillance.git
$ cd SecurityAndSurveillance/Setup/Aggregator
$ sed -i -e 's/\r$//' install.sh
$ sudo chmod +x install.sh
$ ./install.sh
We will configure installed software components. We can start these components once configured.
- Refer following steps to configure Aggregator
$ cd ~/Aggregator
$ vi config.js
Update config.aggregatorName and config.location
Update following placeholder with values acquired in previous steps (deployment)
<IOTHubConnectionString> => IoT Hub connection string
<storageAccountName> => Storage Account Name
<storageAccountAccessKey> => Storage Account Access Key
<backendUrl> => Backend Url (should start with https://)
<videoIndexingSubscriptionKey> => Video Indexer api key
- Refer following steps to configure ComputeEngine
$ cd ~/ComputeEngine/jetsonNodeServer
$ vi settings.js
Update config.name and config.location
Update following placeholder with values acquired in previous steps (deployment)
<IOTHubConnectionString> => IoT Hub connection string
<storageAccountName> => Storage Account Name
<storageAccountAccessKey> => Storage Account Access Key
<backendUrl> => Backend Url (should start with https://)
- Follow below steps to start Aggregator and ComputeEngine
$ cd ~/Aggregator
$ forever start aggregatorServer.js
$ cd ~/ComputeEngine
$ forever start jetsonserver.js
- Login to Web portal with 'Admin' account.
- Update PowerBI configuration (Reports->Configuration) for 'Reports' and save configuration.
- Update PowerBI configuration (Reports->Configuration) for 'Face Recognition' and save configuration.
- Please refer to Demo Video for solution overview.
Following are the different repositories constituting the solution:
- Aggregator: Module to pull images from camera and make it available for Compute Engine.
- ARMTemplate: Azure Resource Manager template for the solution.
- ComputeEngine: Process captured image.
- FaceComputeEngine: Compute engine for face derection and recognition.
- PowerBI: Reports & visualization templates.
- RESTServer: Backend server for the solution.
- WebApp: Frontend web application for the solution.
Please report any issue on issues page.