DEV Community

Cover image for I built an AI Tool to detect your facial expressions while you watch a video!
Rohan Sawant
Rohan Sawant

Posted on • Edited on

I built an AI Tool to detect your facial expressions while you watch a video!

Hemuer-AI : Laugh when everyone laughs, smile when everyone smiles!

View Live Version!

github.com/CT83/Hemuer-AI-Expression-Detector

Hemeur is an AI Tool to record facial expressions of users as they watch a video and then visualize the data!
Insights can be gathered from collected data!

Demos

Stats Page
Alt Text

Architectural Overview

  • Frontend - face-api.js in TensorFlow.js, JavaScript and JQuery, BootStrap
  • Backend - NodeJS Express, mongoose and amqplib
  • Database - MongoDB
  • Message Queue - RabbitMQ on CloudAMQP
  • Hosting - Heroku - Free Tier
  • Local Development - Docker and Docker Compose

Working

  1. Camera detects the expression of the viewer
    face-api.js with TensorflowJS detects the expressions, sends a POST to the backend.

  2. Write expressions to MQ
    NodeJS writes the expressions to RabbitMQ

  3. Write expressions to the database
    Data from the MQ is now moved over to the database for storage and popped off the queue.

  4. Insights are generated from the collected data
    The expressions and their positions in the video are noted down, and visualized in the UI.

Features

Screen jiggles when you giggle!

Chat Panel, pops every time someone laughs (or talks)

Links above the messages, allow to skip to the funny bits

  1. Privacy First
    Facial Recognition is done in the browser itself. No video ever leaves your device.

  2. Scalable
    Hemuer, is powered by RabbitMQ, this adds real-time chat support! Transactions go to the MQ first, then are stored in the database.
    This keeps things up and running even during high traffic!

  3. Data Driven
    The Stats page displays Smiles vs their Position in Video.
    This can be used to find, seek and skip to the funniest bits of the video.

  4. Open Source
    This is where I nag you for stars... 😪
    Can I get a star?

Future Scope

  • A Chrome Extension for YouTube?
  • A Tool for Focus Groups and Scientific Studies?
  • Imagine as a Netflix, Hulu or Amazon Prime Video, you could pay your users X$ to consensually let you see their reactions to your content, you could have real data to decide what parts of the Comedy Special are truly funny.
  • Something creepy straight out of 1984?

Getting Started

Prerequisites

  • Docker and Docker Compose needs to be installed on your machine

How to run?

  1. Clone the Repo from CT83/Hemuer-AI-Expression-Detector
  2. docker-compose up --build
  3. Visit http://localhost:3000/
  4. Smile. 🙂

Production Deployment

  1. Deploy the NodeJS App on Heroku This should work right out of the box, if you follow the current repo struct.
  2. Create a MQ on CloudAMQP and add the as an environment variable. AMQ_URL
  3. Create a MongoDB add on for the App
  4. Boom! Done

Credits

Top comments (2)

Collapse
 
mdhesari profile image
Mohammad Fazel • Edited

It sounds so interesting, it's a huge progress for companies in order to create more value

Collapse
 
rohansawant profile image
Rohan Sawant

Thanks!! That was exactly my reaction when the idea first occurred to me, now I need to get it in front of the correct people to provide the value!