The TASS Network is made up of IoT connected video cameras that communicate with a local server to identify known people or intruders through the use of a convolutional neural network. Users can train their A.I. via the IntelliLan Management Console, as little as 10 images are required for the A.I. to successfully identify a known person. The cameras first identify if a face is present, and then send detected faces to the IntelliLan local server via the IoT JumpWay, where the A.I. will process the frame. In the event of a known person or intruder the server communicates with the IoT JumpWay and if rules are in place they will be executed.
The IoT connectivity is managed by the TechBubble IoT JumpWay, an IoT PaaS I have developed which primarily, at this point, uses secure MQTT protocol. Rules can be set up that can be triggered by sensor values/warning messages/device status messages and identified known people or intruder alerts. These rules allow connected devices to interact with each other autonomously, providing an automated smart home/business environment.
During the development phase, 4 A.I. solutions have been used and tested before settling at the current solution. Initially the recognition and identification took place directly on the camera devices.
- The first solution was to use OpenCV and Haarcascades with an Eigenfaces model, users could upload their training data which was sent to the device via MQTT for training. This solution was good as a POC, but identification was not accurate enough. The solution has now been opened up as an example for the IoT JumpWay Developer Program. (See links below).
- The second solution was developed whilst at the IoT Solutions World Congress Hackathon in Barcelona, and won our team the Intel Experts Award for building a deep learning neural network on the Intel Joule. This solution included OpenCV to detect faces, and Caffe to identify them, although we managed to build the network on the Joule, we were unfortunately unable to complete the full functionality, but had a great time working on the project and were honoured to win the Intel Experts Award.
- The third solution was to use OpenCV to detect faces and pass them through a custom trained Inception V3 model using Tensorflow. I created the ability to carry out transfer learning directly on the device (Raspberry Pi). Users could upload their training data which was sent to the device via MQTT for training. This solution was a massive improvement and accuracy for detecting trained people was almost 100%, unfortunately I identified an issue which I now know to be a common issue at the moment, where the network would identify anyone that was unknown as one of the trained people. I am currently writing a Python wrapper for the Tensorflow/Inception/IoT JumpWay method and the project will soon be released as an IoT JumpWay example.
- For the 4th and current solution, I now use a system that I developed on the foundations of OpenFace. I moved to using a local server to house the A.I. (Ubuntu) rather than doing the identification onboard as the identification onboard using an RPI was quite poor. This move means that training is only required on the server rather than all devices. As with the Tensorflow implementation, I came across the issue of unknown people being identified as known people. I have so far resolved this issue through the use of an unknown class, although this solution may not work across the board, I am working on additional solutions with the OpenFace GitHub community which incorporate multiple models that will verify the identification.
INTELLILAN MANAGEMENT CONSOLE:
The IntelliLan Management Console is essentially an IoT JumpWay application, capable of controlling all IntelliLan devices on its network and communicating with the IoT JumpWay. Users can use the console and manage their devices using their voice which is powered by an TOA, an A.I. agent developed to assist home and business owners to use TechBubble web and IoT systems. The console is hosted on a secure NGinx server that has an A+ Qualys SSL rating to ensure privacy and security of the end user. Each IntelliLan location has its own domain name and MySQL/MongoDB database hosted on the TechBubble Server which allows for data to be stored and the creation of user accounts. The TechBubble App Development team are also working on platform specific applications such as Windows, Android, iOS etc.
The current version of the camera device is running on both Raspberry Pi & Edison, although so far the Edison does not perform as well and crashes sometimes. Our next planned stages are to build the camera device on an Intel Joule and move the local server from an Ubuntu machine to an Intel Nuc, as well as integrating the Intel Computer Vision SDK.