It was the challenge that most grabbed our attention. We really thought we could learn a lot from completing this project.

What it does

There is a webcam live feed that takes a snapshot when the door bell rings. It detects the face of person or multiple persons with the click of a button, and sends the detected image to the "owner" via email.

How we built it

We started with a raw javascript webcam script that accessed the video tag of HTML5. In order to capture stills we had to change focus to angularJS to create our own webcam tag. In order to get around security problems of writing to disc this webcam module must be hosted on a HTTP Server, we will be using python SimpleHTTPServer. Upon capturing a still, the image is sent to our own python server that we coded to accept a base64 string representation of an image. This is the medium through which we needed to send our image. Our server decodes the image and writes to disc. Our next python script takes said image from file store and uses the openCV API to detect any faces. If multiple faces are detected a separate image file is created for each. Finally we have a script that sends the cropped image to a user(person whose door this is) via email.

Challenges we ran into

Never used angularJS and the openCV before so the syntax was challenging to get our heads around at first. We also learned a lot about VirtualBox settings as that presented enough of a challenge on its own!

Accomplishments that we're proud of

It works! Just to leave the weekend with a working product is awesome.

What we learned

Using APIs. Introduction to writing our own server. Manipulating mail clients. Time management.

What's next for Face Detect Doorbell

Implementing face recognition so that the doorbell recognises friends and relatives and can report who they are. Use the Messenger API instead of sending emails.

Share this project: