Closed M-Davies closed 3 years ago
Crossed means completed, un-crossed means in-progress
[x] Ensure AWS can handle multiple faces at obscure angles and poor image qualities. Completed by testing a custom image in the example demo:
[x] Follow the 1st two steps of the AWS Rekognition Getting Started Guide. Completed by setting up an account with multiple IAM (Identity Access Management) users to segregate the cloud service users from each other, ensuring that nothing critical is run on the root or Admin accounts. I have also set up the aws-cli to interact with the cloud services from my PC and python (of which I installed the AWS Python SDK to do that).
[x] Begin installing dependencies that are needed for Rekognition. This involves following the relevant guide in https://docs.aws.amazon.com/rekognition/latest/dg/get-started-exercise.html (in my case, Working with streaming videos)
Amazon kinesis and streaming services setup using guide => https://docs.aws.amazon.com/rekognition/latest/dg/setting-up-your-amazon-rekognition-streaming-video-resources.html
Proceeding to prosecute plugin setup for streaming from device camera => https://docs.aws.amazon.com/rekognition/latest/dg/streaming-using-gstreamer-plugin.html
Read and analysis is working after a small hiccup with the role permissions (solved using this guide section to rejig my role permissions).
I can now stream video to the cloud and have it analysed, returning the result with a confidence match to the stored face in aws. I will attempt to replicate this success with Python scripts, since that will be the main method of communication between the backend and AWS
I am unsure if Python scripts will be the best solution for analysing the results due to the differences between NodeJS and Python. The NodeJS backend will need to be able to execute the python scripts in order to deploy assets and conduct investigations on the video streams.
While I feel comfortable that this should be possible after looking online, I think I may likely have dependancy issues and problems with feedbacking to the user when something goes wrong (due to the inconsistent nature of python script exiting, even with the throw()
function). I feel I may have to also look into producing nodejs scripts that achieve the same goals (luckily, there is an SDK for that too) but I will reserve that thought until after I build the website skeleton
Moved milestone ahead since this won't be completed until after the NodeJS opportunity has been explored
NodeJS has been instantiated for the website backend side and it's been decided in my latest blog to use boto for most of the heavylifting. Facial recog scripts are in place but need testing
New spinoff issues for this epic -> https://github.com/M-Davies/eye-of-horus/issues?q=is%3Aissue+is%3Aopen+label%3Aface
Python scripts are functional! We just need the website to hook them up to a nice UI now :)
Why?
AWS provides more powerful and refined services than local python libraries for a reasonable cheap, if not free, price. Albeit harder to set up and understand initially, it'll save me a lot of development time later into the project
Aims
Investigate AWS Rekognition, mainly following this tutorial to produce a prototype script. Collect video evidence to confirm it works.
This script would take in a video stream (from my laptop or phone camera) and compare the faces in it to stored images on an AWS bucket. The response would be similar to the examples here. A successful test would be a positive match with my face stored in AWS to a group of faces in the video stream.