Dataset Viewer
Auto-converted to Parquet Duplicate
Search is not available for this dataset
No rows found.

SOICT Memory-Task FPV — VR Supermarket Dataset

First-person-view (FPV) recordings of a memory-oriented shopping task in a virtual-reality supermarket, together with two independent sets of temporal annotations (what the participant is doing, and whether the way they do it is unusual) and the video frames extracted from every recording.

The dataset accompanies the paper Gameplay-to-Behavior of Memory-Task First-Person Video with Resource-Controlled Latent Cognitive Interpretation (URA Research Group, HCMUT).

Access: this repository is currently private. File names contain participant identifiers (see Privacy & ethics).

At a glance

Sessions (videos) 12
Participants 6 recorded names (several have more than one session)
Total duration 3,856 s (≈ 64.3 min)
Resolution / frame rate 1920 × 1080, ≈ 30 fps (HEVC / .mp4)
Total frames 115,685
Device Standalone Meta Quest headset (screen recordings, com.oculus.vrshell-*)
Annotation streams Activity (8 classes) and Event (5 classes)
Annotators 2 independent passes per video
Annotation language English (free-text note / evidence)

The task

Participants wear a VR headset and complete a goal-directed shopping mission in a virtual supermarket. They must remember and act on a shopping list:

  1. read the item list on a virtual board (task-list consultation);
  2. walk the aisles and point a controller ray at items, which shows a tooltip with name and price (product inspection);
  3. grab the target item (product selection) and review the cart (cart interaction);
  4. react to yellow banners that substitute or add items mid-trial (task-change notice);
  5. pay at the cashier (checkout).

Because the list has to be held in memory and can change, the recordings contain rich behaviour beyond simple task completion: searching, revisiting the list, hesitating, making mistakes and recovering from them.

Repository structure

.
├── README.md
├── videos/
│   ├── <video_id>.mp4              # 12 full-length FPV recordings
│   └── metadata.csv                # video_id, session date, duration, frame count, size
├── labels/
│   ├── activity_segments.csv       # all activity segments, both annotators (flat table)
│   ├── event_segments.csv          # all event segments, both annotators (flat table)
│   ├── annotator_1/<video_id>_{activity,events}.json
│   └── annotator_2/<video_id>_{activity,events}.json
├── all_frames/
│   └── <video_id>/<video_id>_partNNN.tar     # every frame, packed in tar shards
└── selected_clear_frames/
    ├── by_video/<video_id>/                  # sharp, representative frames (plain .jpg)
    └── by_activity/<activity>/               # the same kind of frames, grouped by activity

Video IDs

<participant>-<ddmm>[-<n>]: participant slug, session date (day + month, 2026), and a run index when a participant has several sessions on the same day.

khoi-1708-1, khoi-1708-2, khoi-1708-3, le-hien-2108-1, le-hien-2108-2, nguyen-an-2108-1, nguyen-an-2108-2, nguyen-kiet-2108-1, nguyen-kiet-2108-2, nguyen-lich-2108-1, nguyen-lich-2108-2, tran-quyen-1808.

The same ID is used for the video, its labels, and its frame folder.

Frames

  • all_frames/<video_id>/<video_id>_partNNN.tar — every frame of the video (frame_000001.jpg, frame_000002.jpg, …, numbered from 1, extracted at the native frame rate). Frames are packed into shards of ≤ 5,000 images because the Hub limits a folder to 10,000 files. Total ≈ 115.7k images.
  • selected_clear_frames/ — a small curated subset (≈ 163 MB) of sharp, unblurred frames, kept as individual images, organised both by video and by activity. Handy for quick inspection or for building small training/validation sets.

Frame index ↔ time: time_sec ≈ (frame_index − 1) / fps, with fps ≈ 30 (see videos/metadata.csv for exact per-video frame counts and durations).

Annotations

Every video was labelled in two separate passes (activity, then event) by two independent annotators, following the protocol ura-fpv-behavior-events-v3-two-branch. Annotators do not see each other's work. Both versions are released as-is (annotator_1, annotator_2); they are not merged into a consensus. Timestamps are in seconds from the start of the video, to 0.1 s.

Only intervals where something is observed are annotated — gaps mean "no measured action" / "normal behaviour"; they are not labelled.

Activity stream — "what is the participant doing?"

File suffix _activity.json; flat table labels/activity_segments.csv.

Field Description
start_sec, end_sec Segment boundaries in seconds
activity One of the 8 classes below
confidence Annotator confidence in [0, 1]
note Free-text justification
Class Meaning
task_list_consultation The shopping-list board is visible and readable
cart_interaction The cart panel is open and covers most of the view
product_inspection A tooltip (name, price) is shown while pointing at an item — looking, not yet taking
product_selection An item is actually taken off the shelf / put in the cart
product_search Scanning several shelves or areas for a target item
navigation Walking or turning with no panel open
checkout The payment screen is shown, or the participant is at the cashier
task_change_notice A banner announces a task change (app-generated, not a participant action)

Derived categories (re-consultation of the list, location revisits, "other task action", "no measured action") are not annotated by hand; they are inferred from the above.

Event stream — "is the way they do it unusual?"

File suffix _events.json; flat table labels/event_segments.csv. Only abnormal intervals are listed.

Field Description
start_sec, end_sec Segment boundaries in seconds
behavior_state One of the 5 classes below
certain y / n — annotator certainty
evidence Free-text description of what was observed
Class Meaning
hesitation Gaze or pointer wavers between options, or approaches then backs away from an item before deciding
freezing View stays almost motionless for several seconds while work remains to be done
distraction Attention lingers on something unrelated to shopping
task_error A visible mistake against the task (wrong item, wrong quantity, premature checkout, …)
recovery Correcting a previously recorded task_error

Overlapping events are recorded as separate rows.

Flat-table columns

activity_segments.csv: video_id, annotator, start_sec, end_sec, activity, confidence, note event_segments.csv: video_id, annotator, start_sec, end_sec, behavior_state, certain, evidence

Label statistics (per annotator)

Activity Count (A1 + A2) Event Count (A1 + A2)
product_inspection 168 hesitation 82
navigation 162 task_error 58
product_selection 86 recovery 22
cart_interaction 68 distraction 16
task_list_consultation 54 freezing 6
checkout 34
product_search 26
task_change_notice 22 Total 184
Total 620

Each annotator contributes 310 activity segments and 92 event segments.

Usage

from huggingface_hub import hf_hub_download
import pandas as pd

repo = "studyforptd/soict-memory-task-fpv-frames"

# Segment tables
acts = pd.read_csv(hf_hub_download(repo, "labels/activity_segments.csv", repo_type="dataset"))
evts = pd.read_csv(hf_hub_download(repo, "labels/event_segments.csv", repo_type="dataset"))

# One video
video = hf_hub_download(repo, "videos/khoi-1708-1.mp4", repo_type="dataset")

Download only what you need (the full repo is ≈ 20 GB):

# labels + video metadata only
hf download studyforptd/soict-memory-task-fpv-frames --repo-type dataset \
  --include "labels/*" "videos/metadata.csv" --local-dir soict_fpv

# curated frames (~163 MB)
hf download studyforptd/soict-memory-task-fpv-frames --repo-type dataset \
  --include "selected_clear_frames/*" --local-dir soict_fpv

# everything, then unpack the frame shards
hf download studyforptd/soict-memory-task-fpv-frames --repo-type dataset --local-dir soict_fpv
cd soict_fpv && for t in all_frames/*/*.tar; do tar -xf "$t" -C all_frames; done

Intended uses

  • Temporal action localisation / segmentation on egocentric VR gameplay video.
  • Detecting hesitation, freezing, distraction, task errors and recovery in goal-directed behaviour.
  • Benchmarking video-language models on long first-person videos with sparse, interpretable events.
  • Research on prospective memory and cognitive-load proxies derived from gameplay behaviour.

Limitations and out-of-scope use

  • Small scale: 12 sessions from a small group of participants; results will not generalise to other populations, environments or headsets without further validation.
  • Single scenario: one VR supermarket and one family of shopping tasks. Overlay UI (list board, tooltip, cart panel, banners) is part of the signal, and many activity labels depend on it.
  • Sparse, subjective event labels: event categories such as hesitation or distraction rely on human judgement; certain = n marks low-confidence rows. The two annotators sometimes disagree — that is retained deliberately.
  • Not a clinical tool: the behaviour labels are research annotations, not a diagnosis or cognitive assessment of any person. Do not use this data to infer medical or psychological conditions.
  • Do not use it to identify or profile the individual participants.

Privacy & ethics

The recordings are headset screen captures of a virtual environment; they show the virtual scene and interface, not the participants' real-world faces. Video, label and frame names nevertheless contain participant names and session dates. Treat the data as research-only and non-public until the authors have confirmed participant consent and the final release terms, and consider replacing names with anonymous IDs before any public release.

License

To be confirmed by the authors (license: other in the metadata). Until a licence is added, treat the data as available for non-commercial research use by the authors' team only.

Citation

@misc{soict_memory_task_fpv,
  title  = {Gameplay-to-Behavior of Memory-Task First-Person Video with Resource-Controlled Latent Cognitive Interpretation},
  author = {Bourgoin, Enzo and Dao, Phuc T. and Phan, Dung T. and Vo, Quynh T.N. and Ngo, Man T.T. and Tran, Hieu D.
            and Nguyen, Giao T.H. and Phan, Minh H. and Ha, Huong T.T. and Quan, Tho T.},
  note   = {URA Research Group, HCMUT. Dataset: studyforptd/soict-memory-task-fpv-frames}
}

Contact

Hugging Face: studyforptd

Downloads last month
38