实验二操作指南

本机部署,跑通第一棒 · 15 组操作指南

各组按所属项目(六目拼接 / 水下双目 / 数据基座)在本机部署跑通,亲手记下第一组基线数字。本页写清每组「在哪个文件夹操作、做什么、交什么证据」。完成后在 实验与考核页 在线提交。

2
提交截止:2026年11月27日(周五)16:30 · 每组子文件夹 ≤ 200MB · 以最后一次上传为准 · 登录后在实验与考核页提交(报告 PDF/Word 必传 + 附件 zip 选传)。
完整任务书:本页是各组实验二动作的速查版;每组完整的任务书(背景、核心任务、第19周交付清单、AI 分工、防糊弄指南、满分标准)见《讲义第三篇 · 任务书篇》PDF(9.9MB)——六目拼接第 1–8 章、水下双目第 9–12 章、数据基座第 13–15 章,翻到本组章节即可。
工作目录

在哪个文件夹里操作——与实验一衔接

实验一时每组已按任务书建立了固定的工作目录;实验二不换地方,就在原目录里继续。还没建目录的组,先按下表补建(一级目录名必须与下表一致,脚本与产物各归其位)。样例数据从本组所属项目的资料文件夹拷入 data/ 或对应数据目录。

组号组名项目 / 资料文件夹工作目录(实验一已建,实验二继续用)
第 1 组匹配决策六目拼接 六目拼接/小助手任务书/stitcher_cpp/training/group01_policy(含 group04_mc、group05_geometry 两个同名结构目录)
第 2 组特征质量stitcher_cpp/training/ 下本组三个头的子目录
第 3 组缝合融合stitcher_cpp/training/ 下本组三个头的子目录
第 4 组数据与标签stitcher_cpp/training_data/ 与 stitcher_cpp/tools/
第 5 组测试集与评测stitcher_cpp/tools/(ab_compare.py、run_regression.ps1)
第 6 组端到端数据e2e_gpu/training/group10_e2e_data(数据装载位 e2e_gpu/training/datasets/)
第 7 组端到端训练e2e_gpu/training/(任务夹 group11_e2e_train)
第 8 组端到端优化e2e_gpu/training/group12_e2e_optim
第 9 组数据水下双目 水下双目/助手任务书/tasks/u09_data/(主线 code/ 只读)
第 10 组部署tasks/u10_deploy/(主线 code/ 只读)
第 11 组训练tasks/u11_train/(主线 code/ 只读)
第 12 组评测tasks/u12_eval/(主线 code/ 只读)
第 13 组数据结构化数据基座 数据基座治理/tasks/d01_struct/(data/ 样例、src/ 脚本、out/ 产物)
第 14 组问数与图检索tasks/d02_agent_kg/(demo/、kg/、tests/)
第 15 组对抗训练tasks/d03_adversarial/(fake/、dataset/、model/)
衔接规则:实验一的解读记录、核对笔记留在原处;实验二的新脚本放 src/(或对应脚本目录)、新产物放 out/(或对应产物目录);终端完整输出请当场存档——它们就是你提交时最重要的验收证据。
资料基础

实验二要读的项目资料(数据基座治理文件夹导读)

项目资料以《数据基座治理》文件夹为核心(第 13–15 组必读;第 1–12 组读所属项目的任务书文件夹)。以下四份重点材料的要点导读——原始 PDF 由课代表统一拷贝,不上公网。各组的完整任务书文字版在《讲义第三篇 · 任务书篇》PDF。

PDF

总体方案与验收计划(26 页)

系统四大能力(A 一句话问数 / B 文档结构恢复 / C 知识门控 / D 图检索)、六模块架构、四条创新点、10.12 验收计划。实验二读什么:第 2 章架构——你部署跑通的就是这条流水线上的 YOUR 一环。
PDF

系统总体架构与模块衔接设计(3 页版)

三条支路(文档知识构建 / R-GCN 图检索 / 业务数据计算)+ 统一智能体。配套单页《模块的连接关系》与《三项实现机制详细说明》。
PDF

DeepSeek 接入说明(35 页)

API key 概念与保密纪律(环境变量,禁止硬编码)、config.json 逐字段、可直接照抄的调用示例、四角色(造假者/监考/语料/判官)调用时机、成本控制三件套。第 15 组实验四前必读,其余组了解 API 纪律。
PDF

真假知识对抗 Demo · 两份报告(51 + 41 页)

界面操作与效果测试报告(3300 题考卷含 300 OOD、诚实口径四跑验证)+ 论文体报告(24 造假家族、判官 GBT+17 维特征)。学它的测试方法:固定考卷、如实报数、OOD 如实当短板。
从这些资料里提炼的三条军规(全组适用):① 模型/程序边界分明——"模型只提出 SQL,程序执行 SQL"式的职责隔离;② 如实条款——抽不出、没把握、失败了都如实登记,敢标存疑别人才敢用;③ 一切结论以本机实测为准,AI 与文档只当先验。
项目一

六目拼接 · 第 1–8 组(资料夹:六目拼接/)

共同目标:把 360Stitcher 在本机编译部署出来,看到九个参数头以 ONNX 形式挂上系统,并用探针确认。两组探针别背混:九头探针 PASS (12/12)、引擎探针 PASS (5/5)。常见通用坑:配置忘切 Release;不在 build/Release 目录下运行。

1
第 1 组 · 匹配决策
工作目录:stitcher_cpp/training/group01_policy(含 group04_mc、group05_geometry)

目标:编译部署 + 九头上链 + 探针确认。

步骤:① VS2022 打开 stitcher_cpp/build/360stitcher.sln,切 Release 整体生成;② build/Release 下运行 360stitcher.exe --benchmark-stitch=deploy/simulation --provider=onnx,日志出现九行 [Provider](形如 wired: orb=1500);③ python tools/nine_head_probe.py,期望 PASS (12/12)。

验收证据:编译成功末段日志、九行 [Provider] 日志、探针 PASS,三段终端完整输出。

2
第 2 组 · 特征质量
工作目录:stitcher_cpp/training/ 下本组三个头的子目录

目标:部署流程与第 1 组一致;多做一步「占位模型」对照——验证"换模型"本身干净无副作用。

步骤:①②③ 同第 1 组(编译 / 九行 [Provider] / 探针 PASS 12/12);④ python tools/make_placeholder_models.py 生成九个占位模型,重跑同一基准,对照装前装后的 wired 值——应当完全一致。

验收证据:三段日志 + 装占位模型前、后两份 wired 值对照记录(两头都要留证据)。

3
第 3 组 · 缝合融合
工作目录:stitcher_cpp/training/ 下本组三个头的子目录

目标:部署同第 1 组;额外把日志里增益补偿(luminance)与融合(blend)两段计时基线记下来——这是实验三四 A/B 的 before。

步骤:①②③ 同第 1 组;④ 同一基准至少跑三遍,从日志找出 luminance 与 blend 计时行,记下稳定读数。

验收证据:三段日志 + 三遍基线计时记录表。常见坑:日志级别没开,计时行根本不打印。

4
第 4 组 · 数据与标签
工作目录:stitcher_cpp/training_data/ 与 stitcher_cpp/tools/

目标:真机采集前,先用 deploy/simulation 五张基准图跑通「遥测 → 三段标签」全流程;再批量喂 UDIS-D 公开拼接对,产出公开仿真标签交给第 1–3 组。

步骤:① python scripts/check_telemetry.py training_data/simulation_run1,期望 RESULT: PASS;② 运行 360stitcher.exe --benchmark-training-telemetry(部署见第 1 组)逐帧记录遥测;③ label_builder.py 生成三段标签并跑校验;④ 批量喂 UDIS-D ≥50 对,match/geometry 各 ≥200 行并过校验。

验收证据:遥测 PASS 日志、基准图完整日志、三段标签文件与校验输出。常见坑:遥测路径写错,校验器"不报错"但查的是空目录——先看统计了多少帧。

5
第 5 组 · 测试集与评测
工作目录:stitcher_cpp/tools/(ab_compare.py、run_regression.ps1)

目标:两条路线都在本机部署并通过探针——路线一 360stitcher.exe(九头探针 12/12)、路线二 360stitcher_e2e.exe(引擎探针 5/5)。

步骤:① 路线一:VS2022 Release 编译 → build/Release 下跑 benchmark(九行 [Provider])→ python tools/nine_head_probe.py PASS (12/12);② 路线二:进入 e2e_gpu,运行 bin/360stitcher_e2e.exe --benchmark-stitch=bin/simulation --engine=ropstitch,日志出现 [Engine] loaded 与 engine active → python training/engine_probe_test.py PASS (5/5)。

验收证据:两段部署日志 + 两个探针完整输出,四样齐全。常见坑:跑路线二探针时别开着 e2e.exe(文件占用)。

6
第 6 组 · 端到端数据
工作目录:e2e_gpu/training/group10_e2e_data(数据装载位 e2e_gpu/training/datasets/)

目标:真数据到位前,用合成对把「生成 → 训练口径 → 推理自测」整条流程跑顺。

步骤:① 进入 e2e_gpu/training,pip install -r requirements-cpu.txt;② python make_demo_data.py,产出 train/demo(32 对)与 val/demo(8 对);③ python infer_test.py,到 outputs/ 查看 infer_overlay.jpg 叠加可视化;④ 加餐:python make_real_dataset.py 生成 8 对真实测试批次(只进 val)。

验收证据:安装与三条命令的完整输出、datasets/ 目录清单、叠加可视化截图。

7
第 7 组 · 端到端训练
工作目录:e2e_gpu/training/(任务夹 group11_e2e_train)

目标:不上 GPU,本机 CPU 把「训练 → 导出 → 交付 → 探针」四环节走通——冒烟 5 分钟,救你半天 GPU 时段。

步骤:① 进入 e2e_gpu/training,pip install -r requirements-cpu.txt;② python train.py --epochs 2 --batch 4,产出 checkpoints/ropstitch.pth;③ python export_onnx.py 导出 exports/ropstitch.onnx,数值自检误差远小于 1e-3;④ 双击 deliver_model.bat 正本拷入 bin/models/,见 [OK];⑤ python engine_probe_test.py,期望 PASS (5/5)。

验收证据:四段完整输出。常见坑:跳过 CPU 冒烟直接上 GPU,数据少一列报错排查半小时。

8
第 8 组 · 端到端优化
工作目录:e2e_gpu/training/group12_e2e_optim

目标:跑通引擎模式 benchmark,采集逐帧计时,建立第一本「耗时账」。

步骤:① 部署路线二(同第 5 组):确认 [Engine] loaded 与 engine active;② benchmark 跑满 ≥30 帧,逐帧收集 [BenchmarkFrame] 行;③ 汇总均值与 P95,形成基线表(模型加载 / 预处理 / 引擎推理 / 后处理渲染 分列);④ 与第 6 组的 benchmark.py 交叉验证一次,两本账对得上才算数。

验收证据:完整 [BenchmarkFrame] 日志、基线表(均值 + P95)、交叉验证记录。常见坑:把模型加载算进每帧耗时;基线没注明测试图目录与帧数。

项目二

水下双目 · 第 9–12 组(资料夹:水下双目/)

共同背景:中海油 HYSY123 FPSO 锚链 ROV 检查视频的双目立体感知。开局资产包(500 对锚链图对、UWStereo 子集、零样本基线)已就位。4080 时段向第 10 组预约。

9
第 9 组 · 数据
工作目录:tasks/u09_data/(主线 code/ 只读)

目标:装通 ffmpeg / PySceneDetect / OpenCV 工具链,跑通「场景切割 → 段内抽帧 → 近重复去冗 → 按场景/日期切分」全流程,组装数据集 v0.1 雏形。

步骤:① 三件套逐个验证:ffmpeg -version、scenedetect version、python -c "import cv2",三条都有版本号;② scenedetect -i demo.mp4 detect-content list-scenes 切场景;③ 场景内均匀抽帧,感知哈希近重复剔除;④ 按场景/日期切分训练/验证集——同一天同一场景只进一边;⑤ 生成划分清单与数据卡(每帧带溯源)。

验收证据:三条版本号输出;抽帧与去冗日志;划分清单与数据卡。常见坑:重复帧没去冗;按帧随机切分导致数据泄漏。

10
第 10 组 · 部署
工作目录:tasks/u10_deploy/(主线 code/ 只读)

目标:按清单在 4080 上独立复现部署,跑通 run_demo.py;UWStereo 50 对零样本冒烟,EPE/耗时/显存三项都记;受阻按降级链处置并记录。

步骤:① 按清单装环境,conda list 全量存档;② 下载权重并校验完整性,跑官方样例 python run_demo.py 看到视差图输出;③ UWStereo 50 对零样本推理,逐对记 EPE、单对耗时、显存峰值;④ 受阻走降级链 vitl → vits → IGEV++,每级记录"卡在哪、换了什么、数字多少";⑤ 显存爆先降分辨率重试,同样记录。

验收证据:run_demo.py 成功日志;50 对三项数字表;降级链处置记录。常见坑:flash-attn 装不上别死磕,降级不是失败,无记录才是失败。

11
第 11 组 · 训练
工作目录:tasks/u11_train/(主线 code/ 只读)

目标:让一个 batch 走完全程——数据能进、loss 能算、梯度能传,为实验三扫清路障。

步骤:① 在第 10 组环境里激活 conda 环境;② 数据加载冒烟:取一个 batch,打印左目/右目/视差真值的形状与数值范围;③ 前向一步:输出视差形状与初始 loss 记进日志;④ 反向一步:优化器 step() 成功、显存正常(nvidia-smi 拍快照);⑤ 全程输出存档。

验收证据:batch 形状打印、初始 loss 数字、反向成功日志、显存快照。常见坑:数据路径不对 dataloader 静默空转——先确认日志里读到了多少对图;忘 model.train(),跑通的是推理。

12
第 12 组 · 评测
工作目录:tasks/u12_eval/(主线 code/ 只读)

目标:跑通"推理 → 保存 → 算分"链路:视差 float 存盘、可视化肉眼检查、EPE/bad-1/2/4px/D1 指标计算。

步骤:① 在第 10 组环境对 1 对 UWStereo 图推理,视差图 float 存盘;② 画可视化色图,肉眼检查合理性;③ 同一对算 EPE/bad-1/2/4px/D1,核对中间文件;④ 三步串成一条命令(脚本放 tasks/u12_eval/);⑤ 10 对批量版,存完整日志。

验收证据:一键脚本、单对与批量日志、视差可视化样例。常见坑:视差存 uint8 被截断指标全错;左右目接反 EPE 大得离谱。

项目三

数据基座 · 第 13–15 组(资料夹:数据基座治理/)

共同背景:工程资料结构化与本地数据查询系统(详见总体方案)。普通笔记本 CPU 即可完成实验二;API 花费要记账(第 15 组)。

13
第 13 组 · 数据结构化
工作目录:tasks/d01_struct/(data/ 样例、src/ 脚本、out/ 产物)

目标:本地部署 Python 解析环境(PyMuPDF / pdfplumber / camelot 三选二装通),批量跑通 10 页的「抽取 → 锚点 → 登记」流水线,产出第一批结构化 JSON。

步骤:① 建独立虚拟环境;② 三选二安装 pip install pymupdf pdfplumber(camelot 依赖 Ghostscript,装不上果断放弃,三选二达标);③ 写 extract_pipeline.py:输入 PDF 逐页跑"表格抽取 → 公式区域记录 → 锚点登记"输出 JSON;④ 对 10 页样例跑通全流程;⑤ 打印统计:几表、几段疑似公式、几条锚点、几个回退区域。

验收证据:两个库版本号输出、10 页流水线完整终端日志、JSON 产物路径。常见坑:中文路径报错——样例放英文相对路径;跨页表格先登记"可拼接线索",不强行合并。

14
第 14 组 · 问数与图检索
工作目录:tasks/d02_agent_kg/(demo/、kg/、tests/)

目标:本地小模型 + 演示库 + 白名单工具 + SQL 安全检查的问数 demo 装通——军规:模型只提出 SQL,程序执行 SQL;温度设 0。

步骤:① Ollama 装 Qwen2.5-1.5B(内存宽裕可 3B);② SQLite/DuckDB 装下四个精简查询模型(演示 CSV 各几百行);③ 写三个白名单工具函数 query_rows / agg_stats / describe_columns;④ SQL 安全检查:只读拦截 + 列名白名单;⑤ 三个样例问答各录屏(含 SQL 与查询结果)。

验收证据:ollama list 输出、建库行数统计、三段录屏。常见坑:模型没下载完就调用;输出不是纯 SQL——提示词里钉死格式;SQL 注入测试题自己先打自己一遍;温度忘设 0 两次回答不一致。

15
第 15 组 · 对抗训练
工作目录:tasks/d03_adversarial/(fake/、dataset/、model/)

目标:把实验一的三条规则扩成规则引擎,样本扩到 ≥100 条,训出 TF-IDF + 逻辑回归基线分类器——两条基线就是以后一切改进的对照物。

步骤:① 用 pandas/sklearn 把数值越界、单位错、时间戳矛盾写成可配置检查函数;② 按配方扩造假样本 ≥100 条(AI 按配额造假,开始记账);③ TfidfVectorizer 提特征 + LogisticRegression 训练,留出验证集;④ 规则法与基线各算准确率/查准/查全/F1 填同一张表;⑤ 分析哪类造假规则抓得住、哪类抓不住(如实记盲区)。

验收证据:规则检查代码、≥100 条样本、两版基线指标表。常见坑:规则太严把真样本全判假;类别失衡只看总体准确率;README 锁 sklearn 版本。

通用要求

验收证据与提交口径

证据即成绩:每组的验收证据都以「终端完整输出」为核心——截图只算辅助,txt/log 存档才算数。所有命令在你自己的工作目录里执行,输出当场存档,别事后补。
提交口径:登录后在实验与考核页在线提交——报告(PDF/Word,必传)+ 附件 zip(选传,可打包日志与产物);每组子文件夹 ≤ 200MB;以最后一次上传为准(旧版自动删除)。截止 2026-11-27(周五)16:30,逾期通道自动关闭。
AI 协作纪律:AI 出草稿、人签字担责——命令必须本机实跑,输出必须亲手核对;AI 的解释要与源码/官方文档对照并至少纠正一处(这也是实验一的延续)。