marktheunissen / watchbot

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

License:GNU General Public License v3.0


Languages

Language:Go 99.8%Language:Makefile 0.2%