All case studies
Case Study · Hospitality · Service Quality

Restaurant Table Tracking

Turns an ordinary camera view of a dining area into a live service status for every table, and raises an alert when a table is being let down. No sensors, no buttons for staff, no change to the POS.

At a glance

Live service status for every table

One fixed camera view, with no sensors and no buttons for staff
Input
One fixed camera view of the dining area
Output
Per-table state, five kinds of alert with a snapshot each, event log and annotated video
Approach
Pretrained vision models plus a small, testable state machine. No custom training
Tested on
Stock footage of a mall café with three tables

01 / The challenge

Nobody can watch every table at once

01

Staff look like customers

The system has to tell waiters from guests, because a waiter at the table is the proof an order was taken.

02

Tables are cluttered

People stand in front of tables and chairs hide guests. Brief dropouts must not look like guests leaving.

03

Food is hard to name

Dishes vary by menu, so the system detects that something was placed on the table instead of naming it.

04

False alarms cost trust

A passer-by or a waiter walking past must not start a timer or raise an alert.

Café floor from above with tables and zones marked by Korv Glanz
Café floor from above as the camera records it
Camera Korv Glanz

The same tables, before and after tracking · drag to compare

02 / How it works

From camera frames to table states

What happens to each camera frame, from people to table states.

Step 01

Find people

An object detector finds every person in each processed frame.

Step 02

Track

Each person keeps a persistent id, so nobody is recounted after a brief hidden moment.

Step 03

Guest or staff

A zero-shot model compares each person with descriptions of guests and the site's own uniform.

Step 04

Tabletop items

Change against a clean reference image shows when food or dishes are on the table.

Step 05

Smooth

Guest counts and items are smoothed over a few seconds before any state changes.

Step 06

State machine

Each table moves through empty, waiting for order, waiting for food, served and needs cleaning.

Café floor seen from above, tables tracked by zone

Café floor seen from above, tables tracked by zone.

Annotated output
Stock footage of a mall café, cropped to two of the tracked tables

From the Footage

Each table wears its state

Every table zone is coloured by its state, with the guest count and the time spent in that state. Guests are boxed in white and staff in blue.

T2 · Served

Four guests, and cups on the tabletop.

T1 · Waiting for order

One guest seated at an empty table, and no staff visit seen yet.

EmptyWaiting for orderWaiting for foodServedNeeds cleaning

A Table’s Story

Five states, one visit

Each table runs its own small state machine. A state only changes once the signal has held steady, and the clock starts from when the change really began.

  1. Empty

    No guests seated and a clear tabletop.

    Guests sit and stay
  2. Waiting for order

    Guests are confirmed as seated.

    A waiter stays at the table
  3. Waiting for food

    The visit counts as the order being taken.

    Items appear on the tabletop
  4. Served

    Food or dishes are on the table while guests sit.

    Guests leave, items remain
  5. Needs cleaning

    The table is waiting to be cleared.

    Tabletop clear: back to empty

If food appears without a seen order, the table goes straight to served. Each alert fires at most once per visit, so a table that stays late doesn’t produce a stream of repeats.

Nothing To Install

No Sensors. No Buttons. No Change to the POS.

One fixed camera view of the dining area is enough. Staff keep working the way they do today, and the camera does the watching.

03 / Alerts

Five ways a table gets let down

AlertRaised when
Order not takenGuests have been seated for a while and no staff visit has been seen
Food delayedThe order was taken and no food has appeared in time
Left before servedGuests leave while still waiting for an order or for food
Table not cleanedGuests have left and items are still on the table
Guests at dirty tableNew guests sit down before the table has been cleared

Every wait time is set in a configuration file, so each restaurant can tune it without touching code. Each alert fires at most once per visit.

What Every Run Produces

An answer for the floor, and a trail for the manager

01

Live table board

Every table’s state and how long it has been in it, plus which table is likely to free up next.

02

Alert snapshots

One annotated image for each alert, showing the table and who was there.

03

Event log

Every state change and alert, with its time and table.

04

Signal log

Guests, staff, tabletop items and state for every table at every processed frame, so any alert can be traced back to its cause.

05

Service figures

Wait for an order, order to food, time at the table, time to clean, and table turnover.

06

Annotated video

Zones coloured by state, guests and staff boxed, and a running list of recent alerts.

Tested Without Video

The rules are checked on their own

The state machine is pure logic with no vision in it, so every rule can be tested without footage. Runs can also be scored against hand-labelled clips: each expected alert must fire on its table in its time window, and anything extra counts against it.

Cases the tests cover

  1. 01A passer-by, and a waiter walking past, must do nothing
  2. 02A full visit from sitting down to leaving, with no alerts
  3. 03A four-table story that raises every alert exactly once
  4. 04Plates cleared before the guests leave
  5. 05Food arriving without a seen order
  6. 06Guests who leave after ordering
  7. 07A table cleaned while new guests are already seated

04 / Limits and Next Steps

From prototype to the dining room

This is a working prototype tested on stock footage, not yet running in a restaurant. Here is where it stops today.

Current limits

Today
01

Only the tabletop counts

Items are seen when they are on the table, so a drink held in the hand doesn’t mark a table as served.

02

A clean reference per camera

Items are found as change from an empty table, so a lighting change or a moved menu can look like food.

03

Zones need a check

A helper proposes each table and its chairs, but it can miss tables, so zones are reviewed by hand.

04

One uniform at a time

The staff description is written for each restaurant’s own uniform.

Next steps

Next
01

Live camera feeds

Run on a live camera instead of recorded video.

02

Alerts that reach people

Send alerts to a manager’s phone or a dashboard, not just a log.

03

A full service on camera

Record a longer clip with real orders and food, label it and score it end to end.

04

Easier setup

Better automatic table and chair finding, so a new camera is ready faster.

See It On Your Cameras

Ready to see every table at once?

See how Korv Glanz tracks the tables in your own dining room, and what it flags.

  • ✓Personalized 1-on-1 walkthrough
  • ✓A review of footage from your restaurant
  • ✓Technical integration assessment
Table states. Five kinds of alert. No change for staff.
Request a Live Demo

Let's look at your dining room.

Tell us a little about your restaurant and our team will get in touch.

By submitting this form, you agree to our Privacy Policy.