top of page
Writer's pictureRobert Thas John

MLKit Helps Kudi Accomplish On-Device Face Detection


A photo of a face model

At Kudi, we believe that people of all classes should have access to financial services and seamlessly perform transactions. We make this possible through our agency banking network.


Agents sign up on the Kudi platform using an Android application. Because we provide financial services, we are required to capture Know Your Customer (KYC) information. One of those requirements is a photograph.


In the early days we let users capture and upload photographs without controls. This led to some interesting discoveries. To put it mildly, some individuals had the idea to utilize inanimate objects as their photographs.


This is clearly a regulatory no-no that could get us into a lot of trouble if it continued. There was also the need to verify that the submitted photographs belonged to the individuals submitting them, but that is a different story.


How then were we to solve this face detection problem? We could either attempt this on-device, or send the photo off to a cloud-based endpoint. The second approach would take longer to accomplish, and would be more expensive.


An on-device approach would require embedding a Machine Learning (ML) face-detection model. Were we about to turn our Android engineers into ML engineers? To summarize, we had to solve three problems:

  • Know when users were uploading non-human photos

  • Know when users were uploading photographs of photographs

  • Know when users were uploading photos that didn't belong to them


MLKit provides "Machine Learning for mobile developers". In their own words, they bring "Google's machine learning expertise to mobile developers in a powerful and easy-to-use package".


MLKit provides an SDK that provides face detection, amongst other functionality. Some of the capabilities of face detection include the following useful features:

  • getting the coordinates of eyes, ears, cheeks, nose and mouth

  • recognizing facial expressions


The above capabilities made it possible to detect human faces, as well as perform a liveness check. By asking the user to perform a certain action, such as blinking or smiling, we could tell that we were dealing with a live human in front of the camera. This also ensured that the human face was properly oriented in the camera.


The above capabilities helped us solve the first two problems. We will discuss the third problem in a future post.


One of our Android engineers delivered a talk about using MLKit which you can find here.

 

If you find our use of technology to be of interest and would like to join our team, please take a look at our careers page here, or drop us a note at engineering@kudi.com. Also, please subscribe to receive updates from us on new posts and job openings.

207 views0 comments

Recent Posts

See All

Comments


Commenting has been turned off.
Post: Blog2_Post
bottom of page