Skip to content

yolov2-tiny image recognition on a raspberry pi b3+, with flask server, mongoDB and user notifications via email, sms and web app

License

Notifications You must be signed in to change notification settings

stuckatmarine/watchdog

Repository files navigation

Watchdog

Problem

Frank has a dog.
Frank’s dog enjoys being outside for extended periods of time.
Frank’s dog likes to go outside immediately when the upstairs tenants' dogs are outside and come in when they are not.
Frank’s dog also likes to dig and perform other undesirable behaviours when it is bored or would like to come inside.
Frank is often busy and can not monitor his dog 24/7.
Don’t be like Frank.

Noah has a dog.
Noah also has a Watchdog.
Noah is notified if his dog digs or would like to be let inside/outside.
Noah can focus on his studies and not worry about his dog.
Be like Noah.

Solution

The Watchdog (pi) requests a config file from the flask server, if response fails it uses a local file.
It will then take pictures every 'intervalTime' seconds, and check the image for specific objects chosen by the user, using yolov2 or yolov2-tiny.
If a desired object is found the image and yolo log data are sent to the server, stored in a mongoDB (database) and send to the user (SMS/Email/Web-App).
The user configuration can be changed in real time on the web-app or locally on the Watchdog.

Getting Started

Each sub folder has a respective portion of the stack and instructions on how to get it up and running on your local machine for development and testing purposes. The Watchdog database just base MongoDB, so no there is no need to store related files here as it is hosted on Google Cloud (Flask will auto connect to this so internet is required).

.
├── /flaskApp/       # Backend Flask app
├── /piApp/          # Rasberry Pi object detection
├── /webApp/         # Isomorphic web app

Architecture

Stack Diagram

Watchdog Stack Diagram

Sample Use Case

Watchdog Use Case Diagram

Task List

Watchdog Sketch and Task List

First Iteration - Minimum Viable Product

  • object recognition on raspberry pi
  • server to communicate with pi/user/database
  • web app for server/database configuration
  • Specifiy parameters for user to be notified about
  • Notify user via email/sms

Second Iteration

  • Optomize object recognition w tiny weights

Third Iteration

  • Android application user interface for configuration/notifications
  • Train dog-digging data and add to classes

Authors

Andrew Nash Mark Duffett
Web App & Backend Raspberry Pi Object Detection

License

Licensed under SPDX standard BSD-4-clause

About

yolov2-tiny image recognition on a raspberry pi b3+, with flask server, mongoDB and user notifications via email, sms and web app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published