Inception-V3 transfer learning on an RPI 3, 100% facial identification rate!

So previously we had built TASS on a Raspberry Pi using purely OpenCV, a one layer neural network that uses haarcascades. Unhappy with the identification rate and time the prediction took, I looked into using Tensorflow with help of TechBubble team member Andrej Peteling. In particular we were interested in transfer learning to train the final layer of the Inception V3 model (paper here: https://arxiv.org/abs/1512.00567 ). After a few issues with training, we managed to successfully train the final layer of the Inception V3 model directly on a Raspberry Pi 3, and now have 100% identification rate at almost 95% increase in speed compared to our previous setup. 1, seen in the video, represents my TechBubble Technologies user id, which is in place to uphold privacy of any identified person until the data gets to our server. As of yet, I have not found documentation online of anyone accomplishing training the layer on a Raspberry Pi, so we are very happy with the outcome, and even more happy with the improvement in prediction time and overall accuracy of the identification. After this video was created we stumbled upon some issues which are documented here: https://www.techbubble.info/blog/artificial-intelligence/machine-learning/entry/artificial-intelligence-machine-learning-internet-of-things EARLY STAGE TRAINING LOG: 2016-12-24 02:14:53.428681: Step 0: Train accuracy = 38.0% 2016-12-24 02:14:53.428948: Step 0: Cross entropy = 1.224129 2016-12-24 02:14:53.915460: Step 0: Validation accuracy = 25.0% 2016-12-24 02:14:58.495277: Step 10: Train accuracy = 97.0% 2016-12-24 02:14:58.495489: Step 10: Cross entropy = 0.586082 2016-12-24 02:14:58.930113: Step 10: Validation accuracy = 94.0% 2016-12-24 02:15:03.473702: Step 20: Train accuracy = 100.0% 2016-12-24 02:15:03.473912: Step 20: Cross entropy = 0.406726 2016-12-24 02:15:03.907996: Step 20: Validation accuracy = 100.0% 2016-12-24 02:15:08.411214: Step 30: Train accuracy = 100.0% 2016-12-24 02:15:08.411426: Step 30: Cross entropy = 0.294103 2016-12-24 02:15:08.843722: Step 30: Validation accuracy = 100.0% 2016-12-24 02:15:13.364921: Step 40: Train accuracy = 100.0% 2016-12-24 02:15:13.365132: Step 40: Cross entropy = 0.186366 2016-12-24 02:15:13.802341: Step 40: Validation accuracy = 100.0% 2016-12-24 02:15:18.338873: Step 50: Train accuracy = 100.0% 2016-12-24 02:15:18.339084: Step 50: Cross entropy = 0.206962 2016-12-24 02:15:18.773215: Step 50: Validation accuracy = 100.0% 2016-12-24 02:15:23.290912: Step 60: Train accuracy = 100.0% 2016-12-24 02:15:23.291127: Step 60: Cross entropy = 0.176654 2016-12-24 02:15:23.726591: Step 60: Validation accuracy = 100.0% 2016-12-24 02:15:28.352231: Step 70: Train accuracy = 100.0% 2016-12-24 02:15:28.352446: Step 70: Cross entropy = 0.137122 2016-12-24 02:15:28.786593: Step 70: Validation accuracy = 100.0% 2016-12-24 02:15:33.313190: Step 80: Train accuracy = 100.0% 2016-12-24 02:15:33.313766: Step 80: Cross entropy = 0.110478 2016-12-24 02:15:33.747310: Step 80: Validation accuracy = 100.0% 2016-12-24 02:15:38.284064: Step 90: Train accuracy = 100.0% 2016-12-24 02:15:38.284277: Step 90: Cross entropy = 0.141551 2016-12-24 02:15:38.718164: Step 90: Validation accuracy = 100.0% 2016-12-24 02:15:43.239743: Step 100: Train accuracy = 100.0% 2016-12-24 02:15:43.239955: Step 100: Cross entropy = 0.094765 2016-12-24 02:15:43.671750: Step 100: Validation accuracy = 100.0% 2016-12-24 02:15:48.178953: Step 110: Train accuracy = 100.0% 2016-12-24 02:15:48.179167: Step 110: Cross entropy = 0.101152 2016-12-24 02:15:48.614145: Step 110: Validation accuracy = 100.0% 2016-12-24 02:15:53.188334: Step 120: Train accuracy = 100.0% 2016-12-24 02:15:53.188543: Step 120: Cross entropy = 0.083642 2016-12-24 02:15:53.621917: Step 120: Validation accuracy = 100.0% ....continued accuracy up until 4000 steps. FINAL OUTCOME OF TRAINING: Final test accuracy = 100.0% PREDICTION ACCURACY TO DATE: 100% identification!!!! Average confidence 0.998

Your Comments

  

282