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!
Adafruit has had paid day off for voting for our team for years, if you need help getting that going for your organization, let us know – we can share how and why we did this as well as the good results. Here are some resources for voting by mail, voting in person, and some NY resources for our NY based teams as well. If there are additional resources to add, please let us know – adafruit.com/vote
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.