/smart_doorbell

Find out who is ringing your door bell

Primary LanguagePythonMIT LicenseMIT

Smart doorbell

Find out who is ringing your door bell and pass on personalized messages to your visitors when you are not at home.

Neural network

The smart doorbell is based on multilayer perceptron using the database Labeled Faces in the Wild. The network is trained by feeding in (just 8460) pairs of pictures that are either labeled 1 (same person) or 0 (not same person). The architecture of the neural network is visualized in the following picture.

Getting started

This application uses Clarifai's face embedding model. You can create a free account here to get an api key.

In order to use the smart doorbell you have to create a hidden file (you never want to share this information) containting your api key:

foo@bar:~$ echo "your api key" > .clarifai_api_key.txt 

Prerequisites

The code is based on the following packages that have to be installed in advance:

  • NumPy
  • OpenCV
  • Clarifai
  • Tensorflow
  • Keras

Running the test

In order to test the application, I have created Anon's frienst list including:

  • Angela Merkel
  • Angelique Kerber
  • Barack Obama
  • Cristiano Ronaldo
  • Marie Curie
  • Messi
  • Richard Feynman

You can now test if the doorbell works by:

foo@bar:~$ python3 doorbell.py 
  • Press Quit in the first textbox
  • Press l and type test_friend_list/friend_list_anon
  • A message should pop up saying that the friend list has been loaded
  • Show a picture of either of Anon's friends to your webcam and press c
  • A message for Anon's frined (e.g. Hello Marie) should pop up