Research

Owner identification in the real world

Most robots that follow people track the nearest person. Kiko tracks one specific person, and keeps doing so when that person turns around, changes a jacket, walks behind someone else or leaves the room.

01

The problem

A home is full of people who look alike from a robot's height. Family members share clothes. Guests walk between Kiko and its owner. The owner turns away, sits down or leaves the room.

A robot that follows whoever is closest gets this wrong all the time. Kiko has to know which person is its owner, every moment, from about knee height.

02

Method

At setup, Kiko scans its owner's face and body. From then on it looks for people in every frame, follows each one over time and scores how well each matches the owner.

The score combines four cues: appearance, face, body shape and depth. When one cue is missing, for example when the owner turns away, the others carry the decision. Everything runs on the robot.

The idea in a few lines
def owner_score(person, owner):
    cues = [
        appearance(person, owner),
        face(person, owner),
        body_shape(person, owner),
        depth(person, owner),
    ]
    seen = [c for c in cues if c is not None]
    return sum(seen) / len(seen) if seen else 0.0


def find_owner(people, owner):
    best = max(people, key=lambda p: owner_score(p, owner), default=None)
    if best and owner_score(best, owner) > THRESHOLD:
        return best
    return None  # keep searching

A simplified sketch for this page. It is not the code that runs on Kiko.

03

Benchmark

We record our own dataset from a low viewpoint, the height Kiko sees from. Each recording follows a script that makes the owner hard to keep.

Scenarios

  • Turn around
  • Jacket change
  • Occlusion
  • Similar clothing
  • Leave and return
  • Low light

What we measure

  • Identity switches
  • Time to find the owner again
  • Owner lost time
  • Follow distance error
  • Frame rate on the robot

04

Results

Every value below is still being measured on the robot. We will publish numbers when they are real.

MetricValue
Identity switchesMeasuring
Time to find the owner againMeasuring
Owner lost timeMeasuring
Follow distance errorMeasuring
Frame rate on the robotMeasuring

05

Limits

We are clear about where the method stops working today.

  • One owner per robot.
  • Very low light.
  • People who look almost the same.
  • Fast motion close to the robot.
  • Small compute on board.

Get in touch

We read every message.

Expect a reply within a week.

Get in touch