All Projects → collabnix → Pico

collabnix / Pico

Object Detection and Analysis Made easy using Raspberry Pi, Apache Kafka, AWS Rekognition & Docker

Projects that are alternatives of or similar to Pico

Please Contain Yourself
A Docker tutorial written for people who don't actually know Docker already.
Stars: ✭ 385 (+511.11%)
Mutual labels:  containers, docker-compose, docker-swarm
Docker For All
Docker applied in development, devops, testing, product management etc.
Stars: ✭ 88 (+39.68%)
Mutual labels:  containers, docker-compose, docker-swarm
Docker Mastery For Nodejs
Docker Mastery for Node.js Projects, From a Docker Captain
Stars: ✭ 231 (+266.67%)
Mutual labels:  containers, docker-compose, docker-swarm
Dockercheatsheet
🐋 Docker Cheat Sheet 🐋
Stars: ✭ 3,301 (+5139.68%)
Mutual labels:  docker-compose, docker-swarm
video-tutorial-docker
Learn with me and get more knowledge about Docker and Docker Swarm environments.
Stars: ✭ 29 (-53.97%)
Mutual labels:  docker-compose, docker-swarm
Streamingphish
Python-based utility that uses supervised machine learning to detect phishing domains from the Certificate Transparency log network.
Stars: ✭ 271 (+330.16%)
Mutual labels:  jupyter-notebook, docker-compose
Portainer
Making Docker and Kubernetes management easy.
Stars: ✭ 20,434 (+32334.92%)
Mutual labels:  docker-compose, docker-swarm
Swirl
A web UI for Docker, focused on swarm cluster.
Stars: ✭ 332 (+426.98%)
Mutual labels:  docker-compose, docker-swarm
Docker Stacks
DECK is a powerful and high performant local web development studio unlike any other.
Stars: ✭ 376 (+496.83%)
Mutual labels:  containers, docker-compose
Kompose
Go from Docker Compose to Kubernetes
Stars: ✭ 7,348 (+11563.49%)
Mutual labels:  containers, docker-compose
Ambientum
Docker native solution for running Laravel projects. From Development to Production
Stars: ✭ 487 (+673.02%)
Mutual labels:  containers, docker-compose
Deploy Docker Swarm
Deploy scripts for docker-swarm.
Stars: ✭ 17 (-73.02%)
Mutual labels:  docker-compose, docker-swarm
Beyond Jupyter
🐍💻📊 All material from the PyCon.DE 2018 Talk "Beyond Jupyter Notebooks - Building your own data science platform with Python & Docker" (incl. Slides, Video, Udemy MOOC & other References)
Stars: ✭ 135 (+114.29%)
Mutual labels:  jupyter-notebook, docker-compose
Sci Pype
A Machine Learning API with native redis caching and export + import using S3. Analyze entire datasets using an API for building, training, testing, analyzing, extracting, importing, and archiving. This repository can run from a docker container or from the repository.
Stars: ✭ 90 (+42.86%)
Mutual labels:  jupyter-notebook, docker-compose
Prometheus
A docker-compose stack for Prometheus monitoring
Stars: ✭ 3,383 (+5269.84%)
Mutual labels:  docker-compose, docker-swarm
Self Hosted Docker Server Templates
Just some templates to get someone started with hosting various servers in Docker
Stars: ✭ 237 (+276.19%)
Mutual labels:  containers, docker-compose
Giropops Monitoring
Full stack tools for monitoring containers and other stuff. ;)
Stars: ✭ 1,019 (+1517.46%)
Mutual labels:  containers, docker-swarm
Dockercon19
DockerCon "Docker for Node.js" examples
Stars: ✭ 176 (+179.37%)
Mutual labels:  containers, docker-compose
Mongoke
Instant Graphql for MongoDb (active branch is golang, rewrite in process)
Stars: ✭ 203 (+222.22%)
Mutual labels:  containers, docker-compose
Agile data code 2
Code for Agile Data Science 2.0, O'Reilly 2017, Second Edition
Stars: ✭ 413 (+555.56%)
Mutual labels:  apache-kafka, jupyter-notebook

The Pico Project

Object Detection & Text Analytics Made Simple using Docker, Apache Kafka, IoT & Amazon Rekognition System

alt text

What is Pico all about?

Imagine you are able to capture live video streams, identify objects using deep learning, and then trigger actions or notifications based on the identified objects - all using Docker containers. With Pico, you will be able to setup and run a live video capture, analysis, and alerting solution prototype.

alt text

A camera surveils a particular area, streaming video over the network to a video capture client. The client samples video frames and sends them over to AWS, where they are analyzed and stored along with metadata. If certain objects are detected in the analyzed video frames, SMS alerts are sent out. Once a person receives an SMS alert, they will likely want to know what caused it. For that, sampled video frames can be monitored with low latency using a web-based user interface.

The Pico framework uses Kafka cluster to acquire data in real-time. Kafka is a message-based distributed publish-subscribe system, which has the advantages of high throughput and perfect fault-tolerant mechanism. The type of data source is the video that generated by the cameras attached to Raspberry Pi.

alt text

Offerings

  • Pico for AWS
  • Pico for On-Premises(Using Swarm & Kubernetes)

Preparing Your Environment

Items Link Reference
Raspberry Pi 3 Model B Buy Buy
Raspberry Pi Infrared IR Night Vision Surveillance Camera Module 500W Webcam Buy Buy
5MP Raspberry Pi 3 Camera Module W/ HBV FFC Cable Buy Buy

View of Raspberry Pi Stack

alt text

Getting Started

Running Producer inside Docker Container

sudo docker run -it --privileged --device /dev/video0:/dev/video0 ajeetraina/pico-producer-rpi python3 producer_camera.py

Verify that it is running fine

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS               NAMES
81891d992daf        ajeetraina/pico-producer-rpi   "/usr/bin/entry.sh p…"   9 minutes ago       Up 9 minutes                            jolly_dewdney

Setting up Kafka Cluster on Cloud Platform

Running Kafka on Swarm Cluster on AWS

In order to run Kafka on AWS, you need t2.medium instances which doesn't fall under Free Tier. You will need to use your FREE credits or pay for its usage. Alternatively, for development purpose if you are not concerned about performance, you can use GCP instances.

I assume that you have Docker and Docker Compose installed on multiple Swarm Mode Cluster

Cloning the Repository

git clone https://github.com/collabnix/pico
cd pico/kafka
docker stack deploy -c docker-compose.yml mykafka

That's it. Your AWS KAfka cluster is up and running on Docker Swarm Nodes.

Running the Consumer Script

To run the consumer script, we need to focus on two files:

  • consumer.py and
  • image_processor.py

Under the image_processor.py you need to add ACCESS KEY details of your AWS account and under consumer.py you need to add your correct kafka cluster IP.

Here you go..

Just place any object in front of camera module and it shall detect the object automatically with tagging about the object type.

Governance

This project was incubated by Ajeet Singh Raina Docker Captain & Docker Community Leader & Avinash Bendigeri(Data Science Engineer)

Getting Started - The Hard Way

Stage I - Installing Docker on Raspberry Pi
Stage II - Turn Your Raspberry Pi into Night survillience Camera using Docker
Stage III - Deploy Apache Kafka on AWS Platform using Docker Swarm
Stage IV - Pushing the video frame from Raspberry Pi to Apache Kafka
Stage IV - - Preparing AWS Lambda Deployment Package in Python & Testing Kafka Connect AWS Lambda Connector

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].