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.
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 searchingA 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.
| Metric | Value |
|---|---|
| Identity switches | Measuring |
| Time to find the owner again | Measuring |
| Owner lost time | Measuring |
| Follow distance error | Measuring |
| Frame rate on the robot | Measuring |
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.