SPDX-License-Identifier: Apache-2.0
Copyright (c) 2019 Intel Corporation

Open Visual Cloud Smart City Application on OpenNESS - Solution Overview

OpenNESS Introduction

OpenNESS is an open-source software toolkit that enables easy orchestration of edge services across diverse network platforms and access technologies in multi-cloud environments. It is inspired by the edge computing architecture defined by the ETSI Multi-access Edge Computing (MEC) Framework and Reference Architecture and the 3GPP System architecture for the 5G System TS 23.501.

OpenNESS leverages major industry edge orchestration frameworks, such as Kubernetes* and OpenStack*, to implement a cloud-native architecture that is multi-platform, multi-access, and multi-cloud. It goes beyond these frameworks, however, by providing the ability for applications to publish their presence and capabilities on the platform and for other applications to subscribe to those services. Services may be very diverse:

  • Providing location and radio network information
  • Operating a computer vision system that recognizes pedestrians and cars, and then forwards metadata from those objects to downstream traffic safety applications.

OpenNESS is access network agnostic, as it provides an architecture that interoperates with LTE, 5G, WiFi*, and wired networks. In edge computing, dataplane flows must be routed to edge nodes with respect to a physical location (e.g., proximity to the endpoint, system load on the edge node, and special hardware requirements). OpenNESS provides APIs that allow network orchestrators and edge computing controllers to configure routing policies uniformly.

Open Visual Cloud Introduction

Open Visual Cloud is an open-source project that offers a set of pre-defined reference pipelines for various target visual cloud use cases. These reference pipelines are based on optimized open-source ingredients across four core building blocks (encode, decode, inference, and render), which are used to deliver visual cloud services.

Open Visual Cloud provides access to open-source interoperable building blocks that allow developers to create and deliver an enhanced visual experience for end users. Open Visual Cloud is a set of reference pipelines built with optimized open-source ingredients that demonstrate to developers how to construct visual cloud services. By starting with these reference pipelines, developers can achieve rapid development and innovation in creating and delivering the enhanced visual experience to modern consumers. The reference pipelines are provided as Dockerfiles to simplify container image construction and deployment in cloud environments. The goal of Open Visual Cloud is to unleash innovation, simplify development, and accelerate time to market for visual cloud services by providing open-source, interoperable, high-performance building blocks, and containerized reference pipelines.

Smart City Edge Application Introduction

The Smart City reference pipeline shows how the integration of various media building blocks, including SVT, with analytics powered by the OpenVINOTM Toolkit. Smart City use cases include traffic control/city planning as the starting point. This Smart City sample (not a finished product) can be referenced by developers to ease application development challenges. It enables real-time analytics of live video feeds from IP cameras.

The Smart City sample when deployed on Edge nodes based on OpenNESS creates an impactful edge computing use case that utilizes the capability of OpenNESS, Open Visual Cloud, and OpenVINO™.

OpenNESS provides the underpinning network edge infrastructure which comprises three edge nodes (hosting three Smart City regional offices). The media processing and analytics utilizing the Open Visual Cloud software stack are executed on the network edge nodes to reduce latency. The analytics data are aggregated to the cloud for additional post-processing (such as calculating statistics) and display/visualization.

Smart City Architecure Deployed with OpenNESS

The Open Visual Cloud website is located at the Open Visual Cloud project. Smart City sample source code and documentation are available on GitHub and its integration with OpenNESS is available at OpenNESS branch.

The Smart City Building Blocks

The Smart City sample consists of the following major building blocks:

Smart City Building Blocks

  • Camera Provisioning: Tag and calibrate cameras for installation locations, calibration parameters, and other usage pattern information. Not fully implemented.
  • Camera Discovery: Discover and register IP cameras on specified IP blocks. Registered cameras automatically participate in the analytics activities. See the Sensor README for additional details.
  • Recording: Record and manage segmented camera footage for preview or review (at a later time) purpose.
  • Analytics: Perform analytics on live or recorded camera streams. Latency-sensitive analytics are performed on the Edge while others are on the 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 the cloud for archival or further offline analysis. Not fully implemented.
  • Stats: Calculate statistics for planning and monitoring purposes on analytical data.
  • UI: Present the above data to users, administrators, or city planners.

Each building block is implemented as one or a set of container services that query from and/or store processing data to the database as follows:

Smart City Data Centric Design

For example, when launched, the analytics service queries the database for an available camera and its service URI. Then the service connects to the camera and analyzes the camera feeds. The resulted analytics data is stored back to the database for any subsequent processing such as triggering alerts and actions.

Smart City App Deployment with OpenNESS

The Smart City application is deployed through the OpenNESS Network Edge architecture, which requires the application micro-services to be adapted to match the distributed nature of the telecommunications network. The application micro-services are deployed across the following sub-networks:

  • Cloud: The UI and the database controller run in the cloud, where the UI displays a summarization view of the active offices and the database controller coordinates the database requests.
  • Office: Most processing logics (multiple containers) and a local database reside in a regional office. The services include camera discovery, object detection, and other maintenance tasks such as clean up and health checks. There can be multiple offices.
  • Camera: A set of cameras, possibly connected through the wireless network, are hosted on a different camera network.

The three edge nodes (representing three regional offices) are connected to the OpenNESS controller. All three nodes also have connectivity to the public/private cloud. The following are the typical steps involved in the deployment of the application using OpenNESS.

  1. The OpenNESS controller enrolls the three Edge nodes.
  2. Each Edge node sends the request for interface configuration.
  3. The OpenNESS controller configures the interface policy for upstream and downstream for each node.
  4. The OpenNESS controller deploys the Smart City VM to each edge node.
  5. The OpenNESS controller configures the DNS and traffic policy for the applications on each node.
  6. The Smart City VM starts on the edge node and launches the Smart City office services.

When a Smart City office is launched, the office performs the following launch steps:

  • Register the office to the cloud database. Any subsequent web request to display any office-specific data (such as system workload or thumbnail of any recordings) will be then redirected back to the office.
  • Discover available cameras on the camera network with the ONVIF protocol. The camera service URIs will be stored in the database.
  • The analytics services query the database for available cameras and attach them to the cameras for streaming input. The processed analytics data will be sent back to the database.
  • Other services run on the database records such as health check and recording storage cleanup.

The Cloud and Camera parts of the Smart City Application are not part of the deployment and are assumed already running. Upon a complete deployment, the Smart City UI shows a glance of the three offices and their activities as follows: