/Smart-City-Sample

The smart city reference pipeline shows how to integrate various media building blocks, with analytics powered by the OpenVINO™ Toolkit, for traffic or stadium sensing, analytics and management tasks.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

The E2E sample implements aspects of smart city sensing, analytics and management features as follows:

  • Camera Provisioning: Tag and calibrate cameras for installation locations, calibration parameters and other usage pattern information.
  • Camera Discovery: Discover and register IP cameras on specified IP blocks. Registered cameras automatically participate into the analytics activities. See Sensor Simulation and Discovery for additional details.
  • Recording: Record and manage segmented camera footage for preview or review (at a later time) purpose.
  • Analytics: Perform analytics on the live/recorded camera streams. Latency-sensitive analytics are performed on Edge while others are on cloud.
  • Triggers and Alerts: Manage triggers on analytics data. Respond with actions on triggered alerts.
  • Smart Upload and Archive: Transcode and upload only critical data to cloud for archival or further offline analysis.
  • Stats: Calculate statistics for planning/monitoring purpose on analytical data.
  • UI: Present above data to users/administrators/city planners.

Scenarios

The sample implements the Smart-City traffic and stadium scenarios. The traffic scenario measures vehicle/pedestrian flow for planning purpose. The stadium scenario focuses on different access control techniques, including entrance people counting, service-point queue counting, and stadium seating zone crowd counting.

Traffic Stadium

Software Stacks

The sample is powered by the following Open Visual Cloud software stacks:

Install Prerequisites:

  • Time Zone: Check that the timezone setting of your host machine is correctly configured. Timezone is used during build. If you plan to run the sample on a cluster of machines managed by Docker Swarm or Kubernetes, please make sure to synchronize time among the manager/master node and worker nodes.

  • Build Tools: Install cmake, make, m4, wget and gawk if they are not available on your system.

  • Docker Engine:

    • Install docker engine. Minimum version required: 17.05. Make sure you setup docker to run as a regular user.
    • Setup docker swarm, if you plan to deploy through docker swarm. See Docker Swarm Setup for additional setup details.
    • Setup Kubernetes, if you plan to deploy through Kubernetes. See Kubernetes Setup for additional setup details.
    • Setup docker proxy as follows if you are behind a firewall:
sudo mkdir -p /etc/systemd/system/docker.service.d       
printf "[Service]\nEnvironment=\"HTTPS_PROXY=$https_proxy\" \"NO_PROXY=$no_proxy\"\n" | sudo tee /etc/systemd/system/docker.service.d/proxy.conf       
sudo systemctl daemon-reload          
sudo systemctl restart docker     

Build Sample:

Use the following commands to build the sample. By default, the sample builds to the traffic scenario. To enable the stadium scenario, use cmake -DSCENARIO=stadium ... See also: Build Options.

mkdir build    
cd build     
cmake ..    
make     

Start/stop Sample:

Use the following commands to start/stop services via docker swarm:

make update # optional for private registry
make start_docker_swarm      
make stop_docker_swarm      

See also: Docker Swarm Setup.

Use the following commands to start/stop Kubernetes services:

make update # optional for private registry
make start_kubernetes
make stop_kubernetes

See also: Kubernetes Setup.

Launch Sample UI:

Launch your browser and browse to https://<hostname> for the sample UI.


  • For Kubernetes/Docker Swarm, <hostname> is the hostname of the manager/master node.
  • If you see a browser warning of self-signed certificate, please accept it to proceed to the sample UI.

See Also