EYE on NPI – SLN-VIZNAS-IOT Secure Facial Recognition Solution #EyeOnNPI #DigiKey @NXP @DigiKey
Channel: Adafruit Industries
Date: 21/01/2021

This week's EYE on NPI is heavy on the EYE - with a new machine learning edge development kit from NXP (https://www.digikey.com/en/product-highlight/n/nxp-semi/sln-viznas-iot-secure-face-recognition-solution) for facial recognition that doesn't require a cloud backend or heavy duty Linux OS install.  The NXP SLN-VIZNAS-IOT (https://www.digikey.com/en/products/detail/nxp-usa-inc/SLN-VIZNAS-IOT/13547507) is an all-in-one microcontroller powered face recognition system that uses the powerful i.MX RT106x processor you may be familiar with from the Teensy 4 (https://www.adafruit.com/product/4323). This powerful Cortex M7 processor, running at 600 MHz, has enough oomph and peripherals to read two cameras (for stereoscopic vision) and run machine learning algorithms on it to learn and recognize faces within a few seconds.

Because it's a microcontroller, you get to take advantage of the OS-less operation to go into deep sleep mode, and, say, get woken up by a PIR sensor or other proximity/motion detector. So it will work great for battery powered operations. The dev kit is all-in-one ready to go and once you've tried it out successfully, you can then purchase the raw BGA MIMXRT106F chips (https://www.digikey.com/en/products/detail/nxp-usa-inc/MIMXRT106FDVL6A/10815624) to integrate directly with your product design and modify the firmware for your peripheral needs. Code for the example project is available in MCU Xpress IDE so you can build off of the demo quickly.

The VIZNAS has a nifty way of learning new faces. When plugged into a USB port on a computer, it enumerates as a generic camera and serial port. The camera can be controlled by the CLI or through onboard buttons. Using your computer, you line up the on-screen display (OSD) over the face you want it to learn. After moving around a little, the OSD will tell you it was able to learn the face or not. (https://www.nxp.com/document/guide/get-started-with-the-sln-viznas-iot:GS-SLN-VIZNAS-IOT?tid=van/SLN-VIZNAS-IOT/STARTNOW) Once learned, the system will be able to re-recognize an existing face (don't forget to use the CLI to save the facial data, it isn't permanently stored by default). I liked how appearing as a camera is a 'cute hack' to get around the fact that there is no TFT display on the dev kit itself

In addition to two ultra-bright white lights, there are also two IR lights. Why? Because the camera is actually a stereo RGB and IR camera, so it can be used for night vision modes! Also, the IR camera is used to detect non-human faces, such as printouts, or phone screens, so it cannot be easily hacked. No guarantees if you have a Mission Impossible-style rubber face mask (https://www.youtube.com/watch?v=770nI13-MJs)

There are a few other extras that this engine can do, such as drive an external TFT, use the onboard WiFi and BLE chipset, or detect emotions. There's also levels of strictness that trades off with faces it can recognize and speed. A SWD programmer is needed to develop custom code, but it looks like any J-Link, works fine and the software is otherwise free (licensed with the chip on purchase). Overall we were really impressed at how easy it was to use and how fast it recognized and learned new faces. If you have a project that needs face recognition, and needs low power usage, fast boot times, lightweight OS, or network-less control, the RT106F works great! (https://www.digikey.com/product-detail/en/nxp-usa-inc/MIMXRT106FDVL6A/568-MIMXRT106FDVL6A-ND/10815624)

You can order the NXP SLN-VIZNAS-IOT (https://www.digikey.com/en/products/detail/nxp-usa-inc/SLN-VIZNAS-IOT/13547507) from Digi-Key today for same day delivery. Pick it up tonight and you'll be recognizing faces tomorrow morning!