One of the scariest things that can happen to a parent is losing a child in a crowded place. However, while I worked at a zoo, this was a surprisingly common occurrence, as children tend to wander off like curious ninjas. When this happened, standard procedure was that a parent would notify any staff, and they’d call it over the walkie-talkies with a description and name of the child while other staff watched each exit of the zoo.
While this problem was usually resolved relatively quickly by staff spotting the child, I thought it would be interesting to figure out how to create a simple and affordable solution where an image could be uploaded somewhere and a link could be sent to a device that would then take pictures and attempt to recognize the child through facial recognition. Once the child is found, the device could then notify staff of the general location.
There are two major parts to this project: communication and facial recognition. One problem that we ran into at the zoo is that WiFi isn’t available in most locations, however cellular connections were pretty good since the zoo was located in the middle of a large public park in the city.
Because of the network limitations of the location, Hologram and their connectivity platform seemed like a worthwhile solution for the first portion of this project. There is one part where I ran into a problem – downloading the image needed for face recognition. Because of this, I can only use Hologram on the person-to-device boundary, though I will hopefully be able to update the demo as more capabilities are added to the SDK.
Facial recognition is where things get a bit more tricky. Luckily, there is a great open sourced library for facial recognition that works on the Raspberry Pi by a developer named Adam Geitgey. If you’re interested in how this library works, I strongly recommend reading his article here, otherwise the tl;dr is that a known face in an image is turned to gray scale, the image is subdivided into sections and the direction of light in the image is measured and stored, then when a new image is taken, any detected faces in that new image are similarly encoded and compared to the original known image.
Each Friday is PiDay here at Adafruit! Be sure to check out our posts, tutorials and new Raspberry Pi related products. Adafruit has the largest and best selection of Raspberry Pi accessories and all the code & tutorials to get you up and running in no time!