The NVIDIA Jetson Nano, which comes with 128 CUDA cores brings accelerated AI processing and inferencing to developers who wants to build simple AI applications. You should already have a good understanding of the NVIDIA Jetson Nano by now, as we have previously gave an introduction to the developer kit, as well as ran a few demo AI applications on it. As promised, in this article, we will focus on our experience with developing an AI application on the Jetson Nano.
The objective of our application is to use facial recognition technology as a means to distinguish between authorised and unauthorised personnel. Once a personnel is deemed to be authorised, the system will proceed to unlock a physical door to permit entry into a restricted compound. Without further ado, let’s proceed to walk through and elaborate more details about the construction of the application.
1. Acquisition of Hardware
Before indulging into an endless hacking session with the Jetson Nano, we had to acquire the necessary hardwares needed in our application.
Since we are working towards a facial recognition system, we will definitely need a compatible camera module to perform detection and encoding of faces. We have a relay as well, which will be connected to the physical door. It will serve as a mechanism to unlock the door. Apart from the core electrical components, we have decided to make things slightly fanciful by incorporating a LCD display, which will merely be used to display a personnel’s name upon authorisation.
To connect our components onto the Jetson Nano board, we referred to the Pinout schematic shown in this link.
2. Choosing a Face Recognition Library
For our application, we will be using a facial recognition library as part of our implementation. The Github repository can be found here. This library is written in Python (supports 2.7 & 3.3+) and it boasts to have 99.38% accuracy on the Labeled Faces in the Wild benchmark. Furthermore, this library provides a rich set of features for us to customise and implement our core functionalities.
If you want to implement a system related to facial recognition, you may wish to explore the Github repository, where they demonstrate other use cases of this library through a series of tutorials.
3. Installation of Software Libraries
IMPORTANT: Before getting hasty, it is strongly recommended to follow the library’s installation guide for Jetson Nano here.
The installation guide will walk you through a series of steps, from setting up your Jetson Nano to constructing your very first facial recognition project. It is very comprehensive and the source code provided by the author can serve as a basic building block for other related projects as well.
After acquiring the necessary hardwares and installing the required software libraries, we went ahead to complete our software application. Then, we loaded images of our own personnel so that the system will flag them as authorised if they look into the camera. Other than writing codes to incorporate the relay and LCD module, the overall program is almost similar to the code provided by the installation guide (just a little tweak). Finally, we deployed and used the facial recognition system as an alternative to enter our office.
Overall, the Jetson Nano provides the necessary hardware needed to work on experimental AI projects, like the one that we have just built. NVIDIA also has an active developer community, where it is easy to consult for solutions if there are any problem faced during the process of development. There are ample of resources available online that will provide information regarding Jetson Nano. Being offered at such a good price point, it is definitely worth it to ride on the bandwagon of AI with this piece of hardware.