# 二维观测反馈与动态写入:首轮小实验 日期:2026-09-21。状态:旧 3D 数据清理完成,二维数据及权重下载完成,首轮真实数据实验运行、修正和独立核验完成。 **当前结论:已经找到需要解决的问题,但还没有验证出一个有效的完整方法。模型更会还原颜色,不等于更会认出同一个对象。仅用 RGB 重建误差决定写入动作,目前没有可靠收益。** 本实验只检查一条最简反馈通道及两种写入动作。它不是完整的逆向 JEPA,也不是自然视频上的持续动态 TTT;不能用它直接宣判两个核心创新成立或失败。 ## 已完成的清理和下载 清理前逐项检查了路径、文件数、字节数、重解析点和运行进程。永久删除了代码根目录 `data` 下五个旧 Hypersim 数据目录,以及 `/DL3DV_Benchmark_20260920`。合计 **433,375 个文件、293,934,856,380 字节,约 293.9 GB 文件数据**。删除后独立确认六个目标目录均不存在。旧模型代码、checkpoint、实验结果与日志保留。 - [清理记录](D:/code/codepy/measurement_scene_state/outputs/dataset_cleanup_20260921/receipt.json) - [独立核验](D:/code/codepy/measurement_scene_state/outputs/dataset_cleanup_20260921/independent_verification.json) 新下载的是官方 DAVIS-2017 trainval 480p 和官方 DINOv2-S/14 预训练权重。ZIP 为 832,766,765 字节,权重为 88,283,115 字节;下载包、解压文件、权重合计约 **1.76 GB**。无需从头预训练视觉骨干。 原先考虑的 HPatches 官方地址当时无法解析,本轮实际使用 DAVIS,不把两者混称。数据来源、HTTP 信息与本地 SHA256 见[资产清单](D:/code/codepy/measurement_scene_state/outputs/vision_2d_probe_assets_20260921/manifest.json)。SHA256 是本地完整性记录,不是发布方公布的校验值。 ## 这次究竟测了什么 把同一视频的首帧作为参考,用冻结 DINOv2 特征寻找后续帧里最相似的位置,再把首帧对象标签传过去。我们观察修改后续帧的内部特征,是否使对象对应更准确。 全程只使用官方 train 的 60 段视频,按序列名 SHA256 排序固定划分: | 用途 | 视频数 | 实际使用 | |---|---:|---| | 拟合 | 24 | 拟合 PCA 和 RGB 线性读出,不训练 DINOv2 | | 发现与选择参数 | 12 | 从预设步长及固定动作路径中选择配置 | | 独立验证 | 16 | 配置冻结后运行,共 32 个首帧到后续帧的图像对 | | 保留 | 8 | 不提取特征、不评价 | | 官方 val | 30 | 不参加此次实验 | 每段使用首帧,以及排序后帧数的 1/3、2/3 位置;合计提取 156 张图的特征。骨干输入是 224×224,输出是 16×16 个 patch 特征。PCA 将特征投影并白化到 64 维;RGB ridge 读出只在拟合集学习,此后冻结。 每张目标图有两份初值为零的私有快权重。A 修正各位置的特征通道,B 根据 3×3 邻域特征修正。用当前图像真实 RGB 与读出预测的差异,直接产生外积更新;没有测试时反向传播或 SGD。两步都可选 OFF、A、B、ALL,共 16 条路径。ALL 的两份增量都从同一个旧状态计算。 最简单的动态策略在每步试算四个候选,用另一组可见 patch 的 RGB 误差选动作。用于选择的 patch 不直接进入该步残差写入,但 DINO 已经看过全图,因此这里**不是未见像素预测,也不存在严格的空间信息隔离**。选择区域反复用于选动作,不能再把它当作独立验证集。 首帧标签和后续帧真值只用于下游传播与评价,不进入写入或无标签策略。源特征不更新,每张目标图的状态重置。本轮没有跨帧记忆、遮挡恢复或长期错误传播实验。 ## 独立验证结果 指标是 **16×16 token 网格上的平均对象 IoU**,先对每段视频的两个目标取均值,再对视频平均。它不是官方 DAVIS J&F,不能拿下表直接与公开 VOS 排行榜比较。 | 方法 | 对象 IoU ↑ | 相对不写入,百分点 | RGB MSE ↓ | |---|---:|---:|---:| | 不写入 | 44.34% | 0 | 0.03022 | | 固定 A→A | 44.26% | −0.08 | 0.01511 | | 固定 B→B | 44.28% | −0.06 | 0.01532 | | 固定 ALL→ALL | 44.20% | −0.14 | 0.01616 | | 发现集选出的固定 OFF→ALL | 45.08% | +0.75 | 0.01770 | | 按 RGB 误差动态选择 | 44.03% | −0.31 | 0.01250 | | 每个图像对看答案选最佳恒定动作,仅诊断 | 44.70% | +0.36 | 0.02373 | | 每个图像对看答案选最佳两步路径,仅诊断 | 45.51% | +1.18 | 0.02407 | 发现集选定步长为 5.0、固定路径为 OFF→ALL;验证时没有重新选参数。动态策略的步长沿用这个选择,未对动态策略单独调参。 按视频做 10,000 次配对 bootstrap,固定 OFF→ALL 相对不写入的差值区间约为 **[−0.46, +2.53] 个百分点**;动态策略约为 **[−1.38, +0.47] 个百分点**。样本少,区间较宽,目前无法声称稳定提升或确定的普遍退化。这是探索性描述,不是多重比较校正后的确证检验。 oracle 在本次候选集合内使用了任务答案挑选路径;包含 OFF,因此天然不会比 OFF 差。它只刻画有限搜索空间里的机会,不是可部署结果,更不是完整模型的性能上限。 ## 这些数字说明什么 **第一,反馈确实能改动状态,但反馈目标和任务目标之间有落差。** 动态策略的平均 RGB MSE 比不写入低约 58.6%,而对象 IoU 没有提升。直白地说,它学会让内部特征更容易解释颜色,却未学会怎样改动才能更准确地对应对象。这支持继续研究“什么观测约束值得用于写入”,不支持直接加大 RGB 重建训练规模。 **第二,动作路径的机会有限,而且高度集中。** 最佳两步 oracle 比最佳恒定动作 oracle 高约 0.82 个百分点,但额外收益只出现在 32 个图像对中的两个。主要贡献来自 `scooter-board`,另一个是 `koala`。这还不足以证明普遍需要复杂动态控制器。 **第三,当前评价分辨率明显限制了判断。** 事后检查发现 `scooter-board` 的第二个目标帧,在 16×16 网格上只有一个前景 token。一个 token 的改变就可能带来很大的对象 IoU 跳动。保留全部视频时固定策略表面提升 0.75 个百分点;仅作为事后敏感性检查,去掉这段后其平均差值约为 −0.04 个百分点。主结果仍保留这段,不能为了好看而删样本。 动态策略平均改变约 4.00% 的最近邻位置,但只改变约 0.23% 的对象标签位置。这说明许多特征变化发生在同一对象内部;粗网格标签评价也容易出现大量平局。oracle 中选择 OFF 的次数包含平局时优先 OFF,不能解释成这些样本都必须禁止写入。 本轮写入规则本身也很简化:RGB 残差乘冻结 decoder 的转置再作标量归一化,并非 decoder 的精确逆,也不是完整双层结构的精确梯度。不能把该启发式规则的结果推广到所有观测驱动写入机制。 ## 对两个核心创新的意义与下一步 倒着的 JEPA 在完整方案里应当要求:内部共享状态能够被真实观测检查,后续观测可揭示状态的错误。动态 TTT 决定什么时候改、改哪部分、何时保留旧状态。这次只触及“真实观测残差→私有写入→动作选择”这段接口,尚未构建共享状态、多观测一致性和未来观测检验。 **现在最值得保留的切口是:如何让观测反馈识别有用写入,并拒绝只改善当前重建、却损伤后续视觉任务的写入。** 这与两个核心的关系更直接,但仍需证据。 下一步应先在发现集做两件小事,再决定是否进入完整模型训练: 1. 提高网格分辨率或采用可靠的稠密读出,检查动作机会是否仍存在,避免被一两个 token 的变化主导结论。 2. 比较 RGB 残差与跨观测一致性、对应循环一致性等部署时可取得的信号,检查哪种信号能够预测写入后的任务变化;允许 OFF,明确错误写入的代价。 这些只是下一阶段建议,本轮没有偷偷更换反馈目标、重新调验证集参数或启动大训练。已经看过的 16 段不再适合当未来方案的最终独立验证依据;下一轮需明确新的开发与封存边界。官方 val 和 8 段保留视频仍未用于特征或任务评价。 ## 工程产物与复现 代码按职责拆分,旧三维模型未被覆盖: - [features.py](D:/code/codepy/measurement_scene_state/src/mcss/vision_probe/features.py):冻结骨干、图像输入与特征提取。 - [adaptation.py](D:/code/codepy/measurement_scene_state/src/mcss/vision_probe/adaptation.py):读出拟合、私有快权重、写入与选择。 - [geometry.py](D:/code/codepy/measurement_scene_state/src/mcss/vision_probe/geometry.py):cosine 对应、对象指标及受控几何工具。 - [experiment.py](D:/code/codepy/measurement_scene_state/src/mcss/vision_probe/experiment.py):序列划分、缓存、发现/验证运行与原始记录。 - [run_vision_probe.py](D:/code/codepy/measurement_scene_state/scripts/run_vision_probe.py):命令行入口。 - [analyze_vision_probe.py](D:/code/codepy/measurement_scene_state/scripts/analyze_vision_probe.py):按视频聚合、配对区间和动作统计。 - [inspect_vision_probe.py](D:/code/codepy/measurement_scene_state/scripts/inspect_vision_probe.py):事后特征变化与分辨率诊断。 权威结果目录是 `\outputs\vision_2d_probe_20260921_corrected`: - [完整统计](D:/code/codepy/measurement_scene_state/outputs/vision_2d_probe_20260921_corrected/analysis.json) - [原始逐图像对记录](D:/code/codepy/measurement_scene_state/outputs/vision_2d_probe_20260921_corrected/raw.jsonl) - [事前协议](D:/code/codepy/measurement_scene_state/outputs/vision_2d_probe_20260921_corrected/protocol.json) - [事后诊断](D:/code/codepy/measurement_scene_state/outputs/vision_2d_probe_20260921_corrected/posthoc_diagnostic.json) - [独立完成核验](D:/code/codepy/measurement_scene_state/outputs/vision_2d_probe_20260921_corrected/completion_verification.json) 首轮输出保留在无 `_corrected` 的同名目录,标有 `CORRECTION_REQUIRED.json`。其中固定策略的汇总曾漏掉第二个目标帧,因此旧汇总不能引用。修复后使用同一事前协议和缓存重新运行,选择的参数不变,其他方法的逐样本指标精确复现;最终八种汇总方法各覆盖全部 32 个目标图像对。相关输入形状、私有状态、同时写入、标签、封存边界和完整样本覆盖检查已通过。 从代码根目录复现时使用新输出目录,避免覆盖现有证据: ```powershell rtk proxy .\.venv\Scripts\python.exe scripts/run_vision_probe.py --data-root data/vision_2d_probe/davis2017_trainval_480p/DAVIS --weights data/vision_2d_probe/weights/dinov2_vits14_pretrain.pth --backbone-repo third_party/dinov2 --output outputs/vision_2d_probe_reproduction --device cuda --eta 0.5 2 5 rtk proxy .\.venv\Scripts\python.exe scripts/analyze_vision_probe.py outputs/vision_2d_probe_reproduction ``` 固定轨迹在本诊断实现中也构造候选;动态策略额外进行每步四次候选 RGB 读出,两步合计八次。提交写入次数与候选构造/读出分别计账。未声称同计算预算,也未把 oracle 搜索成本算成部署成本。