IBMStreams/streamsx.edgevideoanalytics.starterkit

Name: streamsx.edgevideoanalytics.starterkit

Owner: IBM Streams

Description: An end-to-end video analytic demonstration performing video analytics on edge devices and centralized system

Created: 2017-05-11 12:56:35.0

Updated: 2017-12-11 18:27:54.0

Pushed: 2017-09-18 02:06:42.0

Homepage: null

Size: 1117

Language: Java

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

streamsx.edgevideoanalytics.starterkit

An end-to-end video analytic demonstration performing video analytics on edge devices and centralized system.

Performing Video analytics at the Edge (in smarter IoT devices or gateways) has many applications. The kit can be used to jump-start the development of application specific systems.

The kit is a work in progress. See Status below.

The Smart Camera IoT Device portion of the kit was part of the ApacheCon/ApacheIoT 2017 talk: “Video Analytics at the Edge: Fun with Apache Edgent, OpenCv, and a Raspberry Pi”. Slides Audio

Video Analytics at the Edge

In short the idea is to evolve from a system like that in the upper image in this system evolution sketch, one with raw video feeds into an on-premise video analytic system that does general face detection and then specific face recognition, to a system like the lower image, with a smart IoT device that does the face detection, with cloud based streaming analytic applications doing additional analytics such as the face recognition.

The IoT hub can either be a general MQTT broker such as Apache ActiveMQ or it can be IBM Watson IoT Platform (or to Apache Kafka with a small change to the app; and new Kafka*ClientApp simple client apps). The following sketch is for the WIoTP mode configuration system sketch.

Here's a demo screenshot. TBD watch this video.

The kit consists of an end-to-end demonstration system comprised of a controllable Smart Camera IoT device that performs general face detection, publishing face detection events to the cloud, and a cloud based Streaming Analytic application that subscribes to these events and performs specific face recognition processing on them.

The kit also includes simple client applications that connect to the IoT hub to “send” commands to the device and to subscribe to detection events and render the detected object's image.

The system promotes creation of a “smarter analytic edge device” to:

The Smart Camera IoT device uses:

The backend IBM Streams cloud based analytics part of the kit uses:

Status (11-May-2017)
Getting Started

The smart camera device can be setup and deployed independent of the centralized streaming analytics. The included simple client applications can interact with it via the IoT hub.

A Raspberry Pi is not required. The smart camera device Edgent application runs on any system that supports Edgent and has OpenCV installed. The smart camera application was initially developed on a MacBook Pro using its camera.

For the smart camera device see smartcamera.device/README.md

For the centralized streaming analytics see analytics.streams/README.md

External Dependencies

Details regarding the dependencies can be found in the smartcamera.device and analytics.streams component's documentation.

License

The source code for the app is available under the Apache license, which is found in LICENSE in the root of this repository.

Contributors


Jerome Chailloux - jerome.chailloux@fr.ibm.com
Dale LaBossiere - dlaboss@us.ibm.com, dlaboss@apache.org


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.