# 行人任务：数据、代码与进展交接

更新：2026-10-27，Asia/Shanghai。已迁移到桌面“行人工作”，供 Claude 接手时使用。

## 1. 先说清楚：现在东西在哪里

**当前主工程在这台 Mac 本机，不在 Ubuntu。** 本轮预处理、代码重建、测试和短训均在本机完成，没有向 Ubuntu/HPC 部署这套新工程，没有提交 HPC 作业，也没有正式长训在后台继续运行。此前是否存在其他远程旧工程，本次没有登录远程核查，不能把它们视为当前主版本。

**后续以桌面这份为主；原 Codex 目录保留为迁移前备份，不再两边同步开发。** 原始 ZIP 保留在父目录的“原始数据”中。

主目录：

```text
/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027
```

| 内容 | 当前实际位置 | 用途 |
| --- | --- | --- |
| 原始数据 ZIP | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/原始数据/alldata.zip` | 原始依据，只读保留 |
| 当前预处理数据 v4 | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/outputs/pedestrian_lampoff_1440_v4_3d_20261027/` | 下一步建模使用的数据版本 |
| 新模型工作代码 | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/reproduction/` | 继续开发、运行的主代码 |
| 论文及对照规格 | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/papers/` | 原文、来源、实现差异、未报告设置 |
| 作者旧代码核查 | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/code_audit/` | 旧 GitHub 版本的核查证据 |
| 新模型运行结果 | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/reproduction/runs/` | checkpoint、训练记录、评价轨迹 |
| 独立验证结果 | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/verification/` | 测试、复核报告、重放验证 |
| 模型交付快照 | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/outputs/Wang2025_行人模型复现准备_20261027/` | 已验收的冻结副本，日常开发用上面的工作代码 |
| 网站源码 | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/site/` | 网站源码快照，静态页面在 dist 中；未复制 .git，发布仓库仍在迁移前目录 |
| 工作日志 | `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/AGENT_LOG.md` | 最近进展和决策，新的条目在顶部 |

网站是说明、图示和进度展示，不是训练服务器，也不是完整私有数据存储：

- [数据说明](https://pedestrian-data-xiyan.young-leaf-4429.chatgpt.site/data)
- [预处理与问题处理结果](https://pedestrian-data-xiyan.young-leaf-4429.chatgpt.site/analysis)
- [建模准备](https://pedestrian-data-xiyan.young-leaf-4429.chatgpt.site/modeling)

原“数据待办”页面已撤下，旧入口跳转建模准备。最近一次发布记录为 v28，发布凭据不在本交接文档中。

## 2. 研究目标和当前路线

整体研究目标：建立一个认知知识库，让驾驶、阅读和行人过街三个任务检索其中的认知知识，再用于人的行为建模和模拟。

当前行人阶段先准备可靠过街数据，并建立可运行、可对照的行人模型基线。**认知知识库尚未接入本次重建模型。**

用户已经确认当前复现路线：Wang Yueyang、Markkula 等的 **2025 年感知＋运动约束单行人版本**。不是多智能体版本，也不是 CARLA 对抗测试路线。

## 3. 数据范围及当前数据文件

### 原始范围与选定范围

- 原始数据：60 人，3,000 轮正式试次；原始 ZIP 保留不改。
- 当前主范围：1,440 轮灯灭试次，其中 480 轮车辆让行、960 轮车辆不让行；60 人，每人 24 轮。
- 让行组用于检验何时入路和后续运动；不让行组用于检验等待、不入路、停止等行为，避免只学会一直向前走。
- 当前灯灭不代表参与者没有 HMI 经历，因此保存此前亮灯和误导历史。
- **当前没有为这批数据新设开发／验证／测试组。** 旧项目曾有按人分组，那不是原始数据字段，也不是本次已批准的建模划分。

原始 ZIP SHA256：

```text
673dfee4a8b4f3543aebe8008db19476c00c40143b5cf49b9139675d74c2d5d1
```

### 当前版本 v4 里该读什么

以下文件都在上表的 v4 目录内：

| 文件 | 内容 |
| --- | --- |
| `README.txt` | 版本口径、处理方法、字段与限制 |
| `full_points.parquet` | 逐点原始字段、修后位置、重算速度、质量及来源标记 |
| `trials.csv` | 每轮条件、入路、完成、时长、结果和核对结果 |
| `experiment_history.csv` | 全部 3,000 轮实验历史 |
| `trial_history_sequences.jsonl` / `.parquet` | 每轮此前全部试次的亮灯和误导 0/1 序列 |
| `repair_events.json` / `.csv` | 每个修复簇的支持区间、求解和结果 |
| `changed_positions.csv` | 逐点原位置和新位置，便于回溯 |
| `bound_diagnostics.csv` | 修前／修后超界诊断 |
| `frozen_protocol.json`、`processing_report.json` | 固定规则和处理统计 |
| `pipeline.py`、`position_solver.py`、`test_solver.py` | 处理代码快照及测试；重新生成仍依赖本项目源路径 |
| `SHA256SUMS.txt` | 文件完整性核验清单 |

逐点数据共 **1,259,769 行**。用 `in_processed_analysis=True` 选择当前分析范围，得到 **1,072,036 行**。完成后尾段仍存在完整文件里，只是不进入当前分析。

`full_points.parquet` SHA256：

```text
57052dad0805e4e6c4b157ba6997e677d2b93da0f8c4b9530ba2604fb6e7cf03
```

主要字段使用原则：

- `*_raw`、`source_member`、`source_line`、`t_ms` 保留原值、原文件位置和原时刻。
- `x/y/z_processed_m` 是处理后位置；`s_processed_m` 为过街进度坐标，方向对应 −Z。
- `processed_v_crossing_mps` 是有符号过街方向速度；`processed_speed_xyz_mps` 是三维速率模，两者不能混着比较。
- `position_estimated`、`repair_id` 标出离线估计；`velocity_uses_estimated_position` 标出速度是否依赖估计位置。
- `position_available_at_ms`、`velocity_available_at_ms` 记录估计何时才有足够支持。离线修复使用后续点，不得把修后点提前当成当时可见输入。
- 每轮第一个点的速度不可计算，不能把空值一律填成 0。

原 `P.speed` 按用户确认标记为 **mph（数值推定）**，换算 m/s 乘 0.44704；原值不改。原作者注释写 m/s，与数值证据冲突，原公式及内部时基未确认。主分析使用独立重算速度，不依赖原 `P.speed`。

独立单位标注和统计在：

```text
/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/outputs/P.speed_mph标记与速度分布_20261027/
```

## 4. 已做的数据处理及验收

1. **保留原数据和历史版本。** v1、v2、v3 仍在 outputs 下；当前用 v4，不能把旧页面的“8 处估计、46 处待核”当当前状态。
2. **复位与完成尾段。** 105 条复位前旧状态没有混入新轨迹；完成后数据保留但 mask 掉。未完成记录保留到真实日志末尾。
3. **先修位置，再算速度。** 在原 XYZ 上检测、局部求解，再重算速度和事件。没有全局平滑或对输出速度 clip。
4. **三维统一检查。** 速度参考 4 m/s，加速度参考 15 m/s²；加速度使用总支撑 110/154/220 ms 三种窗口，计算的是速度向量变化。检出时考虑原毫米舍入误差。它们是本次偏宽松工程规则，不是人体绝对上限。
5. **保护等待。** 不把长保持直接均摊成运动；没有仅凭“保持后更新大于 1 m/s”判错。普通零速和负向运动保留。
6. **统一事件和时长。** 入路采用 `s_mm>2050`，完成采用 `s_mm>=6239`；原 Crossing 和 footer 时长另外保留。事件是位置派生定义，不冒称脚接触路面真值。
7. **保留时序历史。** 每轮保存此前所有亮灯／误导 0/1 序列，不包含本轮和未来，不只保存累计次数。

结果：120 轮、164 个修复簇、1,894 个估计位置点；1,320 轮没有改动位置。主协议下超界诊断从 1,723 条降到 0。这个 0 只针对既定时间尺度及误差口径，不表示所有频率的运动都已证明合理，更不表示真实缺失运动被唯一还原。

事件统计保持不变：**527 轮完成，848 轮未入路，45 轮结束时仍在路内，20 轮入路后退回且未完成。** “退回”只是轨迹分类，不等于确认参与者取消意图。

当前选定范围的数据预处理已按本协议验收完成。后续重点转向模型输入、场景映射和研究评价；不要无新证据重做整套清洗。

## 5. 论文与作者旧代码核查

目标论文：*Modeling Pedestrian Crossing Behavior: A Reinforcement Learning Approach With Sensory Motor Constraints*，IEEE T-ITS，2025，DOI **10.1109/TITS.2025.3581693**。

- [2025 作者接受稿](https://eprints.whiterose.ac.uk/id/eprint/229473/)
- 本地接受稿：`/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/papers/wang_2025_TITS_accepted.pdf`
- 规格依据接受稿，不只依据 2024 年 arXiv v1。

旧论文：*Pedestrian crossing decisions can be explained by bounded optimal decision-making under noisy visual perception*，TRC，2025，DOI **10.1016/j.trc.2024.104963**。

作者公开旧仓库：[YYWang98/Pedestrian-crossing-decisions](https://github.com/YYWang98/Pedestrian-crossing-decisions)，核查固定提交 **169f60cb863a3fe65e48f97c909b1b4a96ea6933**。

旧模型是 DQN、二元决策、固定行走速度；新论文是 PPO，加上运动控制。旧 checkpoint 与新版观测／动作维度不兼容，不能直接加载当新版模型。

已核查 22 个 Python 源文件。作者仓库完整 clone 未成功，改为从公开 ZIP 按范围提取并核对选中文件；不要把 vendor 中的不完整 ZIP 当完整镜像。未发现明确 LICENSE，交付包没有重新分发作者源码或旧权重。

## 6. 新模型实现到哪一步

**完成的是“按论文明确项重建的可运行版本”，不是拿到了 2025 作者原代码，也不是已复现论文行为结果。**

工作代码在主路径表中 `reproduction/`，关键文件如下：

| 文件 | 职责 |
| --- | --- |
| `wang2025/config.py` | 参数、场景和显式工程假设 |
| `wang2025/perception.py` | 感知噪声与 Kalman 更新 |
| `wang2025/motor.py` | 行走步时、步长、加速度与能量 |
| `wang2025/vehicle.py` | 车辆运动与制动 |
| `wang2025/env.py` | Gymnasium 环境、观测、奖励和终止 |
| `wang2025/CORE_ASSUMPTIONS.md` | 原文未明确处采用的实现选择 |
| `train.py`、`evaluate.py` | PPO 训练、保存、加载和固定场景评价 |
| `configs/` | 论文配置和诊断场景 |
| `dataset_bridge.py` | v4 数据导出及时间可用性检查 |
| `tests/` | 核心、runner 和数据桥测试 |
| `README_RUN.txt` | 完整运行与解释说明 |

重要实现边界：

- 内部物理步长 0.1 秒，但策略每完成一整步行走才重新决策；决策步数、物理子步和模拟秒数分别记录。
- 20 个目标步速动作：0.1–2.0 m/s；**无零速动作，也无负速动作**。真实静止和退回行为因此是原基线的适用边界，不能修改真实数据迎合它。
- 当前观测为明确声明的 22 维工程实现；原文没有完整报告每项实现设置。
- 论文图中道路宽 3.5 m；本批数据近远路缘相差 4.189 m，不能直接混用。论文有两辆车，本批数据是一个记录车辆 C1。
- 感知 sigma 使用旧代码操作尺度；角单位没有冒称作者已确认。奖励累计、初始布局等未报告设置已单列工程假设。
- 曾发现的未来让行信息泄漏、固定刹车距离不够等实现错误已经修复；原错误 run 保留为历史，不用作当前验收。

## 7. 测试、训练和结果

39 项测试通过，包含核心 22、runner 13、数据桥 4；完成 Gymnasium/SB3 环境检查、数值机制核对、保存加载、源码哈希及评价重放验证。

以下运行名均在工作代码的 `runs/` 内：

| 目录 | 已完成的内容 | 可以得出的结论 |
| --- | --- | --- |
| `smoke_seed7_20261027_fixed2` | 1,024 次决策短训 | 软件训练链可运行 |
| `eval_seed100_101_20261027_fixed2` | PPO 与两种诊断基线共 48 集；PPO 0/16 成功 | 短训策略尚无有效表现 |
| `learning_probe8192_seed7_20261027` | 8,192 次决策训练 | 较长软件学习探针，仍非正式预算 |
| `learning_probe8192_eval_20261027` | PPO 6/16 成功；random、constant 各 0/16 | 在固定诊断条件中出现成功轨迹，不能声称泛化或论文性能 |
| `scripted_positive_control_20261027_fixed2` | 脚本策略 16/16 成功 | 成功事件和整段轨迹可正常产生；不是学习所得 |
| `wall_cap_probe_20261027_fixed2` | 时间上限停止、保存和状态检查 | 截断不冒充完整训练 |

`runs/` 里无 `fixed2` 的旧 smoke/eval 含已修复前的代码快照，不作为当前模型结果。

最终独立报告：

```text
/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/verification/FINAL_REVIEW.md
/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/verification/EXTRA_PROBE_REVIEW.md
```

**尚未完成：** 论文 3,000,000 步正式训练、多训练种子、人类个体 BOLFI 拟合、GLMM/LMM 及论文行为指标复现、认知知识库接入。严格作者精确设置检查仍有 17 项关键缺口，工程重建通过不等于严格检查通过。

## 8. 数据与模型目前连接程度

已生成 v4 数据 manifest，导出 P08T02、P14T02 两个 NPZ 样例并验证时间限制。目录：

```text
/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/data_ready/
```

**这只是数据接口准备，当前 PPO 短训使用模拟场景，没有使用 1,440 轮真人数据做参数拟合。**

接口区分过街目标、三维速率质量量和车辆记录；回放查询只返回当时或此前的车辆／灯态，不偷看未来。不能把人的真实后续轨迹作为策略输入。

仍需解决单车／双车、道路几何、事件和时间轴的映射。原实验车辆会对真人进度产生响应，直接回放是条件化比较；不能默认对不同模拟行人也是有效闭环环境。

## 9. 本机如何运行

已有环境，无需本轮新装依赖：

- 模型：`/opt/miniconda3/envs/metadrive/bin/python`，Python 3.9，torch 2.8.0、Gymnasium 1.1.1、SB3 2.7.0；本轮 CPU 运行。
- Parquet 导出：`/opt/miniconda3/bin/python`，已有 pandas／pyarrow。模型环境没有 pyarrow，先导出 NPZ 再读，不要直接混用解释器。

测试入口：

```bash
cd /Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/work/model_preparation_20261027/reproduction
/opt/miniconda3/envs/metadrive/bin/python -m unittest discover -s tests -v
```

如需新短训，使用一个不存在的输出目录：

```bash
/opt/miniconda3/envs/metadrive/bin/python train.py --profile smoke --seed 7 --output runs/claude_new_smoke
/opt/miniconda3/envs/metadrive/bin/python evaluate.py --model runs/claude_new_smoke/model.zip --seeds 100,101 --output runs/claude_new_eval
```

这里只提供命令，写本文档时没有启动训练。正式 3M 入口见 `README_RUN.txt`，先确定预算、种子和执行位置，勿把 smoke profile 的设置冒充正式配置。

## 10. Claude 接手后建议的顺序

1. 先读主目录 `AGENT_LOG.md` 顶部和本交接，确认在新工作代码目录，保留原始与冻结版本。
2. 对照 `papers/paper_diff.md`、`papers/reproduction_spec.md` 与 `wang2025/CORE_ASSUMPTIONS.md`，区分论文明确项、旧代码沿用项、工程假设。
3. 固定基线的正式训练预算、种子和评价定义；跑通不等于达到论文结果。
4. 明确本批数据单车场景如何映射、如何比较入路时刻和后续运动；静止／退回能力作为需解释的基线限制。
5. 再推进人类数据拟合、独立评价、认知知识库接入和机制比较；模型扩展与论文基线分版本保留。

如果转 Ubuntu/HPC，必须实际迁移代码、数据和环境并重新验证，不能只改一个路径就说已部署。用户规定：**HPC 文件放 JXY 文件夹，作业名以 `jxy_` 开头。** 本交接没有指定一个已经存在的远程部署路径。

### 避免接错的旧目录

```text
/Users/jxy/Desktop/20261024_NHB工作/行人工作/代码/
/Users/jxy/Desktop/20261024_NHB工作/行人工作/处理后数据_仅排除旧状态首行/
```

这些是以前的工程／处理结果，不是本次新模型主代码和 v4。桌面代码还分“数据预处理代码”“行人仿真与训练代码”；需要历史对照时再读取，不要把旧分组、旧重采样或旧模型混进新工程。

### 带走哪些文件

- 只让 Claude 了解情况：本文档即可。
- 要独立运行模型：再提供 `/Users/jxy/Desktop/20261024_NHB工作/行人工作/当前工程_20261027/outputs/Wang2025_行人模型复现准备_20261027.zip`。包内有新代码、规格、验收、有效短训和两轮数据样例；**不含完整 v4、原 ZIP、整篇论文或作者旧源码**。
- 要接全部真人数据：另带 v4 整个目录及独立 `P.speed` 单位标注；只有两轮 NPZ 不能代表全数据。
- 要重新生成预处理版：还需要原始 ZIP、工作脚本依赖和历史版本路径，不能把 v4 中脚本快照当作完全独立安装包。

本文档是本地路径交接，并未自动上传数据或发送给 Claude。绝对路径只对这台 Mac 有效；远程或网页 Claude 无法凭路径读取文件。

迁移说明：复制后逐文件 SHA256 核验 2,743 个原文件一致；清单见主目录 `迁移文件校验.json`。历史 run manifest、规格来源及冻结包内原绝对路径按历史证据保留，可能仍显示旧 Codex 路径；当前定位使用本交接。模型源码未改，保留了 checkpoint 源码哈希。网站 .git 与临时缓存未复制，网站后续发布仍需使用原发布仓库。
