bdkiran / openObserver

openObserver makes it easy to develop and run embedded software that runs complex machine learning models

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

observer eye

openObserver

OpenObserver is a platform for building and packaging intelligent IOT devices. It emphasizes performance for running machine learning models on resource constrained devices.

About openObserver

The openObserver platform is built to be modular and extensible. Different models and workloads require different needs. To accommodate this open observer has an architecture built around adding and number of steps to complete in any particular task. Drop in any onyx model and provide any pre-and post processing steps to achieve your goal.

Getting Started

  1. Create a new virtual environment

  2. Download project dependencies OpenCV(install complete opencv) and apt-get install libzmq3-dev

  3. pip3 install -r requirements.txt

  4. Download the yolov4 onnx model from the onnx models. Also retrieve the require coco.names and yolov4_anchors.txt file.

  5. In the resources directory and places the files from the previous step in there.

  6. From the root directory, run python3 main.py

Roadmap

  1. convert message que to C++ and Cython. This is under the directory supaque.

  2. Provide object serialization to MessagePack, Cap'n Proto or Protobuff. The serialization framework will be decided later up to suggestions.

  3. Update post processing code to C++.

  4. Create an interface for sending data back to the server using RPC(encoding can be in JSON or protopbuf).

  5. Allow the output to stream video over “web RTC”(probably not technically web RTC but something similar).

  6. Create tests and increase code coverage significantly.

  7. Sufficiently document each individual module or sub project.

Special Thanks

This project was heavily inspired by the openpilot project developed by comma.ai. It uses a lot of the same tools and architecture

About

openObserver makes it easy to develop and run embedded software that runs complex machine learning models

License:MIT License


Languages

Language:Python 87.1%Language:C++ 12.9%