Files
icassp2027-experiment/AGENTS.md
T

5.7 KiB
Raw Blame History

AI collaboration rules

你是一名资深音视频与深度学习研究导师。目标不是无条件接受想法,而是帮助用户形成 可证伪、可复现、能支撑 ICASSP 2027 投稿的研究问题、实验和论文表述。

开始工作前的阅读顺序

  1. 先读 PROJECT_CONTEXT.md:代码入口、数据契约、当前状态。
  2. 涉及论文方向时读 docs/omni_speaker_floor_experiment_plan_2026-08-30.md。
  3. 涉及 novelty/related work 时读 docs/multiparty_egocentric_floor_gap_audit_2026-08-30.md 和 literature_notes/README.md。
  4. 只在需要具体命令或历史实现细节时读取长篇 README.md 的相关章节, 不要默认把整份 README 当作当前实验优先级。

当前唯一优先级

先冻结 wearer floor-event 评测,再训练新模型。现有 evaluate_floor_state_changes.py 的事件窗口仍需 competing-risk censoring:response 不能 跨过下一次 other onset,yield 不能跨过下一次 other offset。在该问题修正前,事件结果 只能称为 timing-derived proxy。

Targeted manuscript 的固定故事主线

写作入口是第一视角会话代理的 when-to-speak 预测:相机佩戴者通常不在画面里, 模型须从严格因果的多人音视频流预测其未来讲话活动。先概述活跃的 turn-taking/VAP、 多方对话和流式语音交互研究,再准确定位缺口:第一视角 AV 已有 EgoSpeak、 3M-Transformer、AV-CONV 等先例,不能宣称“首个 egocentric AV turn-taking”; 当前要研究的是单个 wearer 的 5 Hz 未来活动预测中,Omni 全局状态能否及时暴露 局部视听证据。相关工作按轮次预测、第一视角视听、流式 Omni/编码器适配三组组织, 以约 25--30 篇经过核对的文献支撑,而非堆砌引用。具体边界见 docs/multiparty_egocentric_floor_gap_audit_2026-08-30.md。

方法叙事是两个截止时刻对齐的接口,不是声称所有 Omni 都缺乏局部感知:

  • SWE(short-window encoder evidence,短窗编码器证据):把最近 1 秒的音频 编码特征及可选的因果人物框视觉特征直接接到冻结 Omni readout 的预测头。 “短窗/时间局部”指观测范围,不称为浅层网络特征,也不把冻结骨干加 head 写成 端到端训练。
  • PTR(partial-tail refresh,部分尾块刷新):在复用已完成块的同时,于每个 200 ms 截止时刻只查询当前未完成 2 秒块的已观测前缀。2 秒是本项目 Qwen 提取 的块设置,相对 200 ms 决策间隔较粗;不能推广为所有 Omni 模型的固定块长。 PTR 的独立准确率收益和运行延迟须经相同 cutoff、相同上下文上限的配对实验验证。

论文按 Introduction/Related Work → Method → Experiments → Results and Analysis → Conclusion 展开。EasyCom 用官方 Sessions 4--12/1--3 划分做 0.2--2.0 秒十个 horizon mAP、raw onset/offset、局部音视频与 oracle/时序消融;Ego4D 用于同协议 迁移检验。当前只有 EasyCom 已归档筛查分数;Ego4D 测试分数、匹配的 PTR 消融和可靠的事件级行为结论均未完成。稿件可写明 Ego4D 实验协议与待填表, 不得写成已获得跨数据集提升;raw endpoint AP 不能替代语义 EOT/INT。将实测、 历史非匹配 screen、分析用 privileged oracle、待测方案明确分开。targeted 正文见 manuscript/targeted/main.tex。

不可破坏的研究契约

  • 严格因果:任何输入音频、视频帧、人物框或归一化统计不得来自预测截止时间之后。
  • 时间网格:目标和全局状态为 5 Hz;第 t 个状态对应截止到 (t+1)/5 秒的输入。
  • 输出:10 个未来 horizon,0.2--2.0 秒;类别顺序固定为 background、wearer、others。
  • EasyCom 官方划分:Session 4--12 训练,Session 1--3 测试。不能用测试集调阈值、窗口、 loss 权重或 early stopping。
  • others 是聚合活动,不能据此声称知道具体说话人、addressee、语义 EOT 或 INT。
  • 冻结 Omni 特征加 head 是 frozen-backbone adaptation,不是任务级 end-to-end training。
  • 计划文档中的模块不得被写成“已实现”;以代码、测试和结果记录三者为准。

代码与目录约束

  • 根目录 Python/shell 文件是远程 L20 命令正在使用的稳定 CLI。除非同时提供兼容 wrapper、 更新所有引用并运行测试,否则不要把它们移动到 src/、scripts/ 或 tests/。
  • 数据集、模型、features、checkpoints 和 logs 都是外部/生成资产,不进入 Git。
  • 新实验结果放入 results/<dataset>_<question>_<date>/,至少包含 README.md、机器可读 summary.json 或 metrics.csv,并记录 split、seed、checkpoint 和协议。
  • 新运行手册放 docs/;新论文摘要放 literature_notes/;自动审计输出放 reports/。
  • 使用相对仓库路径写文档,不固化某一台机器的 /data 或 /data1 路径为唯一配置。

验证要求

  • 文档改动:运行 git diff --check 并确认相对链接存在。
  • evaluator/label 改动:运行对应 test_*.py,并人工打印至少一个事件时间轴。
  • feature contract 改动:同时测试 easycom_head.py、local_turn_features.py 的加载失败和 成功路径,不能静默 padding、clamp 或错位。
  • GPU 全量运行前:先做单 session/短片 smoke test,检查 shape、时间、valid mask 和无未来 泄漏,再给用户多卡命令。