All Projects → markwest1972 → Smart Security Camera

markwest1972 / Smart Security Camera

Licence: gpl-3.0
A Pi Zero and Motion based webcamera that forwards images to Amazon Web Services for Image Processing

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Smart Security Camera

Awsmobile Cli
CLI experience for Frontend developers in the JavaScript ecosystem.
Stars: ✭ 147 (+42.72%)
Mutual labels:  aws, aws-lambda, aws-s3
Nuxt Serverless
Nuxt.js Serverless SSR Starter on AWS (Lambda + API Gateway + S3) with Serverless Framework
Stars: ✭ 235 (+128.16%)
Mutual labels:  aws, aws-lambda, aws-s3
0x4447 product s3 email
📫 A serverless email server on AWS using S3 and SES
Stars: ✭ 2,905 (+2720.39%)
Mutual labels:  aws, aws-lambda, aws-s3
Serverless Docker Image Resize
Simple serverless image resize on-the-fly - Deploy with one command - Built with AWS Lambda and S3
Stars: ✭ 114 (+10.68%)
Mutual labels:  aws, aws-lambda, aws-s3
Udacity Data Engineering Projects
Few projects related to Data Engineering including Data Modeling, Infrastructure setup on cloud, Data Warehousing and Data Lake development.
Stars: ✭ 458 (+344.66%)
Mutual labels:  aws, aws-s3, aws-sdk
Trackiam
A project to collate IAM actions, AWS APIs and managed policies from various public sources.
Stars: ✭ 115 (+11.65%)
Mutual labels:  aws, aws-sdk, aws-iam
Retinal
🏙 Retinal is a Serverless AWS Lambda service for resizing images on-demand or event-triggered
Stars: ✭ 208 (+101.94%)
Mutual labels:  aws, aws-lambda, aws-s3
Ssm Cache Python
AWS System Manager Parameter Store caching client for Python
Stars: ✭ 177 (+71.84%)
Mutual labels:  aws, aws-lambda, aws-s3
Security monkey
Security Monkey monitors AWS, GCP, OpenStack, and GitHub orgs for assets and their changes over time.
Stars: ✭ 4,244 (+4020.39%)
Mutual labels:  aws, aws-s3, aws-iam
Serverless Photo Recognition
A collection of 3 lambda functions that are invoked by Amazon S3 or Amazon API Gateway to analyze uploaded images with Amazon Rekognition and save picture labels to ElasticSearch (written in Kotlin)
Stars: ✭ 345 (+234.95%)
Mutual labels:  aws, aws-lambda, aws-s3
Serverless Image Processor
AWS Lambda image processor
Stars: ✭ 106 (+2.91%)
Mutual labels:  aws, aws-lambda, aws-s3
Curso Aws Com Terraform
🎦 🇧🇷 Arquivos do curso "DevOps: AWS com Terraform Automatizando sua infraestrutura" publicado na Udemy. Você pode me ajudar comprando o curso utilizando o link abaixo.
Stars: ✭ 62 (-39.81%)
Mutual labels:  aws, aws-lambda, aws-s3
Aws Csa Notes 2018
My AWS Certified Solutions Architect Associate Study Notes!
Stars: ✭ 167 (+62.14%)
Mutual labels:  aws-lambda, aws-s3, aws-iam
Shadowreader
Serverless load testing for replaying website traffic. Powered by AWS Lambda.
Stars: ✭ 138 (+33.98%)
Mutual labels:  aws, aws-lambda, aws-s3
Amazon Rekognition Video Analyzer
A working prototype for capturing frames off of a live MJPEG video stream, identifying objects in near real-time using deep learning, and triggering actions based on an objects watch list.
Stars: ✭ 309 (+200%)
Mutual labels:  aws, aws-lambda, image-analysis
Touchdown
Cloud service orchestration framework for python
Stars: ✭ 10 (-90.29%)
Mutual labels:  aws, aws-lambda, aws-s3
Aws Github Actions
Deploy 🚀 to AWS ☁️ with GitHub Actions!
Stars: ✭ 70 (-32.04%)
Mutual labels:  aws, aws-lambda, aws-s3
Lambdauth
A sample authentication service implemented with a server-less architecture, using AWS Lambda to host and execute the code and Amazon DynamoDB as persistent storage. This provides a cost-efficient solution that is scalable and highly available and can be used with Amazon Cognito for Developer Authenticated Identities.
Stars: ✭ 1,365 (+1225.24%)
Mutual labels:  aws, aws-lambda
Torchlambda
Lightweight tool to deploy PyTorch models to AWS Lambda
Stars: ✭ 83 (-19.42%)
Mutual labels:  aws, aws-lambda
Python Lambda
A toolkit for developing and deploying serverless Python code in AWS Lambda.
Stars: ✭ 1,247 (+1110.68%)
Mutual labels:  aws, aws-lambda

smart-security-camera

This project elevates a Pi Zero simple webcamera with Motion Detection into a smart security camera by adding Cloud based image analysis via AWS Rekognition.

You can read more about this solution in the following blog posts:

You can also check out this presentation from JavaZone 2017 where I describe the solution. The slides from this talk are also available.

Java or Node.js?

Both Java and Node.js versions of the AWS Lambda Functions are provided. Due to naming differences I have also provided seperate Step Function definitions for both the Java and Node.js versions.

Heres another blogpost that describes the differences between the two versions.

Contents

  1. s3-upload: Handles upload of image files from Pi Zero to Amazon s3.
  2. motion-config: Configuration files for Motion (running on a Pi Zero).
  3. aws-lambda-functions: Choose between Node.js or Java source code for all AWS lambda functions.
  4. aws-step-functions: JSON definitions for orchestration of AWS Lambda Functions.

How to use

Note that this repository is provided as a record of my Smart Camera Project, which was originally created in December 2016 and further developed through to early 2018. It is a record for those interested and is not actively supported.

All the code is provided as is, and it is left to the user to work out the fine details for themselves. The AWS documentation is very useful here. Remember that GIYF.

Each subdirectory in this repository has simple instructions. Note that there are naming dependencies in this project, so make sure that any naming changes are applied across the repository.

Prerequisites

The following prerequisites are required for working with this repository.

AWS Credentials
  1. AWS Credentials.
  2. You'll also need to be using a AWS Region that supports Rekognition, Step Functions, Lambda, s3 and SES (for example 'eu-west-1').
S3 Bucket
  1. You'll need a s3 bucket where your images can be uploaded for processing.
  2. The bucket will need two root directories : "/upload" and "/archive".
  3. Directly under the "/archive" directory, create the "/alerts" and "/falsepositives" subdirectories.
  4. In the "Permissions->Bucket Policy" tab for your S3 Bucket, set up the following Bucket Policy:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::your-bucket-name",
                "arn:aws:s3:::your-bucket-name/*"
            ]
        }
    ]
}

To make your S3 even more secure you can swop "*" with the full ARN for the IAM role associated with your nodemailer-send-notification or ses-send-notification Lambda Function.

Suggested Implementation Plan

  1. Set up your PiZero webcamera with Motion.
  2. Create an AWS account.
  3. Create an S3 Bucket.
  4. Implement s3-upload from PiZero to S3 Bucket.
  5. Implement all your aws-lambda-functions and test them individually.
  6. Implement your aws-step-function. Test it.
  7. Set up the S3 Trigger (Java or Node.js) that triggers the Step Function.
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].