Developing Face Recognition Applications for embedded products
Facial recognition is a biometric identification process that analyses the features of a person’s face to identify them with a level of certainty. Using facial recognition as a form of identification and security is already common with mobile devices. So much so that during the current COVID-19 pandemic, Apple updated its software for facial recognition to work with masks so that users could continue using the feature safely.
With the current social distancing measures in place, facial recognition allows for a contactless but secure identification process. When combined with another technology such as voice recognition or gesture control, processes can be made completely contactless.
As a biometric security identification process, facial recognition does not require the user to carry any items to identify themselves which can increase efficiency during sign-in processes. Facial recognition can also be used as a form of two-factor authentication (2FA) to increase security. For example, a visitor could have to provide photo identification in advance of attendance at a venue to prove their identity. Upon entrance, their face could then be scanned and analysed against their photo identification to verify that it is the same person. This is commonly used at airports.
Experimenting with OpenCV
One of the projects we’re currently working on requires a secure but efficient way of logging in regular visitors/users to a software application. In this particular case, face recognition is perfectly suited as it’s quick and efficient and as it doesn’t require anything except the individual themselves. We began by experimenting with an open source library called OpenCV.
OpenCV provides real-time image recognition of objects, text and people. As you can see from our initial experiments above, it provides very good results with little customisation. In this case, we were using a Raspberry Pi 4 with a standard webcam and an external m.2 drive), and even with this relatively low-performance hardware, we were able to train it to recognise a number of our staff just from one photo of each of them and log that it’s seen them to a database. We even got good results in low light and with face coverings (even if the recognition sometimes took several seconds!). As such, we are now optimising the software, and profiling it on different hardware platforms.
Do get in touch if you would like face recognition built into your product or application!