MCPcopy Index your code
hub / github.com/EGO4D/episodic-memory

github.com/EGO4D/episodic-memory @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,322 symbols 4,103 edges 217 files 339 documented · 26%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

[NEW!] Detailed examples for VQ Challenge submission available here: VQ2D README

[NEW!] 2022 Ego4D Challenges now open for Episodic Memory - Natural Language Queries - Visual Queries 2D - Moments queries - Visual Queries 3D

Please note that: - VQ test annotations for challenge submissions are now available: Ego4D Challenges - NLQ annotations have a known issue where ~14% of annotations have a near-0 query window and will result in under reported performance for the challenge (which will be corrected with a future dataset update): NLQ Forum Post

Ego4D Episodic Memory Benchmark

EGO4D is the world's largest egocentric (first person) video ML dataset and benchmark suite.

For more information on Ego4D or to download the dataset, read: Start Here.

The Episodic Memory Benchmark aims to make past video queryable and requires localizing where the answer can be seen within the user’s past video. The repository contains the code needed to reproduce the results in the Ego4D: Around the World in 3,000 Hours of Egocentric Video.

There are 4 related tasks within a benchmark. Please see the README within each benchmark for details on setting up the codebase.

VQ2D: Visual Queries with 2D Localization

This task asks: “When did I last see [this]?” Given an egocentric video clip and an image crop depicting the query object, the goal is to return the last occurrence of the object in the input video, in terms of the tracked bounding box (2D + temporal localization). The novelty of this task is to upgrade traditional object instance recognition to deal with video, and particularly ego-video with challenging view transformations.

VQ3D: Visual Queries with 3D Localization

This task asks, “Where did I last see [this]?” Given an egocentric video clip and an image crop depicting the query object, the goal is to localize the last time it was seen in the video and return a 3D displacement vector from the camera center of the query frame to the center of the object in 3D. Hence, this task builds on the 2D localization above, expanding it to require localization in the 3D environment. The task is novel in how it requires both video object instance recognition and 3D reasoning.

NLQ: Natural Language Queries

This task asks, "What/when/where....?" -- general natural language questions about the video past. Given a video clip and a query expressed in natural language, the goal is to localize the temporal window within all the video history where the answer to the question is evident. The task is novel because it requires searching through video to answer flexible linguistic queries. For brevity, these example clips illustrate the video surrounding the ground truth (whereas the original input videos are each ~8 min).

MQ: Moments Queries

This task asks, "When did I do X?” Given an egocentric video and an activity name (i.e., a "moment"), the goal is to localize all instances of that activity in the past video. The task is activity detection, but specifically for the egocentric activity of the camera wearer who is largely out of view.

License

Ego4D is released under the MIT License.

Core symbols most depended-on inside this repo

load
called by 125
VQ3D/annotation_API/API/bounding_box.py
to
called by 76
EgoTracks/tracking/models/stark_tracker/utils/misc.py
get
called by 36
EgoTracks/tracking/models/stark_tracker/params.py
copy
called by 21
EgoTracks/tracking/utils/tensor.py
_iterable
called by 19
EgoTracks/tracking/utils/tensor.py
resize_if_needed
called by 16
VQ2D/vq2d/baselines/utils.py
update
called by 15
NLQ/2D-TAN/lib/core/utils.py
_sample_visible_ids
called by 13
EgoTracks/tracking/dataset/trackingdataset.py

Shape

Method 705
Function 437
Class 180

Languages

Python100%

Modules by API surface

NLQ/VSLNet/model/layers.py55 symbols
EgoTracks/tracking/utils/tensor.py46 symbols
EgoTracks/tracking/dataset/transforms.py44 symbols
EgoTracks/tracking/models/stark_tracker/transformer.py36 symbols
VQ3D/camera_pose_estimation/SuperGlueMatching/models/utils.py31 symbols
VQ2D/detectron2_extensions/modeling/roi_heads/set_heads.py26 symbols
EgoTracks/tracking/dataset/eval_datasets/base_dataset.py22 symbols
VQ3D/camera_pose_estimation/SuperGlueMatching/models/superglue.py21 symbols
VQ2D/vq2d/structures.py21 symbols
VQ2D/detectron2_extensions/modeling/roi_heads/siam_heads.py20 symbols
VQ3D/camera_pose_estimation/utils.py19 symbols
VQ2D/vq2d/tracking/pfilter.py19 symbols

For agents

$ claude mcp add episodic-memory \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact