SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2503.07259 · 2025

COMODO: Cross-Modal Video-to-IMU Distillation for Efficient Egocentric Human Activity Recognition

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 13 functions out of this paper's own repositories and ran 8 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
Breezelled/COMODO canonical 8 of 13
FunctionStatusWhere it lives
UESTC_MMEA_CL_MOMENT_train_collate_fn Ran Breezelled/COMODO/comodo/utils/collate_util.py
code served (permissive licence) · get_code("aa4e578d8fe253e7")
extract_embeddings Ran Breezelled/COMODO/comodo/utils/svm_util.py
code served (permissive licence) · get_code("b2d90cc702165a7d")
info_nce Ran Breezelled/COMODO/comodo/loss.py
code served (permissive licence) · get_code("814f7a78b3f4f115")
resize Ran Breezelled/COMODO/comodo/utils/model_util.py
code served (permissive licence) · get_code("77589f4d86131356")
train_collate_fn Ran Breezelled/COMODO/comodo/utils/collate_util.py
code served (permissive licence) · get_code("0076a30fbf64e6f1")
train_svm_on_embeddings Ran Breezelled/COMODO/comodo/utils/svm_util.py
code served (permissive licence) · get_code("9f7e3bf05a75b359")
transpose Ran Breezelled/COMODO/comodo/loss.py
code served (permissive licence) · get_code("55f1419d4d8c483c")
video_collate_fn Ran Breezelled/COMODO/comodo/utils/dataloader_util.py
code served (permissive licence) · get_code("b81095d2e1621d2e")
MLP Not yet run Breezelled/COMODO/comodo/utils/model_util.py
code served (permissive licence) · get_code("26d5467aad92b08b")
UESTC_MMEA_CL_Mantis_train_collate_fn Not yet run Breezelled/COMODO/comodo/utils/collate_util.py
code served (permissive licence) · get_code("60c7d71a83786e99")
evaluate_svm Not yet run Breezelled/COMODO/comodo/utils/svm_util.py
code served (permissive licence) · get_code("dfb4e9322ba47b08")
get_imu_label_test_dataloader Not yet run Breezelled/COMODO/comodo/utils/dataloader_util.py
code served (permissive licence) · get_code("6ee9895415951b99")
get_imu_label_train_dataloader Not yet run Breezelled/COMODO/comodo/utils/dataloader_util.py
code served (permissive licence) · get_code("4f64cd8befda6e5d")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

The goal of creating intelligent, human-centered wearable systems for continuous activity understanding faces a fundamental trade-off: Egocentric video-based models capture rich semantic information and have demonstrated strong performance in human activity recognition (HAR), but their high power consumption, privacy concerns, and dependence on lighting limit their feasibility for continuous on-device recognition. In contrast, inertial measurement unit (IMU) sensors offer an energy-efficient, privacy-preserving alternative, yet lack large-scale annotated datasets, leading to weaker generalization. To bridge this gap, we propose COMODO, a cross-modal self-supervised distillation framework that transfers semantic knowledge from video to IMU without requiring labels. COMODO leverages a pretrained and frozen video encoder to construct a dynamic instance queue to align the feature distributions of video and IMU embeddings. This enables the IMU encoder to inherit rich semantic structure from video while maintaining its efficiency for real-world applications. Experiments on multiple egocentric HAR datasets show that COMODO consistently improves downstream performance, matching or surpassing fully supervised models, and demonstrating strong cross-dataset generalization. Benefiting from its simplicity and flexibility, COMODO is compatible with diverse pretrained video and time-series models, offering the potential to leverage more powerful teacher and student foundation models in future ubiquitous computing research. The code is available at this repository: https://github.com/cruiseresearchgroup/COMODO.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2503.07259")
get_code_for_paper("2503.07259")
have("2503.07259")

Connect an agent — have() is free.