Giter Club home page Giter Club logo

device-usb-camera's Introduction

USB Camera Device Service

Build Status Code Coverage Go Report Card GitHub Latest Dev Tag) GitHub Latest Stable Tag) GitHub License GitHub go.mod Go version GitHub Pull Requests GitHub Contributors GitHub Committers GitHub Commit Activity

Warning
The main branch contains work-in-progress development code for the upcoming EdgeX 3.0.0 release, and is not guaranteed to be stable or working. It is only compatible with the main branch of edgex-compose.

The current stable branch of device-usb-camera is Levski.

Overview

The USB Device Service is a microservice created to address the lack of standardization and automation of camera discovery and onboarding. EdgeX Foundry is a flexible microservice-based architecture created to promote the interoperability of multiple device interface combinations at the edge. In an EdgeX deployment, the USB Device Service controls and communicates with USB cameras, while EdgeX Foundry presents a standard interface to application developers. With normalized connectivity protocols and a vendor-neutral architecture, EdgeX paired with USB Camera Device Service, simplifies deployment of edge camera devices.

Specifically, the device service uses V4L2 API to get camera metadata, FFmpeg framework to capture video frames and stream them to an RTSP server, which is embedded in the dockerized device service. This allows the video stream to be integrated into the larger architecture.

Use the USB Device Service to streamline and scale your edge camera device deployment.

How It Works

The figure below illustrates the software flow through the architecture components.

high-level-arch

Figure 1: Software Flow

  1. EdgeX Device Discovery: Camera device microservices probe network and platform for video devices at a configurable interval. Devices that do not currently exist and that satisfy Provision Watcher filter criteria are added to Core Metadata.
  2. Application Device Discovery: The microservices then query Core Metadata for devices and associated configuration.
  3. Application Device Configuration: The configuration and triggering of device actions are done through a REST API representing the resources of the video device.
  4. Pipeline Control: The application initiates the Video Analytics Pipeline through HTTP Post Request.
  5. Publish Inference Events/Data: Analytics inferences are formatted and passed to the destination message bus specified in the request.
  6. Export Data: Publish prepared (transformed, enriched, filtered, etc.) and groomed (formatted, compressed, encrypted, etc.) data to external systems (be it analytics package, enterprise or on-premises application, cloud systems like Azure IoT, AWS IoT, or Google IoT Core, etc.

Getting Started

Learn how to configure and run the service by following these instructions.

For a full walkthrough of using the default images, use this guide.

For a full walkthrough of building custom images, use this guide.

Learn More

General Usage
Device Discovery
Advanced Options

Testing

Postman Collection
Postman Collection Environment

References

License

Apache-2.0

device-usb-camera's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.