Ismail[Ariyan]
← Index
03 // Applied ML · Team lead

Engage Analytics

DeepFaceFirebaseAzure Blob
00

Summary

A video engagement platform built for the Learnathon competition. It reads facial emotion from viewer video to tell a creator whether the content actually landed, rather than inferring it from watch-time. I led the team.

Role
Learnathon Team Lead
Period
2024
Status
Shipped
Stack
DeepFace · Firebase · Azure Blob
01

Problem

Course creators have no direct signal for whether content is working. Watch-time and completion rate are what everyone uses, and both are lagging proxies — they tell you someone stayed, not that they were engaged.

02

Constraints

  • C01Inference had to be fast enough for real video, not a batch job on short clips
  • C02Large uploads had to move through the pipeline without overloading the backend
  • C03A fixed competition deadline, with a team to coordinate rather than just my own time
03

Architecture

01
Upload

SAS-token uploads go straight to Azure Blob, keeping large video off the app server.

02
Auth

Firebase token auth gates uploads and analysis.

03
Inference

DeepFace (VGG-Face) classifies viewer emotion frame by frame across 7 classes.

04
Delivery

Per-frame results aggregate into an engagement read-out for the content owner.

04

Decisions

D01Direct-to-blob upload vs. routing video through the API
Options
SAS-token upload straight to Azure Blob / Proxy uploads through the backend
Chosen
Direct to blob
Rationale
It kept large payloads off the application server entirely, which is the bottleneck we had no time to debug under a deadline.
What it cost
Issuing and scoping tokens correctly, instead of one plain upload endpoint.
D02DeepFace vs. training our own classifier
Options
Pretrained DeepFace / A bespoke CNN trained from scratch
Chosen
DeepFace
Rationale
A validated pretrained model cleared the accuracy bar without spending the team's fixed timeline on training.
What it cost
Less insight into the model's failure modes than something we'd trained ourselves.
05

Results

89%
Emotion classification accuracy
7
Emotion classes tracked
15 FPS
Sustained processing throughput
06

Retrospective

Picking DeepFace over a custom model is the only reason this shipped inside the competition window — scoping the ML target early and then refusing to move it was the actual lesson in leading a team. That said, the 89% rests on a single evaluation pass. I wouldn't quote it as load-bearing without regression checks behind it.

07

Artifacts

Live
h3cker.onrender.com
Repository
github.com/Learnathon-By-Geeky-Solutions/h3cker
Context
Learnathon competition
Next — 04
Vehicle Speed Estimator