dockerhub repo and image: maker1/myrepo1:MF8080
In many situations a sophisticated multi-factor authentication solution is required. Intel's neural computing stick enables a sophisticated AI-based multi-factor authentication solution.
What it does
MFLock combines login, PIN and a fast facial match to provide a sophisticated multi-factor authentication solution. Amongst its many use-cases, one classic use-case for MFLock is the authentication required to gain access to a locked property (lockbox).
The multi-factor authentication scenario for locked property access is as follows. The agent must first log into (authenticates) a PIN information server to see the list of active properties and obtain the property specific PIN. Next the agent authenticates with the on-premise AI@edge device using facial match and the property specific PIN to gain access to the lockbox (or the property.) Both the server and the edge device capture all authentication event related data.
How I built it
I prototyped a PIN information server called MFLock Property Access Application which runs on DeepCloudAI. The server is implemented using Flask framework in python programming language. The presentation video gives a demo of the functionality of this prototype.
The on-premise AI@edge device solution is an Intel NCS enhanced Raspberry Pi 3 with camera and display modules. This on-premise AI@edge device performs authentication using PIN and AI-based facial match. It communicates with the above PIN information server both periodically and during specific events to exchange authentication data and status.
I am working on implementing the prototype of the on-premise AI@edge device solution. The facial match model is being developed using Tensorflow and trained using facial recognition datasets.
Challenges I ran into
Since I could not join a team, my first challenge was to generate a good idea which can be prototyped. I worked thro several different AI@edge ideas (including a chatbot). Finally, I came up with the idea of MFLock based on fast facial match to augment the current PIN based solution (which will exploit Intel's NCS AI accelerator functionality).
My next challenge was to come up with a scalable overall architecture for the multi-factor authentication solution concept.
Before I began the design and implementation of the server side prototype, I tried to learn the deployment of docker containers on the DeepcloudAI platform. I had to iterate thro several builds and deploy cycles of a simple hello world implementation to get a hang of what port #s and configurations work. The main challenge was debugging both the docker containers as well as the issues with its deployments on the DeepCloudAI. Next I accelerated the coding of a prototype of the PIN information server functionality by using Flask framework (python). I now have a working prototype which I demo in the MFLock presentation video.
The prototype of the AI@edge solution implementation is in a preliminary state. I identified a neural net based facial match learning algorithm. I am currently developing the Tensorflow model. The NCS based facial match is NOT yet completed. The remaining next challenge is to integrate and test out the edge side system and software.
Finally I have to implement and test out the complete system including the data exchange and software upgrade capability.
Accomplishments that I'm proud of
I learnt to generate and try out several ideas in quick succession. This was challenging since I have been a 1-person team.
Implementation-wise, I had to experiment and learn the toolchain for DeepCloudAI, NCS and facial match algorithms. I am very proud that I completed a working prototype of the server side functionality. I am now working on the neural network model using TensorFlow for quick facial match (based on a recent paper).
I have documented earlier what the next set of challenges will be in terms of system integration and testing.
What I learned
Development toolchain for DeepCloudAI, NCS and facial match algorithms. Debugging of the DeepCloudAI deployment of docker containers especially port configuration challenges and quick iteration to figure out what really works.
What's next for MFLock
Complete the prototype and measure the quality of facial match authentication. This edge based MF authentication can be used in many other scenarios. The prototype should help to raise seed funding to take the solution to a Minimum Viable Product level.