Utility-driven optimization and placement framework for Visual IoT analytics over edge-cloud environments (2020)

Internet of Things (IoT) applications generate massive amounts of real-time data. A large amount of this data is visual data that comes from cameras. Reports by Information Handling Services (IHS) indicate that 245 million professionally installed surveillance cameras are operating worldwide as of 2015. We refer to the data coming from such cameras as Visual IoT data. Recent advances in computer vision and neural networks have made it possible for more visual IoT data to be automatically searched and analyzed by algorithms rather than humans. This happens in parallel with advances in Edge computing and Serverless computing. Edge computing, has emerged to allow analyzing visual IoT data closer to where it is generated, and hence avoiding sending vast amounts of visual data streams to be analyzed in one remote location. On the other hand, serverless computing facilitates the analysis of such streams by allowing users to deploy individual analysis functions in user-owned edge devices or public cloud infrastructure.&#13;\nIn this dissertation, we argue that the current video analytics systems are not keeping up with such advances. For example, video encoders have been designed for a long time to please human viewers and be agnostic of the downstream analysis tasks (e.g., object detection). Moreover, existing video analytics systems fail to leverage pipeline parallelism when distributing the analysis across edge and cloud devices. Existing systems also do not address several challenges associated with deploying analytics functions on public cloud infrastructure. Such challenges include performing hybrid edge and cloud analytics in a price-efficient manner as well as protecting the privacy and confidentiality of users' sensitive data against misuse by the edge/cloud provider.&#13;\nWe address the above challenges by: (1) building a framework for processing visual data streams across edge and cloud compute resources, (2) developing algorithms that identify the best placement of computations across edge and cloud resources to optimize various utilities (e.g., latency, bandwidth, price, and privacy), and (3) building the systems that validate the effectiveness of the optimization algorithms and their ability to control the tradeoff between different utilities. The framework and the algorithms optimize various utilities and address the tradeoffs between them. The first algorithm focuses on optimizing the bandwidth by detecting the events of interest in videos closer to where the video is generated. To achieve this, we develop a Semantic Video Encoding technique in which we redesign the video compression algorithms at the camera to be aware of the edge-based downstream analysis tasks. This allows compressed videos to be easily analyzed by algorithms rather than humans because the downstream tasks can search the compressed video for the parts that are relevant to the overall analysis goals.&#13;\nThe second algorithm focuses on optimizing the application's end-to-end latency. To achieve this, we develop an Operator Placement algorithm that is given a processing job expressed in the form of a Directed Acyclic Graph (DAG) of operators/functions, it finds which operators to place on an edge device and which operators to place on a remote cloud server. &#13;\nThe third algorithm is a price optimization algorithm which optimizes the price of deploying visual IoT analytics applications in serverless computing platforms (e.g. AWS Lambda). &#13;\nThe fourth algorithm focuses on optimizing the end-to-end latency of computation while maintaining data privacy. To achieve this, we leverage trusted execution environments (e.g., Intel-SGX) which allow users to execute machine learning predictions on visual IoT data while maintaining data confidentiality. To speed up the machine learning predictions, we develop a technique to find the best partitioning of neural networks computation across multiple trusted execution environments.