Captions do not carry entities or their states over to the next action

#5
by Vishwak190798 - opened

We ran the released Flora pipeline (batch_utils, profile human, TempSeg β†’ Captioner) on 142 minutes of EgoExoLearn kitchen video (5 exo demonstrations, 15 first-person performers) and read the captions of consecutive actions as one sequence.

Problem
Each action is captioned independently. What one caption establishes (the object's identity, its new state, the hand holding a tool) does not carry over to the next. The output of one action therefore cannot be linked to the input of the next.

Examples (consecutive captions)

State not carried (the cut garlic is described again as uncut objects):
[00:52-00:54) pick up the leftmost garlic clove on the green chopping board with the right hand
[01:03-01:04) Pick up the cut white objects on the upper left side of the green chopping board ...
[01:12-01:13) Slice the rightmost white object on the green chopping board in half ...

Same object, different names:
[02:04-02:08) pick up yellow bean with right hand, straighten yellow bean with both hands
[02:08-02:16) reposition dried vegetable on cutting board with both hands
[02:16-02:18) pick up knife with right hand, cut yellow flowers with knife in right hand

Hand changes with no hand-over:
[01:24-01:27) ... pick up knife with right hand
[01:27-01:34) hold cabbage with right hand, cut cabbage with knife in left hand

Measured over all 3,138 pairs of consecutive captions

  • An object is cut / chopped / sliced / peeled and named in the next caption (263 pairs): the next caption gives its new state ("chopped garlic", "cucumber slices") in only 10%.
  • The next caption repeats an object of the previous one by the same name in 81% of pairs, but shares no object in 19%.
  • About 3% of pairs refer to the same object under a different name, e.g. "tofu sheet" β†’ "beige food block", "scallion" β†’ "vegetable stalk", "flour" β†’ "white powder".
  • 12% of captions use a generic name (object, food, vegetables).
  • When both captions say which hand holds the knife, it switches with no hand-over in 20% of pairs in the exo demonstrations, and 0% in first-person video.

Likely cause
The Captioner prompt (flora_unified/unified_input.py, prompt()) contains the BEFORE / TARGET / AFTER video blocks and the instruction. It has no input for previous captions or for the entities and states established so far. Inputs are also capped at 120 s, so longer videos are captioned in independent pieces.

Questions

  1. Is there a supported way to condition a caption on the previous captions, or on an episode-level list of entities? The only text input we found is --instruction.
  2. Is consistency across actions (entity names, states, hands) part of the training objective, or of WGO-Bench?

Our setup (differs from the validated configuration)

  • A100 40 GB (validated: 80 GB). The Captioner ran with 4-bit NF4 weights (bitsandbytes, BF16 compute), keeping the FP32 Gated DeltaNet parameters. TempSeg ran as released.
  • Video at source fps (30), downscaled to 640Γ—360, in consecutive 119 s pieces.
  • transformers 5.8.1, torch 2.11.0, flash-linear-attention, causal-conv1d.

Please let us know if any of these could explain the behaviour.

Sign up or log in to comment