Rebounder Tech Blog

Written by the people who actually run these systems in production.

Face Recognition on a Raspberry Pi 5 Hits a Speed Wall

Published About 1 min readBy the Rebounder engineering team — the people who operate these systems

This article may contain affiliate links. Its content is not affected by advertising.

In short

Face recognition with a Raspberry Pi 5 and face_recognition works in a minimal setup, but at roughly 15 seconds per person, speed is what decides whether it is usable at scale.

The setup

Built as minimally as possible.

  • Recognition — Python’s face_recognition library. Easy to install and it matches against registered faces
  • Camera — connected to the Pi
  • Record — written out to a local CSV

The Pi 5 was chosen because face recognition is reasonably heavy. It has the power in a small package and can be left running as a permanent terminal.

The record is a CSV to keep everything local at first. It can move to a database later, so there is no need to build that in up front.

It works. At 15 seconds per person

It works. And the biggest problem, honestly stated:

About 15 seconds to recognise one person.

Fine for a handful of people, but a queue forms as numbers grow. Speed was what decided whether it was usable.

There should be room to make the recognition lighter — resolution, model choice, pre-encoding the descriptors — and that is the next task.

If you are building this

  • face_recognition is easy to install and quick to get running. Good for a first step
  • A CSV is enough to start recording with
  • Speed needs tuning. “The demo runs” and “it is fast enough in production” are different problems

The distance between working and usable

What building it showed was that the hard part was not “can it” but “is it fast”.

Face recognition itself works as soon as you install the library. That is where the technical satisfaction lands. But in actual use, one number — 15 seconds per person — decides whether it is adopted.

The bigger lesson from building it was that distance, not the recognition itself. Because an existing library carries you all the way to “it runs”, you can mistake that point for finished unless the requirements past it were decided first.

Frequently asked questions

Q1What do I need for a minimal setup?

A Raspberry Pi 5, a connected camera, Python's face_recognition library, and a CSV to write to. It is easy to set up and quick to get running. The record can move to a database later, so a CSV is plenty to start with.

Q2Why the Pi 5?

Face recognition is reasonably heavy. The Pi 5 has the power in a small package, and it can be left running continuously as a terminal.

Q3Is there room to shorten the 15 seconds?

Yes — there is room to tighten it up with resolution, model choice, and pre-encoding face descriptors. But it is safer to treat 'the demo runs' and 'it is fast enough in production' as separate problems from the start.

What this article is based on

  • Markdown file

Every claim in this article comes from the records above. The repositories we operate are private so we cannot link to them, but which file, which lines, and at which commit we read them is recorded for every article. Nothing here is written from guesswork.