Skip to content

WatchBot uses artificial intelligence to detect objects in video feeds, and alerts to Telegram

License

Notifications You must be signed in to change notification settings

marktheunissen/watchbot

Repository files navigation

WatchBot Logo

Watchbot: artificial intelligence on video streams

  • Uses Movidius Neural Compute Stick plugged into a Raspberry Pi
  • If matching a label (e.g. person, dog, car), post the alert image to a Telegram channel

Other features:

  • Schedule on/off times
  • Telegram bot provides a control and configuration interface
  • Flexible control using Google PubSub messages to turn on & off
  • Video scene region of interest masking and cropping
  • Healthchecks, heartbeats, alerts when system is down
  • Auto recovery when camera connection is lost
  • Send system errors to Telegram from the main systemd journal
  • Automated restart if frame rate drops
  • Telegram rate limiting to prevent flooding

Dependencies

  • Intel Movidius NCS (original version)
  • OpenCV
  • GoCV
  • gstreamer

Developing

Watchbot needs the Movidius SDK, so it's necessary to develop on Linux. For this I have an Ubuntu VM, 16.04, with a clone of this repo, and go + deps installed there.

Basic setup steps:

  • Install Go
  • Install the Movidius SDK. Requires SDK version 1, as the Go bindings are not updated yet in 2.
  • make install on SSD mobilenet from the appzoo
  • make install on GoCV

About

WatchBot uses artificial intelligence to detect objects in video feeds, and alerts to Telegram

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published