An app that collect demographic data using cameras.
- Use birth date instead of age
- Dynamic values
Warning: Collecting individuals' data may be subject to some regulations. Find the official guiline here.
Manually gathering information from customers in grocery stores, shops and supermarkets is a tedious and time-consuming task. This is why I developed Smart Eye. Smart Eye is an app that uses AWS Rekognition capabilities to to gather demographics data on individuals. It can detect the gender, age and emotions of customers using cameras.
We needed a short development time, and a robust model. This is why I chose the following tools:
-
Amazon Rekognition: a cloud-based software as a service computer vision platform. It provides an easy-to-use API to perform computer vision tasks.
-
Angular: A Javascript front-end framework to build robust web applications.
- Genders: Rekognition predicts the gender perfectly.
- Age: Rekognition provides an age range that is very acurate. However, the model is biaised on minority groups such as myself and may give poor age approximations.
- Emotions: emotions are harder to interpret as they are subtle and subject to the complexity of humans.
git clone https://github.com/BecayeSoft/SmartEye
cd SmartEye
npm install
ng serve --open
This app uses 2 types of entities:
- Component: the .html and .ts files. These are respectively the interface and the dynamic logic of a component.
- Services: the .service.ts files. These allows us to interact with external services such as AWS, Rekognition, DynamoDB.
Navigate to SmartEye/src/app. Here you will fin dthe app.
This service establishes the connection to AWS by using AWS Cognito credentials.
This service handles interactions with AWS rekognition. It is used to call the API.
This service allows interactions with the DynamoDB database. It is used to perform CRUD operations in the database, and more.
HomeComponent displays in simple dashboard of the data. It contains some graphs and cards that display information about the age, gender and emotions from the data present in the DynamoDB database.
VideoCaptureComponent connects to the webcam, take a picture, then send it to rekognition. As this is a prototype, I did not use real cameras, but rather a webcam.