Skip to content
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.
Python JavaScript M4 CSS Shell Dockerfile Other
Branch: master
Clone or download
Latest commit 8a6a800 Dec 3, 2019

README.md

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.

The sample showcases the following pipeline operations using the Open Visual Cloud software stacks:

  • Edge Low-latency Analytics:

  • Smart Upload with Transcoding:

The following diagram illustrates how the sample is constructed: a set of services each retrieves the work order by querying the database and submits the processing results back into the database. See also: Content Search.

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 and m4 if they are not available on your system.

  • Docker Engine:

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:

mkdir build    
cd build     
cmake ..    
make     

See also: Customize Build Process.

Start/stop Sample:

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

make start_docker_compose      
make stop_docker_compose      

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

make update
make start_docker_swarm      
make stop_docker_swarm      

See also: Docker Swarm Setup.

Use the following commands to start/stop Kubernetes services:

make update
make start_kubernetes
make stop_kubernetes

See also: Kubernetes Setup.

Launch Sample UI:

Launch your browser and browse to https://<hostname>. You should see something similar to the following 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

You can’t perform that action at this time.