Skip to content

Perceptron EgoHome: A new benchmark for dense, sub-second egocentric understanding

The first egocentric benchmark to feature four types of annotations per video and segments as short as 100 ms

Washing dishesScrubbing the drain mat and basin with a sponge, then rinsing the mat under the tap.

Figure 1. All four of our annotation types on the same minute of video, across five household chores. Click a panel to expand it.
EgoHome and WGO-Bench at a glance
EgoHome (Perceptron)WGO-Bench
Total hours1.99 h (137 clips from 46 videos)1.24 h (100 episodes)
DomainHousehold chores, egocentric (head-mounted camera)Robot manipulation (DROID 50, RoboCOIN Galaxea 25) + egocentric HomER (25)
Human annotated?Yes (synthetic seed, human-corrected, reviewed)Yes
Hand box annotations?Yes: 417,912 boxes, 30 fps, left / rightNo
Subtask annotations?Yes: 1,924 segmentsYes: 743 segments
Left/right hand actions?Yes: 5,032 segments, 118 Ego4D verbsNo
Left/right hand captions?Yes: 5,277 segmentsNo
Shortest segment0.10 s0.19 s
Segments < 0.5 s77315
Mean subtask length3.57 s5.77 s
Mean segment length, all types2.62 s5.77 s (subtasks only)
Flexible time boundary metric?Yes: permissible subsegment JaccardNo: one-to-one matching at IoU ≥ 0.75
Table 1. EgoHome and WGO-Bench at a glance.
Cumulative distribution of segment durations on a log scale from 0.1 to 60 seconds. EgoHome subtasks: 1,924 segments, 1.6% under 0.5 s, 7.8% under 1 s, median 2.50 s. EgoHome hand actions: 5,032 segments, 8.3% under 0.5 s, 33.2% under 1 s, median 1.40 s. EgoHome hand captions: 5,277 segments, 6.1% under 0.5 s, 29.4% under 1 s, median 1.50 s. WGO-Bench: 743 segments, 2.0% under 0.5 s, 7.1% under 1 s, median 3.64 s.
Figure 2. Cumulative distribution of segment durations (log scale). EgoHome’s hand actions and captions are much shorter than WGO-Bench’s subtasks: about a third of them last under one second.
Figure 3. A full minute of one clip with our human subtask labels and a scrolling timeline underneath.
Figure 4. Our human-annotated left and right hand boxes, drawn on every frame of a full clip.
Figure 5. Each hand's Ego4D verb as the clip plays, with both hands' action timelines below.
Figure 6. Free-form captions for each hand as the clip plays, with both hands' caption timelines below.
Figure 7. We stack two seconds of frames in time and check every predicted centroid against the human box.
Four model outputs for one human segment, scored by permissible subsegment Jaccard and WGO-Bench semantic F1.
Model outputPermissible subsegment JaccardWGO-Bench semantic F1
A. 0–5 s: “sweeping the stairs”
Ground truth (human)
Model
(5 + 5) / (5 + 5) = 1.0IoU 1.0, labels match: 1 match → 1.0
B. 0–2 s: “sweeping the top stair”; 2–5 s: “sweeping the bottom stair”
Ground truth (human)
Model
both pieces agree: (2 + 3 + 5) / (5 + 5) = 1.0IoUs 0.4 and 0.6, both below 0.75: 0 matches of 2 predicted, 1 gold → 0.0
C. 0–3 s: “sweeping the stairs”; 3–5 s: “putting the broom away”
Ground truth (human)
Model
first piece agrees: (3 + 3) / (5 + 5) = 0.6IoU 0.6, below 0.75 → 0.0
D. 0–5 s: “carrying the broom”
Ground truth (human)
Model
judge says it’s a different action → 0.0timing matches but the label doesn’t → 0.0
Table 2. Four cases of model output for one human-labeled (ground truth) segment, “sweeping the stairs” from 0 to 5 s, scored by permissible subsegment Jaccard and WGO-Bench semantic F1. The ground-truth track is the human label; the model track is the prediction. Solid segments agree with the ground truth under the judge; dashed segments do not.
Scatter chart of subtask score against subtask cost per video-hour on a log scale. A dashed staircase marks the Pareto frontier through Gemini 3.8 Flash at 4 fps (0.663, about $1.3), Glimpse at 4 fps (0.689, about $2.8), Perceptron Egocentric at 4 fps (0.787, $9) and at 8 fps (0.798, about $15). GPT-6 Astra at 1 fps (0.775, about $20), FLORA (0.747, $35.39) and GPT-6 Astra at 4 fps (0.797, about $76) sit below it.
Figure 8. Both Perceptron Egocentric settings sit on the Pareto frontier; nothing we measured beats them on both score and cost.
EgoHome-2h results by system
SystemSubtaskHand actionHand captionHand boxSubtask $ / video-hour
Perceptron Egocentric, 4 fps (default)0.7870.4210.6130.942$9
Perceptron Egocentric, 8 fps (option)0.7980.4210.6260.973≈ $15
GPT-6 Astra, 4 fps frames0.7970.4980.7490.979≈ $76
GPT-6 Astra, 1 fps frames0.7750.4790.7240.865≈ $20
Gemini 3.8 Flash, 4 fps video0.6630.4050.5580.454≈ $1.3
Gemini 3.8 Flash, 1 fps video0.6390.3900.5570.574n/r
Glimpse (Elorian), 4 fps video0.6890.3900.5600.489≈ $2.8
Glimpse (Elorian), 1 fps video0.5900.3530.5600.247n/r
Argus (Pantheon), GPT-6 Astra0.3670.3360.593—$24.17
Argus (Pantheon), Midcentury's settings: GPT-6.1 Sol0.3150.3270.590—$7.76
FLORA (NVIDIA)0.747———$35.39
Table 3. EgoHome-2h results by system. Permissible subsegment Jaccard (subtask, hand action, hand caption) and centroid hit fraction (hand box). Best in bold. — = the system does not produce that annotation. n/r = not reported for that setting. Inputs: GPT-6 Astra as timestamped frames (768 px), Gemini and Glimpse as native video. All scores cover all 137 clips; Perceptron results are averaged across three runs at 4 fps and two runs at 8 fps, and other systems were run once. Gemini stamps its boxes half a sampling interval early, so its hand box scores use timestamps shifted by 0.5 s at 1 fps and 0.125 s at 4 fps. Subtask $ uses Perceptron's customer price, direct API charges, or FLORA's GPU runtime cost; Argus costs also include hand labels, and costs marked ≈ are estimates of the subtask share of a run billed across all tasks.
Subtask
Subtask score by gold segment length
SystemAll< 0.5 s0.5–1 s> 1 s
Perceptron Egocentric, 4 fps (default)0.7870.5590.6150.814
Perceptron Egocentric, 8 fps (option)0.7980.5550.6720.824
GPT-6 Astra, 4 fps frames0.7970.5030.6490.831
GPT-6 Astra, 1 fps frames0.7750.5950.5000.807
Gemini 3.8 Flash, 4 fps video0.6630.3750.3920.695
Gemini 3.8 Flash, 1 fps video0.6390.3610.3200.670
Glimpse (Elorian), 4 fps video0.6890.3800.4100.720
Glimpse (Elorian), 1 fps video0.5900.3280.2790.616
Argus (Pantheon), GPT-6 Astra0.3670.1350.1330.381
Argus (Pantheon), Midcentury's settings: GPT-6.1 Sol0.3150.0980.1060.332
FLORA (NVIDIA)0.7470.5790.6150.777
Clips with a step of this length1372460137
Table 4. Subtask score by the length of the gold segment. Best in bold.
Hand action
Hand action score by gold segment length
SystemAll< 0.5 s0.5–1 s> 1 s
Perceptron Egocentric, 4 fps (default)0.4210.2980.2860.461
GPT-6 Astra, 4 fps frames0.4980.4220.4150.531
GPT-6 Astra, 1 fps frames0.4790.3410.3550.520
Gemini 3.8 Flash, 4 fps video0.4050.2060.2730.435
Gemini 3.8 Flash, 1 fps video0.3900.1910.2520.436
Glimpse (Elorian), 4 fps video0.3900.1930.2120.433
Glimpse (Elorian), 1 fps video0.3530.2120.1850.392
Argus (Pantheon), GPT-6 Astra0.3360.3210.2680.358
Argus (Pantheon), Midcentury's settings: GPT-6.1 Sol0.3270.2620.2050.355
Table 5. Hand action score by the length of the gold segment. Best in bold.
Hand caption
Hand caption score by gold segment length
SystemAll< 0.5 s0.5–1 s> 1 s
Perceptron Egocentric, 4 fps (default)0.6130.4470.4460.678
GPT-6 Astra, 4 fps frames0.7490.5600.6420.830
GPT-6 Astra, 1 fps frames0.7240.4150.5750.800
Gemini 3.8 Flash, 4 fps video0.5580.3430.3790.618
Gemini 3.8 Flash, 1 fps video0.5570.2950.3830.619
Glimpse (Elorian), 4 fps video0.5600.2810.3510.625
Glimpse (Elorian), 1 fps video0.5600.2640.3370.631
Argus (Pantheon), GPT-6 Astra0.5930.4140.4900.647
Argus (Pantheon), Midcentury's settings: GPT-6.1 Sol0.5900.4330.4410.648
Table 6. Hand caption score by the length of the gold segment. Best in bold.
Annotation effort and seed agreement by type
Annotation typeActive minutes per minute of videoAgreement of the synthetic seed with the final human labels
Hand boxes41.70.932 (centroid hit fraction)
Subtasks17.10.766 (permissible subsegment Jaccard)
Hand actions24.60.613 (permissible subsegment Jaccard)
Hand captions32.60.688 (permissible subsegment Jaccard)
All four115.9
Table 7. Annotation effort per minute of video, and how closely our synthetic seed labels agreed with the final human labels.
CHF⁡=∑(f,h)∈G1[Centroid⁡(p^f,h)∈gf,h]∣G∣+∣Pout∣(1)\operatorname{CHF} = \frac{\displaystyle\sum_{(f,h) \in G} \mathbb{1}\left[\operatorname{Centroid}(\hat{p}_{f,h}) \in g_{f,h}\right]}{|G| + |P_{\text{out}}|} \tag{1}
PSJ⁡(P,T)=∑p∈Pm(p,T)+∑t∈Tm(t,P)∑p∈P∣I(p)∣+∑t∈T∣I(t)∣(2)\operatorname{PSJ}(P, T) = \frac{\displaystyle\sum_{p \in P} m(p, T) + \sum_{t \in T} m(t, P)}{\displaystyle\sum_{p \in P} |I(p)| + \sum_{t \in T} |I(t)|} \tag{2}
m(s,S)=∣ I(s)∩⋃s′∈SJ(s,s′)=1I(s′) ∣(3)m(s, S) = \Bigl|\, I(s) \cap \bigcup_{\substack{s' \in S \\ J(s, s') = 1}} I(s') \,\Bigr| \tag{3}
You are grading a human annotator against a gold reference for egocentric video subtask descriptions. The two labels describe time segments that overlap; decide if they are talking about the SAME underlying activity.
Gold label: "<gold label>"
Annotator label: "<predicted label>"
Be lenient about WORDING, OBJECTS, and SURFACES: match=true across synonyms, paraphrases, different objects/tools/surfaces, and finer-vs-coarser detail, PROVIDED the same physical hand ACTION is being performed (e.g. "vacuuming the stairs with the hose" ~ "vacuuming the floor" — both vacuuming; "wash the dishes" ~ "scrub the plate" — both washing/scrubbing).
But the ACTION itself must be the same: return match=false when the manipulation differs, EVEN IF the same object is mentioned (e.g. "vacuuming the stairs with the hose" vs "holding the vacuum cleaner" — vacuuming vs holding; "wiping a window" vs "opening a drawer"), or when one is empty/placeholder.
A label that names no specific physical action never matches a specific one: generic descriptions such as "doing chores", "cleaning up", "working in the kitchen", "doing the task" or "using the hands" are match=false against any specific activity.
When genuinely ambiguous, lean match=false.
Return only JSON: {"match": true|false, "rationale": "short reason"}
Degenerate baselines
Answer (no video used)SubtaskHand actionHand caption
One segment for the whole clip, generic label0.0000.1750.000
Fixed 2.5 s windows, generic label0.0000.1750.000
One segment for the whole clip, the clip’s own most common true label0.5280.4490.499
Table 8. Scores of three degenerate answers that use no video.
Which models exceed the trivial baseline
SystemSubtaskHand actionHand caption
Perceptron Egocentric, 4 fps (default)0.787 ✓0.421 ✗0.613 ✓
Perceptron Egocentric, 8 fps (option)0.798 ✓0.421 ✗0.626 ✓
GPT-6 Astra, 4 fps frames0.797 ✓0.498 ✓0.749 ✓
GPT-6 Astra, 1 fps frames0.775 ✓0.479 ✓0.724 ✓
Gemini 3.8 Flash, 4 fps video0.663 ✓0.405 ✗0.558 ✓
Gemini 3.8 Flash, 1 fps video0.639 ✓0.390 ✗0.557 ✓
Glimpse (Elorian), 4 fps video0.689 ✓0.390 ✗0.560 ✓
Glimpse (Elorian), 1 fps video0.590 ✓0.353 ✗0.560 ✓
Argus (Pantheon), GPT-6 Astra0.367 ✗0.336 ✗0.593 ✓
Argus (Pantheon), Midcentury's settings: GPT-6.1 Sol0.315 ✗0.327 ✗0.590 ✓
FLORA (NVIDIA)0.747 ✓——
Best trivial baseline0.5280.4490.499
Table 9. Which systems exceed the best trivial baseline on each task. ✓ exceeds the best trivial baseline for that task; ✗ does not. n/r = not reported for that setting. — = the system does not produce that annotation.
Subtask segment statistics
Subtask segmentsEgoHome
Segments1,924
Shortest0.16 s
Median2.50 s
Mean3.57 s
90th percentile7.34 s
Longest55.1 s
Table 10. Subtask segment statistics.
Subtask segments by duration
DurationRelative sizeEgoHome
< 0.5 s30 (1.6%)
0.5–1 s120
1–2 s564
2–5 s829
5–10 s277
> 10 s104
Table 11. Subtask segments by duration.
Hands on screen
Hand on screen% of frames
Left96.7%
Right96.6%
Both94.3%
Either99.0%
Neither1.0%
Boxes417,912 on 216,225 frames
Table 12. Share of frames with each hand on screen.
Hand action segments by hand
Hand actionsLeftRight
Segments per clip17.319.4
Median duration1.45 s1.34 s
Mean duration2.49 s2.39 s
< 0.5 s171248
< 1 s731939
Distinct labels (both hands)47
Video where left and right have the same action42.7%
Table 13. Hand action segments by hand.
Most frequent verbs
Most frequent verbsRelative sizeSegments
hold802
take615
put595
fold427
move310
arrange257
adjust227
smooth214
lift207
wash163
Table 14. The ten most frequent hand action verbs.
Hand caption segments by hand
Hand captionsLeftRight
Segments per clip18.420.1
Median duration1.55 s1.49 s
Mean duration2.50 s2.38 s
< 0.5 s145179
< 1 s707844
Distinct labels (both hands)3,948
Video where left and right have the same caption29.3%
Table 15. Hand caption segments by hand.
@article{perceptron2026egohome,
  author = {PerceptronAI},
  title = {Perceptron EgoHome: A new benchmark for dense, sub-second egocentric understanding},
  journal = {PerceptronAI Research Blog},
  year = {2026},
  note = {https://perceptron.inc/blog/egohome},
}