Restructure local-evidence manuscript and record analysis controls

This commit is contained in:
Xin Wang
2026-09-17 02:14:56 +08:00
parent 5c29457cc6
commit a183fe5944
11 changed files with 1009 additions and 742 deletions
+19
View File
@@ -20,6 +20,7 @@ recall, without hurting addressed responses or yield behavior.
| Need | Authoritative file |
|---|---|
| Current four-page manuscript structure and narrowed claim scope (2026-09-17) | [docs/manuscript_local_evidence_structure_2026-09-17.md](docs/manuscript_local_evidence_structure_2026-09-17.md) |
| ICASSP submission story, pruning and acceptance evidence bar | [docs/icassp2027_acceptance_storyline_2026-09-10.md](docs/icassp2027_acceptance_storyline_2026-09-10.md) |
| Current paper thesis and claim boundary | [docs/global_local_omni_paper_position_2026-09-07.md](docs/global_local_omni_paper_position_2026-09-07.md) |
| Progressive feature-fusion implementation route | [docs/progressive_feature_fusion_route_2026-09-02.md](docs/progressive_feature_fusion_route_2026-09-02.md) |
@@ -34,6 +35,24 @@ When files disagree, prefer the newest scoped document and verify behavior in
code/tests. A planned experiment is not an implemented feature or a measured
result.
The 2026-09-17 manuscript restructure uses causal local evidence adaptation
as its umbrella: model architecture (actual G + recent 1-s Qwen audio,
optional pooled vision) and streaming inference architecture (8-s maximum
presentation budget, completed blocks, temporary observed tail). Semantic
opportunity evaluation is deferred while annotation quality is audited;
dense forecasting and raw endpoint onset/offset AP remain the current paper
scope. This does not complete P0 or establish a visual/tail-performance gain.
Earlier person-grounded/semantic strategy documents remain conditional
extensions and historical records, not descriptions of the default draft.
The scoped [analysis experiment log](docs/local_evidence_analysis_experiment_log_2026-09-17.md)
queues local-evidence controls, tail-refresh x local-audio comparisons, context
caps, persistence, activity-error cases, full-pipeline profiling, and paired
Qwen Omni 3B/7B--MiniCPM-o 4.5 backbone-transfer controls. Transfer fixes the
local audio sidecar and audits readout, refresh, and actual history; the
MiniCPM entry point is not GPU-verified or an established matched 8-s cap.
All are pending in that log; Omni LoRA is deferred and no semantic gate is completed.
## Current state
### Verified assets
+2
View File
@@ -7,6 +7,8 @@ implemented or validated.
| Document | Role |
|---|---|
| [manuscript_local_evidence_structure_2026-09-17.md](manuscript_local_evidence_structure_2026-09-17.md) | Current narrowed four-page manuscript scope; supersedes older semantic/person-grounded descriptions for the default draft |
| [local_evidence_analysis_experiment_log_2026-09-17.md](local_evidence_analysis_experiment_log_2026-09-17.md) | Pending local evidence, tail/audio, context, cross-backbone transfer, persistence, error and efficiency controls; Omni LoRA deferred |
| [icassp2027_acceptance_storyline_2026-09-10.md](icassp2027_acceptance_storyline_2026-09-10.md) | Submission-focused paper story, evidence bar, pruning decisions and go/no-go criteria |
| [global_local_omni_paper_position_2026-09-07.md](global_local_omni_paper_position_2026-09-07.md) | Evidence-backed paper thesis after the causal oracle information screen |
| [progressive_feature_fusion_route_2026-09-02.md](progressive_feature_fusion_route_2026-09-02.md) | Gated route from pooled local evidence to Frame-set Attention, temporal person memory and Thinker adapters |
@@ -0,0 +1,199 @@
# Local evidence analysis:待做实验日志
日期:2026-09-17。状态:**设计已记录,以下实验均未在本轮执行**。
只修改日志与手稿占位,不新增训练、提取或 evaluator 实现;未产生新的实测结果。
当前稿件边界见 [四页稿结构决策](manuscript_local_evidence_structure_2026-09-17.md)。
## 本轮决定与篇幅
正文按 Main Comparison、Local Evidence Analysis、Streaming and Context Analysis、
Error and Qualitative Analysis 展开,不把六类实验并列成六个小节。
近期音频是核心,视觉是可选增量;Omni LoRA 暂缓,不预留独立小节。
MiniROADA stage-two continuation 不是 Omni LoRA,也不替代其适配对照。
同日追加:Qwen2.5-Omni 3B/7B 与 MiniCPM-o 4.5 的 backbone transfer 对照,
用于检验 local evidence 增量是否依赖单一骨干,不新增独立贡献或正文大节。
四页技术内容内优先保留:一张方法图、一张主表、一张 compact controls 表,
一张包含错误/失败案例的定性图。Detailed recipe、全部窗口/相位曲线和错误切片
存入实验记录;正文仅选择事先指定、能回答核心假设的摘要,不按测试涨点挑选。
结果解释文字将替换 TODO,而不是在当前四页基础上无限追加。
## 固定研究契约
- EasyCom Sessions 4--12 训练,1--3 测试;5 Hz,10 个 0.2--2.0 s horizon;
固定 background / wearer / others 顺序和原 dense labels。
- 新 recipe、窗口、干预延迟、场景规则和 case-selection rule 仅用训练侧确定。
最终沿用固定四 epoch 协议;若需改变,先记录训练侧依据与新协议版本。
- 正式矩阵 seeds 0/1/2;记录 split、parent/checkpoint hash、运行 commit、
feature/model/processor revision、优化器、有效学习参数、预算和 common valid pairs。
- Training-side development 必须重建未见该 fold 的 task parent;已经用全部训练
sessions 训练过的 parent 不能把 Session 12 宣称为 continuation 的 held-out dev。
- Sessions 1--3 已多次被查看,后续对照如实标为 exploratory;新增 seeds 不恢复
独立 confirmatory test,也不把帧或十个相关 horizon 当作独立重复。
- Dense:逐 horizon 三类 AP / mAP、wearer AP、十-horizon mean。
Raw:source wearer OFF/ON 条件下,分别以 p(wearer)/1-p(wearer) 预测未来 endpoint。
报告 AP、prevalence、分母和每个 session;GT current activity 只用于评测切片。
- 这些是 endpoint anticipation,不是 one-event-one-vote onset/offset detection。
P0 真实数据审计仍未完成;semantic opportunity-v1 AP 已 superseded,不能复用为新证据。
## 实验队列:全部 pending
| ID | 待做对照 / 审计 | 回答的问题 | 手稿位置 |
|---|---|---|---|
| E0 | 核验原始 pred/valid/target、sidecar 和 checkpoint provenance;打印代表性时间轴 | 是否比较了相同物理时间与有效样本? | Setup / 主表说明 |
| L1 | 同 recipe、seed 和 cutoff 的 A、G、G+A、G+A+V | 音频与全局 context 是否互补?V 是否提供额外收益? | 主表 + Local Evidence |
| L2 | 宽 global-only head,尽可能匹配 G+A 的有效学习参数;统一下游 hidden width 并报告 allocated/active 参数 | 收益是否仅来自更大 head? | Local Evidence TODO |
| L3 | 固定 checkpoint 的 past-delayed A / V,保留对应时间与 mask 审计 | 模型是否依赖及时局部证据? | Local Evidence TODO |
| L4 | 因果 current-activity classifier,当前预测概率重复至十个 horizon | Dense 收益是否主要是更好的当前状态识别? | Main Comparison TODO |
| T1 | 8-s cap 下 tail refresh × local A 的四组训练对照 | 两条最新证据路径互补,还是冗余? | Streaming 表上半部 |
| T2 | 同 block decomposition 从头 replay、future-only media intervention、cache reset;按十档 phase 分层 | cache 正确性与 tail-length dependence 是否成立? | Streaming TODO |
| C1 | 4/8/16-s cap 的 tail-aware G+A;按 cap 重提取并分别训练 | 历史长度是否影响主方法,8 s 是否是合理折中? | Streaming 表下半部 |
| C2 | 仅当要声称 local 分支缓解窗口敏感性时,在各 cap 增加 G 对照 | 窗口能否替代近期证据?融合是否对 cap 更稳定? | 条件追加,不新增正文小节 |
| B0 | 审计各骨干的 causal readout、维度、刷新与实际历史范围;先短片 GPU smoke | 跨骨干样本和接口是否可比? | Setup / Backbone transfer 说明 |
| B1 | Qwen2.5-Omni 3B/7B 各跑 G 与 G+A,保持同一份 local A | 增量是否在同系列不同规模下保留? | Local Evidence + compact 表末三行 |
| B2 | MiniCPM-o 4.5 各跑 G 与 G+A;匹配 Qwen refresh 对照后报告增量 | 增量能否迁移到另一 Omni 家族? | Local Evidence + compact 表末三行 |
| H1 | 预定义 activity 场景切片、正负计数、score/AP;纯负类只报告 distribution 或 calibrated FPR | 哪些可复核的活动场景仍混淆? | Error TODO |
| Q1 | 固定规则选择 raw onset、offset、hard-negative/shared failure 的同-horizon 时间轴 | 定量差异对应什么可观察错误? | 定性图空位 |
| S1 | 同硬件完整流水线 P50/P95 latency、吞吐、峰值显存;记录阶段分项与 block-transition cost | 逻辑 5 Hz 是否可实测在线运行,代价是什么? | Streaming TODO |
L1 的 A 是近期 1 s,G 是有历史的 integrated AV state。即使 recipe 和 head family
一致,也不能把 A/G 的差异纯粹归给 Thinker、语言推理或长时记忆;L2/C1 是必要限制性
对照。闲置占位权重不能充当有效学习容量匹配。
L3 只使用过去输入,不能拿未来帧、双向平滑或 nearest-future 对齐作为合法干预。
mask-only/availability 对照在缺失率与标签明显相关时追加,不先假定模型确有此 shortcut。
局部视觉采用逐人平均,person-slot permutation 应不改变结果;不能把排列不变当成
成功的 wrong-person grounding control。
## T1 四组及解释规则
| Omni refresh | local A off | local A on,固定 1 s / 5 Hz |
|---|---|---|
| Completed-only / 2-s update-and-hold | T1-C-G | T1-C-GA |
| Observed-tail / 200-ms refresh | T1-T-G | T1-T-GA |
四组共同固定:source-aligned 2-s blocks、8-s maximum budget、readout/head family、
训练暴露、目标、seed、common startup treatment 与 valid source--horizon pairs。
各组单独训练匹配的 head,不把单纯在 test masking 的 OOD 差异写成消融收益。
分别记录 tail 在 A off/on 下的 AP delta、A 在两种 refresh 下的 AP delta;
四组差值之差仅作为描述性交互量,AP 非线性且帧间相关,不直接推出统计独立或机制定论。
completed-only 未得到首个 state 的行在全部条件中统一处理并报告,不未来回填。
因 phase 不同,历史 span 随当前块位置变化;对齐同一 cutoff/phase 并保存实际范围。
`tail_embedding` 是辅助 preserved-EgoSpeak residual 的 block-phase 编码,不是 tail
内容。其 on/off 只能是该辅助架构内的独立可选实验,不能替代 T1。
同分块 replay 的数值一致性与当前尾块带来的预测收益分开报告;continuous-prefix
编码属于不同 representation condition,不作为必然数值等价的参照。
## 窗口与运行代价
C1 中 local A/V 固定 1 s,Omni cap 为预先指定的 4/8/16 s。各 cap 的 global state
必须从对应因果输入提取,不能通过裁剪缓存向量伪造窗口。8-s cap 行与 T1-T-GA
复用同一个确切 run,不重复训练后择优填写两处。
固定 checkpoint 改 cap 若执行,单独标成 distribution-shift sensitivity;不能混入
分别训练的主比较。C2 在没有执行前,不声称融合已降低对长 context 的依赖。
S1 计时包括视频读取/裁切、模态编码、尾块重算、cache/history rebuild、local evidence
和 head,不以缓存特征上的 head FPS 代替系统 FPS。固定硬件/dtype,预热、GPU 同步,
采样非边界与 block transition cutoff;记录是否含 I/O、并发/batching 和延迟积压。
没有完整测量前只能称 5-Hz logical output,不称已验证 real-time。
## Backbone transfer:同日追加,全部 pending
模型标识核对自官方模型卡:
[Qwen2.5-Omni-3B](https://huggingface.co/Qwen/Qwen2.5-Omni-3B)、
[Qwen2.5-Omni-7B](https://huggingface.co/Qwen/Qwen2.5-Omni-7B)、
[MiniCPM-o-4_5](https://huggingface.co/openbmb/MiniCPM-o-4_5)。
本轮没有提取新特征、训练这些配对或验证跨骨干性能。
| 骨干 | Global-only | Global + local audio | 主要解释 |
|---|---|---|---|
| Qwen2.5-Omni-3B | B1-3-G | B1-3-GA | 主体参考;协议完全一致时复用 L1/T1 的确切 run |
| Qwen2.5-Omni-7B | B1-7-G | B1-7-GA | 同家族规模对照,不等于仅改变参数量的因果实验 |
| MiniCPM-o 4.5 | B2-M-G | B2-M-GA | 跨家族迁移;先过 B0,不能与未匹配 Qwen 原分数直接排名 |
主迁移矩阵固定现有同一份 causal 1-s / 5-Hz Qwen local audio sidecar、mask 和
下游 head family,只更换 global backbone。不能同时把 A 换成该模型自己的 encoder,
否则无法区分 global backbone 与 local encoder 的贡献。若后续试 native local A,
另设第二层实验,不混入主迁移矩阵;V 在音频配对完成后再作可选扩展。
每个骨干都分别训练 G/GA,固定训练暴露与预先锁定的 recipe,记录参数与逐 seed delta。
完整记录保留绝对 M/W/On/Off、每-session/count;正文三行只摘要
`Delta(G+A - G)` 的四项 AP/mAP 百分点增量。不只呈现涨点骨干。
跨模型 head 不能直接复用权重;不同 hidden dimensions 用明确适配的投影,报告有效参数,
不能静默 padding 或截断。Qwen 当前 last-four-layer readout 与 MiniCPM 当前 final
normalized state 不同;B0 需冻结共同可实现的 readout 控制或明确标成接口差异,
不能把默认导出方式不一致解释成纯骨干效果。
B0 固定并审计相同 split/目标、physical cutoffs、模态可用性、输入采样、刷新频率、
startup/common valid pairs、history 范围、readout 和下游训练预算;保存实际范围、
source times、processor/model/code revision 与完整 latency/memory。
同样称“8 s”或“5 Hz”不代表相同可见历史或相同 state freshness。
不同预训练、编码器和 tokenization 仍有差异,因此配对增量是适配可迁移性的证据,
不是纯架构排名,也不预设 7B 更好或大模型不需要 local A。
MiniCPM 的现有状态见 [提取与验证说明](minicpmo_streaming_features.md):
`native-1hz-hold` 与 `cached-partial-5hz` 已有入口,但均缺真实 GPU smoke 证据。
原生 one-second commits 保留其 streaming-window policy;当前入口没有与 Qwen
物理 8-s budget 等价的已验证 cap。不能仅把原生缓存写成“8-s matched”。
- 先做 native 1-Hz hold G/GA pilot;必须另做 Qwen **1-Hz** update-and-hold G/GA,
对齐 one-second chunk boundaries、初始化与 source-age。T1 的 2-s hold 不能替代。
若 history 范围暂无法匹配,仅报告各自协议内增量为 scoped exploratory transfer,
不放进 matched 跨骨干摘要,不声称同预算的绝对性能排名。
- 主体采用 5-Hz observed-tail 时,MiniCPM 行仅在 boundary/同分块 clean replay、
snapshot restoration、future-only media tests 与实际 history 审计通过后准入。
`--allow-unverified-partial-tail` 产物不能进入论文训练;失败记 pending/unsupported,
不填 0 AP,也不拿 1-Hz 行顶替 5-Hz matched 行。
- Qwen 7B 也需独立 causal smoke、维度/显存检查和匹配提取;旧的不同窗口特征不能
因模型名相同就视为本矩阵已完成。每种 refresh 分层报告,不混合平均。
执行优先级:主 3B 归因矩阵先完成,再做 7B 配对;MiniCPM 先 B0/native pilot,
验证与可比性门槛通过后补正式配对。若跨骨干只验证了 local audio 的增量,
不能进一步声称同一 tail 算法或视觉收益已普遍迁移。
## Hard negative 与定性分析规则
先用 participant timing facts 冻结切片,例如同 other 的 pause/resume、other-to-other
切换、overlap;场景命名不直接赋予 semantic floor ownership。
positive/negative 仍由该 family/horizon 的原 dense endpoint 定义决定,不用 LLM verdict
强行覆盖。wearer backchannel 可以是 raw onset positive;other backchannel 是否是
raw offset negative,取决于 wearer 在未来 endpoint 是否仍在讲话。
H1 保存每种 scene × family × horizon 的 Npositive/Nnegative、duration、invalid counts、
分数分布;两类都存在时报告 AP/prevalence。纯负类 AP 记为 undefined,不记成 0;
若报告 FPR,阈值只在训练侧 calibration 选择,并同时给 matched-recall 结果与实际召回。
原 semantic-v1 ENTRY/INT AP 不再使用;v2 真实数据与人工审核后才能恢复 semantic panel。
Q1 用训练侧固定的 case-selection/horizon 规则选择病例并保留失败案例。将预测定位到
其未来 target time,同时标出实际 causal source cutoff;同一 horizon 比较 EgoSpeak、G、
G+A,V 仅在实际跑完时加入。不能将十个 horizon 的最大值包络或未来平滑曲线与当前 GT
直接拼接。转写/participant annotations 只作为分析可视化,不回流为模型输入。
## 下一步顺序与交付
1. E0 / training-side recipe freeze,然后 L1/L2;复用已提取特征,先补最小归因证据。
2. T1/T2,再执行 C1 和 S1;每个新提取路径先做单 session / 短片因果 smoke。
3. L4 与 L3;若要窗口稳定性 claim,补 C2,而不仅看 G+A 窗口曲线。
4. H1/Q1 与前述结果配套;语义审核与 v2 audit 独立保留,不因数值好坏决定是否审核。
5. B0/B1/B2:7B 配对与 MiniCPM native pilot 可在核心冻结后推进;准入后补迁移摘要。
6. LoRA 留作后续可选替代适配对照,不是本轮执行要求。
实际运行后放入 `results/<dataset>_<question>_<date>/`,至少 README、summary.json 或
metrics.csv,保留 provenance 与协议。正文替换 TODO/--,不要把 pending 改名为 measured。
阴性视觉、尾块或窗口结果均如实保留;三种子与逐 session 结果不等于足够的显著性证据。
手稿占位:[main.tex](../manuscript/main/main.tex),主表 `tab:main`、compact controls 表
`tab:ablation`、错误/定性图 `fig:qualitative_floor_events`。本轮没有启动 GPU 训练。
## 本轮文稿检查
本机 Tectonic 编译后的预览共四页(含参考文献);方法仍只有一条展示公式。
相对链接、TeX/bib 引用和 `git diff --check` 通过。四页及新表/图空位完成渲染检查,
没有 overfull 警告或可见重叠/裁切。现有 XeTeX/旧模板字体替代和 underfull 警告仍在,
这是 working preview,不是官方工具链的最终字体/篇幅验证。填入数值与分析后重新检查。
本轮没有修改 feature/label/evaluator/训练代码,没有将任何 pending 实验标为完成。
同日追加 backbone-transfer 短段和三行增量空位后重新编译、渲染检查全部四页,
仍为四页含参考文献;链接、TeX/bib keys、单展示公式与 `git diff --check` 再次通过。
未修改旧运行或宣称跨骨干提取/对照已完成。
@@ -0,0 +1,109 @@
# Local evidence adaptation:四页稿结构决策
日期:2026-09-17。状态:用户要求的内容重排,不是新模型实现或最终实验结论。
本文更新当前稿件组织;此前战略记录保留其当时判断。
## 同日后续决定:分析与待做实验
按用户要求暂不展开 Omni LoRA。结果部分采用 Main Comparison、Local Evidence
Analysis、Streaming and Context Analysis、Error and Qualitative Analysis。
详细队列、tail × local audio 四组、4/8/16-s context cap、persistence baseline、
capacity/recency 控制及运行代价记录在
[待做实验日志](local_evidence_analysis_experiment_log_2026-09-17.md);全部 pending,
不是新增实测结果,也没有启动训练或修改实现。正文保留数值表/图空位,先控制四页篇幅。
Hard-negative/qualitative 合并;原始活动标签与语义负例不能混用,semantic audit 仍暂缓。
同日追加 Qwen2.5-Omni 3B/7B 与 MiniCPM-o 4.5 的 backbone-transfer 配对。
主骨干仍为 3B;各骨干 G→G+A 固定同一份 local A,并区分 refresh/history/readout
差异。细节与准入门槛放日志,正文仅 Local Evidence 短段和 compact 表三行增量空位,
不新增独立贡献或大节。MiniCPM 提取入口未 GPU 验证,native cache 不等于 8-s cap。
## 中心命题与三点贡献
以 **causal local evidence adaptation** 组织近期音频、可选局部视觉和当前尾块读取。
两者不是相同表示:local A/V 显式暴露近期模态证据;tail handling 使全局 Thinker state
包含截止时刻已经观测到的当前块。不能把 tail 误写为另一条已提取的内容 embedding。
1. **模型适配框架**:不可见 wearer 的 global--local future-activity forecasting,
用冻结 Omni context 与近期模态证据融合,而非宣称首次提出多人 turn-taking。
2. **流式实现**:bounded context + committed history + temporary partial tail,
每 200 ms 对齐同一物理 cutoff。普通 cache 本身不是新算法;预测收益与实测效率待验证。
3. **受控分析**:分别报告 dense forecasting 与 endpoint onset/offset anticipation,
通过匹配容量、输入和刷新规则的对照定位收益,不能预写已改善语义 floor control。
第三项目前是研究设计,不是已通过的机制结论。近期音频是核心,视觉是可选消融;
即使正确视觉没有增量,也可如实报告,不能让稿件依赖未验证的视觉收益。
## 四页技术内容预算
官方上限为四页技术内容(含图表),可选第五页仅参考文献,
见 [ICASSP 2027 author guidelines](https://2027.ieeeicassp.org/author-guidelines/)
和 [submission instructions](https://2027.ieeeicassp.org/paper-submission-instructions/)。
篇幅符合要求不意味着工作必然被接收。
| 部分 | 建议预算 | 内容 |
|---|---:|---|
| Abstract + Introduction | 约 0.8 页 | 问题、相关工作、适配动机、三项贡献 |
| Method | 约 1.1 页 | 两个子节及一张模型/流式对齐图 |
| Experimental Setup | 约 0.6 页 | split、训练和两层 threshold-free 指标 |
| Results and Analysis | 约 1.3 页 | 主表、关键机制/尾块对照、限制 |
| Conclusion | 约 0.2 页 | 支持的窄结论 |
方法仅保留一条融合/输出公式,不展开普通 attention、mask、loss 或 cache 公式。
最终数值表和一条 horizon/phase 曲线优先于增加候选方法。
## 与当前代码对齐
- 主体:`easycom_head.py` 的 last-four-layer concat-MLP、256D local projection、
validity-aware feature concatenation 与 10×3 forecast head。
- 局部:`extract_turn_local_features.py` 的近期 1s Qwen audio valid-token mean;
可选视觉为 2FPS crop spatial mean → equal-person mean → recent valid-frame mean。
- 流式:`streaming_turn_model.py` 的 `OpenStreamReplayExtractor`,
2s source blocks、最多 8s presentation budget、完成块 payload 复用、临时 tail/cache
分支及单次完成块提交。稳态 span 为约 6.2--8s,不是每行精确 8s sliding crop。
- preserved-EgoSpeak residual 和阶段二仅为辅助架构实验,不是默认正文方法。
- `tail_embedding` 仅存在于 `egospeak_omni_residual.py`,编码十档 block phase;
不能归入当前 G+A head,更不是 tail-content/未来 horizon embedding。
- from-scratch replay 的正确性参照必须使用同一 block decomposition。
continuously encoded prefix 是独立表示对照,不能直接声称数值等价。
## 评测与实验边界
Dense:逐 horizon 三类 AP 的 mAP,再平均十个 horizon。Raw onset/offset:
按 source wearer OFF/ON 条件化,分别用 p(wearer)/1-p(wearer) 判断 future endpoint。
多个 source rows 可属于同一物理边界,不是 event detection 或 semantic ENTRY/YIELD。
两类 AP 的 prevalence 不同,不直接比较其绝对值;比较方法时固定共同 valid pairs。
Opportunity-conditioned semantic evaluation 按用户决定暂缓。旧 annotation workload 和
协议存于 [`annotation_protocol_notes.tex`](../manuscript/main/annotation_protocol_notes.tex),
不编入四页正文;历史数值仍在原 results/reports 记录中,不改成 human-reviewed。
P0 真实数据审核未完成,不能据此宣称减少抢话、理解 takeover 或 addressee。
新超参数、窗口和 recipe 只用训练侧 folds 确定。父 checkpoint 已见过的 Session 12
不能算其 continuation 的独立 dev。已反复查看的 Sessions 1--3 属 exploratory evidence,
新三种子只检验稳定性,不会自动恢复独立 confirmatory test 的性质。
最小对照:A/G/G+A;容量匹配;可选 V on/off;过去延迟的 local sensitivity;
completed-only versus observed-tail refresh(local A 固定 5Hz);block-phase 分层。
跨骨干对照报告同骨干 G/GA 增量;1-Hz hold 需匹配 Qwen 1-Hz 控制,不能用 2-s hold
替代;5-Hz MiniCPM 行必须通过 tail/cache/因果及 history 可比性审计。
在没有采样同一 cutoff 的 latency 和 memory 测量前,5Hz 是逻辑输出网格,不是实测 FPS。
## 稿件位置
- [`main.tex`](../manuscript/main/main.tex):重排正文,结果与机制结论仍显式 TODO。
- [`method_architecture.tex`](../manuscript/main/figures/method_architecture.tex):
模型与流式实现统一图,移除尚未测量的 25Hz MuVAP person-set 主结构。
- [`README.md`](../manuscript/main/README.md):当前编译和 scope 说明。
- [`REVIEWER_CHECKLIST.md`](../manuscript/main/REVIEWER_CHECKLIST.md):追加当前优先项,
旧的 semantic/track 路线保留为条件分支,不是本轮硬性实验清单。
提交前还需最终 author kit、作者信息、全部 TODO、实验证据与 IEEE AI-assisted drafting
披露检查。本轮仅修改文稿和图,未修改模型、目标、特征契约或训练 CLI。
## 本轮文档验证
使用本机已提供的 Tectonic 和现有未改动的 `spconf` / `IEEEbib` 模板编译,
当前 working PDF 共四页(含参考文献);最终填入结果后须重新检查技术内容不超过四页。
主方法仅一条展示公式。相对链接、TeX 引用和 bib keys 检查通过,
`git diff --check` 通过;方法图与所有 PDF 页完成渲染检查,并修复图中文字重叠和表格溢出。
结果 TODO 是有意保留的研究门槛,当前 PDF 不是可直接提交的最终稿。
@@ -1,5 +1,17 @@
# Omni 多人说话者理解与 wearer floor action:实验主线(2026-08-30)
## 2026-09-17 scoped analysis update
用户当前先写窄化的 activity-anticipation 稿件;Omni LoRA 暂缓,不展开独立分析小节。
局部 AV、tail refresh × local audio、context cap、activity hard-negative/qualitative
和运行代价,以及 Qwen Omni 3B/7B--MiniCPM-o 4.5 的 G/GA 配对迁移对照见
[dated experiment log](local_evidence_analysis_experiment_log_2026-09-17.md)。
下文保留历史 semantic/person-grounded gates;该更新没有完成 P0,没有实测新增结果,
也不授权以 raw endpoint AP 声称 semantic ENTRY/YIELD 或 addressee 理解。
跨骨干固定同一 local A;未匹配 refresh/history/readout 或未验证的 MiniCPM tail
不能进 matched 摘要。此 scoped transfer 更新覆盖下文旧的仅 cache-diagnostic 限制,
但不把 MiniCPM 变成默认主方法,也不声称已验证通用增益。
## 1. 论文真正要回答的问题
本项目不再把“Qwen2.5-Omni 是否能替换 EgoSpeak 的 ResNet、wav2vec 和
+46
View File
@@ -1,5 +1,51 @@
# Main ICASSP manuscript
## Current structure (2026-09-17)
The current draft uses **causal local evidence adaptation** as the single
umbrella for recent modality evidence and cutoff-aligned Omni tail access.
It supersedes the older scope description below; historical strategy docs
remain records of their dates. The new scoped decision is
[`../../docs/manuscript_local_evidence_structure_2026-09-17.md`](../../docs/manuscript_local_evidence_structure_2026-09-17.md).
- Method has two subsections: **Model Architecture** (task, global/local
features, fusion and learning) and **Streaming Inference Architecture**
(8-s maximum context, completed-history reuse, temporary current tail,
cutoff alignment). Only one displayed fusion equation remains.
- The core is frozen Qwen Omni `G` + recent 1-s Qwen audio `A`; pooled
person vision is optional, not an established performance contribution.
- The three contributions cover global--local adaptation, its partial-tail
streaming realization, and controlled dense versus onset/offset analysis.
Caching alone is not claimed as a new algorithm; mechanism gains await
matched controls.
- The method figure now depicts that actual core rather than an unmeasured
25-Hz MuVAP person-attention branch. Preserved-EgoSpeak residual fusion and
its block-phase embedding are auxiliary controls, not the default head.
- Semantic opportunity evaluation is deferred during annotation auditing.
Its historical protocol and workload are preserved in
[`annotation_protocol_notes.tex`](annotation_protocol_notes.tex), which is
deliberately not included in the submission PDF. Historical results remain
in the original `results/` and `reports/` records.
- Analysis uses Main Comparison, Local Evidence Analysis, Streaming and
Context Analysis, and Error and Qualitative Analysis. Omni LoRA is deferred.
Planned experiments are in the
[dated experiment log](../../docs/local_evidence_analysis_experiment_log_2026-09-17.md).
- Locked main rows and the tail-refresh x local-audio / context-cap table are
unmeasured placeholders, not zero or mixed-protocol confirmatory numbers.
Historical main-table screens are identified explicitly. Already inspected
official-test runs remain exploratory despite additional seed repetitions.
- Backbone transfer adds paired G/GA controls for Qwen2.5-Omni 3B/7B and
MiniCPM-o 4.5, fixing the same local audio sidecar. Compact table deltas are
pending and require readout/refresh/history audits; MiniCPM is not yet
GPU-verified or an established matched 8-s stream. This scoped transfer
overrides the older cache-diagnostic-only restriction below, not the 3B core.
- The body targets four technical pages with one method figure, one main
table, one compact streaming/transfer controls table, and one error/qualitative figure slot.
The optional fifth page is references only; replace TODOs rather than keep
appending, and finalize author kit and applicable AI-drafting disclosure.
## Build and historical scope
This is the editable paper directory. It uses the unmodified official ICASSP
2026 LaTeX assets stored in `../ICASSP2026_Paper_Templates/`. When the ICASSP
2027 author kit is released, replace or add the official template and update
+41
View File
@@ -2,6 +2,47 @@
This is an internal execution checklist. It is not part of the submitted PDF.
## Current priority override (2026-09-17)
Use the [local-evidence structure decision](../../docs/manuscript_local_evidence_structure_2026-09-17.md)
for the current draft. The older semantic/person-grounded checklist below is
a conditional extension, not authorization to describe it as implemented or
a prerequisite for this narrower activity-anticipation study.
- [x] Separate model architecture from streaming inference architecture.
- [x] Describe actual G+A fusion, optional pooled vision, and observed-tail
recomputation; retain only one displayed method equation.
- [x] Move the provisional LLM annotation protocol/workload outside the paper
body without relabeling it as human ground truth.
- [x] Reserve local-evidence, streaming/context, and combined error/qualitative
analysis slots; record pending experiments without LoRA expansion in the
[dated log](../../docs/local_evidence_analysis_experiment_log_2026-09-17.md).
- [ ] Complete a training-side-frozen A/G/G+A matrix with three seeds and common
causal-valid pairs; audit capacity and distinguish their history ranges.
- [ ] Evaluate optional vision on/off before retaining a visual-gain claim.
- [ ] Complete tail refresh x local-audio four-group comparison with enabled
local audio fixed at 5 Hz; report phase strata and same-decomposition replay.
- [ ] Re-extract/train the predeclared 4/8/16-s context-cap controls; add G at
each cap before claiming local fusion reduces context sensitivity.
- [ ] Add a predicted-current-activity persistence reference and capacity/recency
controls; do not supply GT activity as model input.
- [ ] Report scene-level activity-error counts and fixed-horizon timelines,
including a shared failure; semantic negatives cannot override raw labels.
- [ ] Report dense AP/mAP and conditional endpoint onset/offset AP separately,
including denominators, per-session results, and limits of the three-session
official test. Do not claim one-event-one-vote detection.
- [ ] Measure full extraction latency/memory before claiming real-time FPS.
- [ ] Run paired G/GA backbone-transfer controls for Qwen Omni 3B/7B and
MiniCPM-o 4.5 with the same local A; report within-backbone deltas and audit
readout, dimensions, refresh, and actual history. MiniCPM 5-Hz rows require
GPU tail/cache/causality verification; native 1-Hz pilots need Qwen 1-Hz
controls and cannot substitute for matched 5-Hz rows. The dated log overrides
the older cache-diagnostic-only scope below, not its safety checks.
- [ ] Acknowledge that already viewed Sessions 1--3 results are exploratory;
additional seeds do not create a fresh independent test.
- [ ] Resolve all TODOs, retain only supported mechanisms, and check the
four-technical-page limit, author kit, and IEEE AI-drafting disclosure.
## Reviewer verdict and frozen paper shape
The potentially publishable question is: **can a general-purpose Omni readout
@@ -0,0 +1,196 @@
% ARCHIVED INTERNAL NOTES: not included in the four-page submission draft.
% Source: main.tex before the 2026-09-17 local-evidence restructure.
% Provisional annotation workload and protocol notes, not model results.
% Table references refer to the previous manuscript layout.
% Upstream 2026-09-17 merge: semantic evaluation remains deferred in main.tex.
% Protocol-v1 opportunity AP is superseded: ENTRY cannot cross another other
% onset/intervening wearer activity; multi-competitor INT must not use an
% arbitrary onset. Re-run protocol v2 and audit labels before semantic claims.
% Retained upstream semantic qualitative plan (not compiled in main.tex):
\subsection{Qualitative Floor-Event Analysis}
We will compare EgoSpeak with the final matched model on human-confirmed
examples selected by pre-declared event subtype rather than post-hoc score
extremes. Each case will align participant-resolved activity, minimal transcript
context, the opportunity anchor and competing-risk censor, and the two models'
causally emitted wearer forecasts. The comparison will include a genuine wearer
entry, an other-to-other false-entry opportunity, and an INT-yield paired with a
non-takeover overlap; a shared failure case will be retained when space permits.
\begin{figure*}[t]
\centering
\fbox{\parbox[c][0.115\textheight][c]{0.965\textwidth}{
\centering
\textbf{Qualitative comparison placeholder}\\[0.7em]
\begin{tabular}{ccc}
Case A: wearer entry & Case B: other$\rightarrow$other HN
& Case C: INT-yield / failed takeover\\
participant timeline + transcript & opportunity anchor + censor
& EgoSpeak vs. proposed forecast\\
\end{tabular}
}}
\caption{Planned qualitative floor-event comparison. Final panels will use
human-confirmed protocol-v2 cases and show the same causal source time for both
models; the figure is a layout placeholder and contains no result claim.}
\label{fig:qualitative_floor_events}
\end{figure*}
\begin{table}[h]
\caption{LLM pre-label workload before human adjudication. Agreement is
between two independent passes.}
\label{tab:behavior_annotation_stats}
\centering
\scriptsize
\begin{tabular}{@{}lrr@{}}
\hline
Measure & EasyCom S1--4 & Ego4D AV val \\
\hline
Candidates & 2,128 & 3,608 \\
AI positive & 367 & 541 \\
AI hard negative & 1,017 & 1,174 \\
AI excluded & 744 & 1,893 \\
Two-pass agreement & 93.4\% & 82.1\% \\
Human-confirmed & 0 & 0 \\
\hline
\end{tabular}
\end{table}
\appendix
\section{LLM-Assisted Behavioral Event Annotation}
\label{app:event_annotation}
EasyCom's raw speech boundaries are acoustic annotations rather than floor
labels. We preserve them unchanged for dense forecasting and create a separate
behavioral-event layer. Its design principle is to anchor an observed wearer
behavior first and then retrieve the conversational opportunity that could make
that behavior meaningful. False-positive opportunities are mined independently
because, by definition, many contain no wearer transition.
\subsection{Positive-event mining}
\textbf{Wearer activity transitions.}
We preserve every raw wearer $0\!\rightarrow\!1$ and $1\!\rightarrow\!0$
boundary as a semantic review candidate. Candidate construction does not merge
short silence gaps, infer within-turn resumption, or decide whether overlapping
speech constitutes takeover. It only records participant-resolved temporal and
transcript facts. The source intervals and dense targets remain unchanged.
\textbf{Wearer entry.}
Every raw wearer onset at $t_b$ is proposed as one wearer-entry review item.
We search backward within the retrieval window for non-wearer offsets and store
each one with its response delay and factual indicators of intervening wearer
speech, intervening other onsets, and concurrent activity. These are possible
context anchors rather than deterministically admissible causes. The LLM and
human reviewer decide whether the boundary is a genuine new entry, a
within-turn resumption, a wearer backchannel, or an excluded non-event. A
preceding release is not required for a positive entry: the wearer may enter
after a release, from silence, or while another speaker remains active. When a
release clearly prompts the entry, the LLM or human may select one supplied
option; neither may invent or move a timestamp.
\textbf{INT-yield.}
Every raw wearer offset $t_y$ is proposed as an INT-yield review item. The
generator records the current wearer activity-run start, all nearby non-wearer
onsets and offsets, activity immediately before and after $t_y$, whether an
other speaker is pre-existing or begins during wearer speech, strict and
50-ms-tolerant boundary crossing, overlap duration, the next speech onset,
transcripts, and target-of-speech metadata. Relations such as
$t_w<t_o<t_y<t_o^{\mathrm{off}}$ are descriptive evidence only: they neither
admit nor reject a candidate and do not establish takeover. The LLM and human
annotator answer whether the wearer stopped because a non-wearer genuinely took
over the floor. Natural completion, post-completion activity, and within-turn
pauses are therefore resolved semantically rather than pre-filtered.
When a wearer activity run is itself only a backchannel within a non-wearer's
retained turn, its onset supplies the false-entry opportunity; its trailing
offset is excluded rather than counted again as a false-yield opportunity.
\subsection{False-positive opportunity mining}
Hard-negative regions are retrieved independently of positive wearer
transitions. For entry, a same-speaker pause followed by resumption and an
other-to-other handover while the wearer stays silent are false-entry
opportunities. For INT, a short non-wearer backchannel or a non-takeover overlap
during which the wearer retains and continues the floor is a false-yield
opportunity. The timing rules provide candidate types, not final semantic
labels.
\subsection{Semantic pre-labeling and human adjudication}
The annotation assistant jointly receives immutable timestamps,
participant-resolved activity, neighboring boundaries, gap and overlap
measurements, transcripts, and target-of-speech metadata when available. It is
instructed not to equate raw onset with floor entry, offset with yield, or silence
with an entry opportunity,
or overlap with interruption, and not to invent unavailable prosody, gaze, or
intent. EasyCom's \texttt{[L]} marker supplies laughter evidence only and is not
by itself a sustained floor take or takeover. Preceding release options are
optional metadata for a positive wearer-entry pre-label.
We use temperature-zero DeepSeek pre-labeling with a primary and a skeptical
pass (\texttt{deepseek-flash} for the EasyCom snapshot and
\texttt{deepseek-v4-flash} for the Ego4D AV snapshot). Disagreement on verdict,
event type, or hard-negative subtype produces an \textsc{Exclude} suggestion.
Every candidate then receives mandatory
human adjudication: accept the complete pre-label and optional release metadata,
relabel it, or exclude an
unscorable region. Only human-confirmed \textsc{Wearer-Entry},
\textsc{INT-Yield}, and hard-negative opportunities enter evaluation;
\textsc{Exclude} candidates do not. Thus \textsc{Exclude} is the sole
non-scoring verdict, but every exclusion retains a closed-vocabulary reason and
derived aggregation group. We report valid-but-out-of-scope behavior (e.g.,
natural wearer completion coincident with feedback), insufficient semantic
evidence, and data-quality failures separately; model-pass disagreement belongs
to insufficient evidence and is never counted as corrupt data.
Annotation-only transcripts, identities, target-of-speech metadata, LLM output,
and future observations are never supplied to the evaluated forecasting model.
% Snapshot source: reports/easycom_event_ai_prelabel_stats_v16/summary.json
% and reports/ego4d_av_event_candidates_2026-09-15/ego4d_av_val_candidates_ai.jsonl.
\begin{table}[t]
\caption{Descriptive LLM pre-label audit before human adjudication. Counts in
parentheses are percentages of all candidates in that column; agreement uses
all candidates as its denominator. These values describe annotation workload,
not ground truth or model performance.}
\label{tab:llm_prelabel_audit}
\centering
\scriptsize
\begin{tabular}{@{}lrr@{}}
\hline
Pre-label outcome & EasyCom S1--4 & Ego4D AV val \\
\hline
All candidates & 2,128 & 3,608 \\
Positive: wearer entry & 324 (15.2\%) & 503 (13.9\%) \\
Positive: INT-yield & 43 (2.0\%) & 38 (1.1\%) \\
HN: entry family & 892 (41.9\%) & 940 (26.1\%) \\
HN: INT family & 125 (5.9\%) & 234 (6.5\%) \\
Excluded: valid/out of scope & 602 (28.3\%) & 775 (21.5\%) \\
Excluded: insufficient evidence & 142 (6.7\%) & 1,098 (30.4\%) \\
Excluded: data quality & 0 (0.0\%) & 20 (0.6\%) \\
Two-pass semantic agreement & 1,987 (93.4\%)& 2,961 (82.1\%) \\
Human-confirmed & 0 & 0 \\
\hline
\end{tabular}
\end{table}
Table~\ref{tab:llm_prelabel_audit} expands the unreviewed AI summary in
Table~\ref{tab:behavior_annotation_stats}; neither table reports final human
annotation results.
The EasyCom column covers only Sessions 1--4, while the Ego4D AV column covers
the 3,608 validation candidates; the 32,768 Ego4D AV training candidates have
not yet received LLM pre-labels. All 5,736 reported rows remain unreviewed.
Because the candidate sets deliberately include mined hard-negative regions,
their class proportions are not estimates of natural event prevalence. The
higher-level counts are descriptive only and were not used for forecasting
threshold or model selection. The
higher Ego4D insufficient-evidence rate (30.4\% versus 6.7\%) and lower
two-pass agreement (82.1\% versus 93.4\%) identify a larger human-review burden;
they do not establish a cross-dataset accuracy difference without adjudicated
reference labels.
\todo{Before freezing this annotation protocol, audit randomly sampled
continuous timeline segments without candidate hints to estimate candidate
recall for entry, INT, and each hard-negative family. Independently double-label
a pre-registered subset, report its size and agreement statistic, freeze all
candidate parameters and prompt/model identifiers on Sessions 4--12, and
report final candidate, control, exclusion, and adjudicated-label counts.}
Binary file not shown.
+71 -80
View File
@@ -1,7 +1,6 @@
\documentclass[tikz,border=2pt]{standalone}
\usepackage{amsmath}
\usetikzlibrary{arrows.meta,calc,positioning}
\definecolor{navy}{HTML}{17324D}
\definecolor{bluefill}{HTML}{EAF2F8}
\definecolor{teal}{HTML}{137C8B}
@@ -9,89 +8,81 @@
\definecolor{orange}{HTML}{D97706}
\definecolor{orangefill}{HTML}{FFF3E0}
\definecolor{grayline}{HTML}{73808C}
\begin{document}
\begin{tikzpicture}[
font=\sffamily\scriptsize,
>=Latex,
flow/.style={-{Latex[length=2.0mm]}, line width=0.65pt, draw=navy},
aux/.style={-{Latex[length=1.8mm]}, line width=0.6pt, draw=teal},
box/.style={draw=navy, rounded corners=1.5pt, line width=0.65pt,
fill=bluefill, minimum height=7mm, align=center, inner sep=2.3pt},
localbox/.style={box, draw=teal, fill=tealfill},
residualbox/.style={box, draw=orange, fill=orangefill},
labelbox/.style={align=center, text=navy},
note/.style={font=\sffamily\tiny, text=grayline, align=center}
font=\sffamily\scriptsize, >=Latex,
flow/.style={-{Latex[length=1.8mm]},line width=0.65pt,draw=navy},
localflow/.style={flow,draw=teal},
box/.style={draw=navy,rounded corners=1.5pt,line width=0.65pt,
fill=bluefill,minimum height=8mm,align=center,inner sep=2.2pt},
localbox/.style={box,draw=teal,fill=tealfill},
note/.style={font=\sffamily\tiny,text=grayline,align=center}
]
\node[labelbox] (av) at (0,2.65) {causal full-scene AV\\prefix $\mathcal X_{\leq t_n}$};
\node[box, right=7mm of av, minimum width=24mm] (qwen) {frozen\\Qwen2.5-Omni};
\node[box, right=8mm of qwen, minimum width=12mm] (g) {global\\$G_{t_n}$};
\node[labelbox] (audio) at (0,1.45) {mixed audio\\$\leq t_n$};
\node[localbox, right=7mm of audio, minimum width=24mm] (cpc) {frozen causal CPC\\25-Hz processing};
\node[localbox, right=8mm of cpc, minimum width=12mm] (u) {shared\\$U_{t_n}$};
\node[labelbox] (faces) at (0,0.15) {visible face crops\\$\leq t_n$};
\node[localbox, right=7mm of faces, minimum width=24mm] (asd) {frozen causal AV/ASD\\25-Hz processing};
\node[localbox, right=8mm of asd, minimum width=20mm] (persons) {anonymous set\\$\mathcal P_{t_n}=\{[V_i;s_i]\}$};
\node[box, minimum width=21mm] (base) at (8.25,2.05) {$G+U$ base head\\$Z^{\rm base}_{t_n}$};
\node[localbox, minimum width=22mm] (attn) at (8.25,0.70) {masked person MHA\\query: $G_{t_n}+U_{t_n}$\\\scriptsize memory: $\mathcal P_{t_n}+$ NULL};
\node[residualbox, minimum width=19mm] (res) at (10.65,0.70) {zero-init residual\\$\Delta Z_{t_n}$};
\node[circle, draw=navy, fill=white, line width=0.7pt,
minimum size=5.5mm, inner sep=0pt] (sum) at (11.55,2.05) {$+$};
\node[box, minimum width=21mm] (out) at (13.15,2.05) {$10\!\times\!3$ future activity\\$0.2$--$2.0$ s};
\draw[flow] (av) -- (qwen);
\draw[flow] (qwen) -- (g);
\draw[aux] (audio) -- (cpc);
\draw[aux] (cpc) -- (u);
\draw[aux] (faces) -- (asd);
\draw[aux] (asd) -- (persons);
\draw[flow] (g.east) -| ($(base.west)+(-0.25,0.12)$) -- (base.west);
\draw[aux] (u.east) -| ($(base.west)+(-0.25,-0.12)$) -- (base.west);
\draw[flow] (g.east) -- ++(0.3,0) |- (attn.north west);
\draw[aux] (u.east) -- ++(0.5,0) |- (attn.west);
\draw[aux] (persons.east) -- (attn.west);
\draw[flow] (base) -- (sum);
\draw[aux] (attn) -- (res);
\draw[flow, draw=orange] (res.north) |- (sum.south);
\draw[flow] (sum) -- (out);
\node[note, below=1.5mm of base] {trained first, then frozen};
\node[note, below=1.2mm of res] {trainable adaptation};
\draw[grayline, line width=0.45pt] (-0.15,-0.62) -- (14.35,-0.62);
\node[anchor=west, font=\sffamily\scriptsize\bfseries, text=navy]
at (-0.05,-0.92) {Causal streaming at cutoff $t_n$};
\node[anchor=east, text=navy] at (2.25,-1.45) {Omni input};
\draw[fill=bluefill, draw=navy, line width=0.55pt] (2.45,-1.67) rectangle (4.35,-1.23);
\draw[fill=bluefill, draw=navy, line width=0.55pt] (4.35,-1.67) rectangle (6.25,-1.23);
\node[text=navy] at (3.40,-1.45) {cached 2-s blocks};
\node[text=navy] at (5.30,-1.45) {$\cdots$};
\draw[fill=orangefill, draw=orange, line width=0.65pt] (6.25,-1.67) rectangle (9.15,-1.23);
\node[text=orange] at (7.70,-1.45) {current partial block};
\draw[dashed, draw=orange, line width=0.8pt] (9.15,-2.90) -- (9.15,-1.02);
\node[anchor=south, text=orange, font=\sffamily\tiny\bfseries] at (9.15,-1.02) {$t_n$};
\node[note, anchor=west] at (9.40,-1.45) {latest observed input included\\up to 8-s rolling budget};
\node[anchor=east, text=teal] at (2.25,-2.15) {local encoder};
\foreach \x in {2.55,2.85,...,8.85} {
\draw[draw=teal, line width=0.55pt] (\x,-2.33) -- (\x,-1.97);
\node[anchor=west,font=\sffamily\scriptsize\bfseries,text=navy]
at (-0.15,3.15) {Model: global context + recent evidence};
\node[align=center,text=navy] (av) at (0.65,2.45)
{full-scene AV\\observed prefix};
\node[box] (omni) at (3.05,2.45) {frozen Qwen2.5-Omni\\8-s maximum context};
\node[box] (global) at (5.65,2.45) {last-four-layer\\projection $G_n$};
\node[align=center,text=teal] (audio) at (0.65,1.28)
{recent 1-s\\mixed audio};
\node[localbox] (ae) at (3.05,1.28) {frozen Qwen audio\\valid-token mean};
\node[localbox] (ap) at (5.65,1.28) {local projection\\$\widetilde A_n$ + validity};
\node[align=center,text=teal] (video) at (0.65,0.08)
{recent 1-s\\person crops};
\node[localbox,dashed] (ve) at (3.05,0.08)
{frozen Qwen visual\\recent crop pooling};
\node[localbox,dashed] (vp) at (5.65,0.08)
{optional projection\\$\widetilde V_n$ + validity};
\node[box,minimum width=20mm] (fusion) at (8.35,1.28)
{feature concatenation\\trainable MLP};
\node[box,minimum width=23mm] (out) at (11.15,1.28)
{$10\times3$ future activity\\0.2--2.0 s};
\draw[flow] (av) -- (omni);
\draw[flow] (omni) -- (global);
\draw[localflow] (audio) -- (ae);
\draw[localflow] (ae) -- (ap);
\draw[localflow,dashed] (video) -- (ve);
\draw[localflow,dashed] (ve) -- (vp);
\draw[flow] (global.east) -- ++(0.35,0) |- (fusion.north);
\draw[localflow] (ap) -- (fusion);
\draw[localflow,dashed] (vp.east) -- ++(0.35,0) |- (fusion.south);
\draw[flow] (fusion) -- (out);
\node[note] at (10.95,0.22)
{background / wearer / aggregate others\\no semantic event or identity output};
\draw[grayline,line width=0.45pt] (-0.15,-0.65) -- (12.5,-0.65);
\node[anchor=west,font=\sffamily\scriptsize\bfseries,text=navy]
at (-0.15,-0.98) {Stream: committed history + temporary current tail};
\node[anchor=east,text=navy] at (2.05,-1.65) {Omni media};
\foreach \a/\b/\lab in {2.3/3.9/2 s,3.9/5.5/2 s,5.5/7.1/2 s} {
\draw[fill=bluefill,draw=navy,line width=0.55pt]
(\a,-1.87) rectangle (\b,-1.43);
\node[text=navy] at ({(\a+\b)/2},-1.65) {\lab};
}
\draw[draw=teal, line width=0.55pt] (2.55,-2.15) -- (9.15,-2.15);
\node[note, anchor=west, text=teal] at (9.40,-2.15) {25 Hz internal states};
\node[anchor=east, text=navy] at (2.25,-2.72) {forecast grid};
\draw[draw=navy, line width=0.65pt] (2.55,-2.72) -- (9.15,-2.72);
\foreach \x/\lab in {3.15/0.2,4.65/0.4,6.15/0.6,7.65/0.8,9.15/$t_n$} {
\draw[draw=navy, line width=0.75pt] (\x,-2.92) -- (\x,-2.52);
\node[below=0.5mm, font=\sffamily\tiny, text=navy] at (\x,-2.92) {\lab};
\draw[-{Latex[length=1.4mm]}, draw=teal, line width=0.55pt] (\x,-2.32) -- (\x,-2.50);
\draw[fill=orangefill,draw=orange,line width=0.65pt]
(7.1,-1.87) rectangle (8.5,-1.43);
\node[text=orange,font=\sffamily\tiny] at (7.8,-1.65) {partial tail};
\draw[fill=white,draw=grayline,dashed,line width=0.55pt]
(8.5,-1.87) rectangle (8.7,-1.43);
\node[note,anchor=west] at (9.0,-1.65)
{three completed blocks + observed tail\\8-s maximum; future portion excluded};
\node[note,text=navy] at (4.7,-2.13) {reuse completed media payloads};
\node[note,text=orange] at (7.8,-2.13) {recompute at each cutoff};
\node[anchor=east,text=teal] at (2.05,-2.62) {local evidence};
\draw[draw=teal,line width=1.8pt] (7.7,-2.62) -- (8.5,-2.62);
\node[note,anchor=west,text=teal] at (9.0,-2.62)
{recent 1-s audio / optional vision\\refreshed on the common 5-Hz grid};
\node[anchor=east,text=navy] at (2.05,-3.18) {decision grid};
\draw[draw=navy,line width=0.6pt] (2.3,-3.18) -- (8.5,-3.18);
\foreach \x in {2.42,2.58,...,8.34} {
\draw[draw=navy,line width=0.5pt] (\x,-3.28) -- (\x,-3.08);
}
\node[note, anchor=west, text=navy] at (9.40,-2.72) {5 Hz fusion and prediction\\every fifth local right edge};
\draw[draw=navy,line width=0.9pt] (8.5,-3.3) -- (8.5,-3.06);
\draw[dashed,draw=orange,line width=0.75pt]
(8.5,-3.35) -- (8.5,-1.15);
\node[anchor=south,text=orange,font=\sffamily\tiny\bfseries]
at (8.5,-1.15) {cutoff $t_n$};
\node[note,anchor=west,text=navy] at (9.0,-3.18)
{one prediction every 200 ms\\same cutoff and target index};
\end{tikzpicture}
\end{document}
+314 -662
View File
File diff suppressed because it is too large Load Diff