• 5 min read

Making driver safety monitoring accessible with just a phone camera

Table of Contents

Manobela won first place at the TrackTech Hackathon 2026! 1

Manobela is a driver monitoring system that uses only a smartphone camera to detect unsafe driving behaviors such as drowsiness, distraction, and phone use.

Why we built it

Manobela started as our project for the TrackTech Hackathon 2026. The theme was road safety, and we picked driver monitoring because it’s a problem computer vision is actually good at.

Existing driver monitoring systems usually need dedicated hardware or fleet equipment, which puts them out of reach for everyday drivers. We wanted to try the opposite: what if the phone people already have in the car was enough?

How it turned out

Real-time monitoring

Manobela uses the phone’s front camera to analyze the driver’s face while driving.

Monitoring

It watches eye closure, yawning, head position, gaze direction, and phone usage, and alerts through visual, audio, and haptic feedback when it catches something dangerous. The hard part was tuning sensitivity: too aggressive and drivers start ignoring it, too conservative and it misses the point.

Video analysis

Besides live monitoring, users can upload recorded driving videos for analysis.

Uploads

That way users can review a trip after the fact, not just react to warnings in the moment.

Driving insights

Each monitoring session is stored and summarized.

InsightsInsights Session

The dashboard shows risk summaries as KPI cards and charts, plus session history and timelines of detected events.

We integrated OpenStreetMap navigation with monitoring sessions.

Maps

Monitoring can start automatically when navigation does, and each trip is tied to its route so users can see which journeys had riskier behavior.

Configuration

Users can customize monitoring behavior, including alerts, session logging, and API settings for different deployments.

Settings

How we built it

You can learn more about the technical side of things in the docs.

Technologies we used

Backend Python, FastAPI
Mobile App TypeScript, React Native, Expo, Drizzle ORM, TailwindCSS
Computer Vision OpenCV, MediaPipe, YOLOv8, ONNX Runtime
Real-time WebRTC, WebSockets
Website Next.js
Deployment Docker, Azure App Service, Vercel, Expo EAS

Real-time computer vision pipeline

The biggest technical challenge was getting real-time video processing working reliably. The mobile app streams frames to the backend over WebRTC, which runs detection and sends results back. That kept the app lightweight since all the heavy processing happens server-side, but it meant network conditions became part of the system, not just an implementation detail.

Detecting driver behavior

Eye closure detection

We use MediaPipe facial landmarks to calculate the Eye Aspect Ratio (EAR). When the eye remains closed beyond a threshold, the system considers it a possible drowsiness event.

We also calculate PERCLOS (percentage of eyelid closure) to reduce false positives from normal blinking.

Yawn detection

Mouth landmarks are used to calculate the Mouth Aspect Ratio (MAR). Large and sustained mouth openings indicate possible yawning.

Head pose and gaze tracking

The system tracks face orientation and eye position to determine whether the driver is looking away from the road.

A short calibration period establishes the driver’s normal position before detecting deviations.

Phone detection

YOLOv8 detects objects in the frame, including mobile phones. Persistent high-confidence detections are treated as possible phone usage.

Making detections usable

Raw computer vision output isn’t enough on its own. Early versions reacted to normal behavior like blinking or briefly glancing away, so we added calibration periods, smoothing, debouncing, and hysteresis to cut down false detections.

What I learned

Manobela was the biggest project I’ve built and led at the time. It pushed me past isolated features into shipping a full product: mobile app, backend, CV pipeline, deployment, all of it.

The hardest part for me was making everything work together in real time. WebRTC was new to me, and reliable video streaming brought in problems normal web apps don’t have.

I also learned computer vision gets a lot messier outside controlled environments. Lighting, camera angles, face shapes, movement, etc. affect detection quality, and a model still needs a lot of engineering before it feels reliable.


Footnotes

  1. Update (Feb 2026): Manobela won first place at the TrackTech Hackathon 2026, hosted by the CPU Computer Science Society (CSS), competing against seven other teams from Western Visayas. ↩