Redeye Smart Network Camera

RedEye is a framework to build Intellient Video Network applications. Easily build Streaming Video, Computer Vision and Machine Learning features to your Environmental and Industrial IoT applications.


Not much really. Start with a single Raspberry pi or build a network of 12 Jetson Nano’s with a nice fit control station.

RedEye is smart IP camera software built to run on inexpensive computers with connected cameras like the Raspberry Pi with a CSI or USB camera’s.

The idea is to be able to control a network of cameras providing various video stream(s) to Computer Vision algorithms.

Working Features

RedEye was built to stream video over IP as well take control commands from a network client. With that in mind, RedEye was built with the following features:

  1. Device support is provided by OpenCV, releiving me of programming.
  2. Stream M-JPEG files over HTTP
  3. Plugin system for configurable Computer Vision Pipelines CVP
  4. REST API for the Config, Control and Storage Interfaces
  5. MQTT messaging support for the above APIs
  6. Websocket support for APIs
  7. Embedded Webapp to control camera

Near Term Roadmap

  1. Off device video pipeline (stream to nano for CV Pipeline)
  2. Improve the CV pipeline
  3. Configurable cloud storage options
  4. OpenCV to become a plugin
  5. Stream only (M-JPEG) only support for cameras

Supported Platforms

  • Raspberry Pi 3/4 + CSI Camera
  • Jetson Nano + CSI Camera
  • Ubuntu 19 Desktop + USB Cam (V4L)
  • Macbook Pro and Ait + Built in Camera
  • TODO Windows

TODO OpenCV Plugin and Stream Only

  • Raspberry Pi Zero (stream only)
  • esp32 cam (st)

OpenCV Plugin and Performance

RedEye is built with OpenCV and hence takes advantage of the powerful and flexible device support provided by OpenCV. With that, we get an amazing amount of power and flexibility right out of the box, and do not have to do too much hard work to get there.

However, it does come at quite a footprint regarding memory, and the build time on smaller devices is ridiculous by todays standards (I feel like a spoiled brat).

The idea then is to simply have the camera stream video to the A/I module on another system. That requires the following to that going, Computer Vision module to read streaming video from network.

That way, the smart module, can just suck the video down from a player that only knows how to stream the video.

OpenCV and Pipeline Plugins

  • Built with OpenCV
  • Video Pipeline plugins
    • Face detection


Camera Control

  • Play
  • Pause
  • Snap

Camera Config

  • Resolution
  • Frames Per Second
  • Format


  • Location
  • GetClips
  • GetSnapshots
  • SaveClip
  • SaveSnapshot

Otto Discovery

  • Otto Discovery with MQTT
    • requires an MQTT broker
    • optional if broker is MQTT broker is NOT present



View Github