ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

RuView 模型训练指南:从 WiFlow 无监督姿态到 GPU 云训练与模型发布

2026/9/11 21:45:40 拓冰建站 浏览量
RuView 模型训练指南:从 WiFlow 无监督姿态到 GPU 云训练与模型发布 RuView 模型训练指南从 WiFlow 无监督姿态到 GPU 云训练与模型发布【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView本文围绕 RuViewWiFi-DensePose生态的/ruview-train训练命令系统讲解五条模型训练路线Track A–E的完整流程从摄像头无关的 WiFlow 无监督姿态估计、摄像头监督的 92.9% PCK20 精度路线、RuVector 对比嵌入、域泛化与本地 SNN 环境适配到可选的 GCloud GPU 训练与 Hugging Face 发布。读完本文你将掌握各条训练路线的数据准备、核心命令、评估指标与验证门禁能够独立完成一次从数据采集到模型发布的端到端训练。训练命令概览/ruview-train/ruview-train是 RuView 插件体系中负责训练、微调、评估或发布 RuView 模型的统一入口命令其完整定义位于 plugins/ruview/commands/ruview-train.md对应的技能skill与角色agent文档分别是 plugins/ruview/skills/ruview-model-training/SKILL.md 和 plugins/ruview/agents/ruview-training-engineer.md。该命令的参数形态为[track] [--epochs N]其中track决定走哪条训练路线可选值为camera-free、camera-supervised、embeddings、domain-gen、snn、gpu。执行流程为首先调用ruview-model-training技能然后根据$ARGUMENTS选择路线——若参数为空则向用户询问选择哪条路线训练完成后还需执行验证门禁最后移交给/ruview-verify生成见证包witness bundle。数据布局所有训练路线的基础无论选择哪条路线都依赖统一的数据目录布局。根据 SKILL.md 中的 Data layout 小节关键路径如下路径内容data/recordings/原始 CSI 采集数据*.csi.jsonl含过夜overnight连续采集data/csi/用于预训练pretraining的 CSI 数据集data/mmfi/MM-Fi 数据集ADR-015data/paired/摄像头 ↔ CSI 配对样本ADR-079data/ground-truth/MediaPipe 姿态关键点ground truthdata/pose_landmarker_lite.taskMediaPipe 姿态模型文件models/训练产物模型文件如果需要采集更多数据可通过python scripts/record-csi-udp.py从在线节点进行 UDP CSI 采集。Track A — 摄像头无关的 WiFlow 姿态无标签自监督Track A 是最快、完全无监督的训练路线仅从10 路传感器信号训练17 关键点姿态不需要摄像头也不需要人工标注代价是精度为适度modest accuracy。cd v2 # 阶段 1在原始 CSI 上做对比预训练contrastive pretraining cargo run -p wifi-densepose-sensing-server -- --pretrain --dataset data/csi/ --pretrain-epochs 50 # 阶段 2训练姿态头并保存 RVF 工件 cargo run -p wifi-densepose-sensing-server -- --train --dataset data/mmfi/ --epochs 100 --save-rvf model.rvf预训练阶段在data/csi/上运行 50 个 epoch采用对比学习范式让模型先理解 CSI 信号的底层表征微调阶段在 MM-Fi 数据集data/mmfi/上训练 100 个 epoch 的姿态头最终输出 RVFRuView Format格式的模型工件model.rvf在 M4 Pro 上整个流程约84 秒适合快速验证训练管线。训练完成后可执行基准测试与评估node scripts/benchmark-wiflow.js # 基准测试 node scripts/eval-wiflow.js # 评估输出 PCK20 等指标Track B — 摄像头监督姿态训练ADR-07992.9% PCK20Track B 是精度最高、被文档明确标注为92.9% PCK20的路线使用网络摄像头 MediaPipe提供地面真值ground truth与ESP32 CSI采集数据配对在笔记本上约19 分钟完成训练。步骤 1采集配对数据摄像头 CSI# 1a. 采集 MediaPipe 姿态关键点作为地面真值 python scripts/collect-ground-truth.py # 1b. 采集 CSI 数据时间同步 python scripts/collect-training-data.py # 1c. 对齐摄像头时间戳与 CSI 时间戳生成配对样本 node scripts/align-ground-truth.js三个脚本的职责与细节collect-ground-truth.pyscripts/collect-ground-truth.py通过 MediaPipe Tasks API 的PoseLandmarker捕获网络摄像头关键点并将 MediaPipe 的 33 个关节点映射为COCO 17 关键点格式映射表见脚本内MP_TO_COCO [0, 2, 5, 7, 8, 11, 12, 13, 14, 15, 16, 23, 24, 25, 26, 27, 28]输出到data/ground-truth/。该脚本还支持--preview --duration 60预览模式、--server http://192.168.1.10:3000连接传感服务器以及可选的--calibration bundle.json由scripts/calibrate-camera-room.py生成用于房间坐标系对齐防过拟合。collect-training-data.py进行 CSI 采集与摄像头采集保持时间同步。align-ground-truth.jsscripts/align-ground-truth.js将摄像头关键点data/ground-truth/gt-*.jsonl与 CSI 记录data/recordings/*.csi.jsonl按时间窗口对齐输出配对样本data/paired/*.paired.jsonl。关键参数包括--window-ms 200CSI 窗口毫秒数、--window-frames 20每窗口帧数、--min-camera-frames 3每窗口最少摄像头帧数、--min-confidence 0.5置信度阈值、--clock-offset-ms 0手动时钟偏移校正摄像头超前 50ms 时传-50。步骤 2训练摄像头监督模型cd v2 cargo run -p wifi-densepose-sensing-server -- --train --dataset data/paired/ --epochs N --save-rvf model.rvf该命令通过wifi-densepose-sensing-servercrate位于 v2/Cargo.toml 工作区成员列表中训练姿态模型在data/paired/配对数据集上训练指定 epoch 数输出model.rvf。步骤 3评估 PCK20cd .. node scripts/eval-wiflow.jsscripts/eval-wiflow.js 是 WiFlow 的 PCK 评估脚本实现 ADR-079以摄像头关键点为地面真值计算PCKPercentage of Correct Keypoints与MPJPEMean Per-Joint Position Error指标其中 PCK 以躯干长度DEFAULT_TORSO_LENGTH 0.3归一化。其命令行用法为node scripts/eval-wiflow.js --model models/wiflow-supervised/wiflow-v1.json --data data/paired/aligned.paired.jsonl node scripts/eval-wiflow.js --baseline --data data/paired/aligned.paired.jsonl # 无模型代理基线 node scripts/eval-wiflow.js --model path --data paired-jsonl --verbose前置条件需要data/pose_landmarker_lite.taskMediaPipe 模型文件。完整设计见 docs/adr/ADR-079-camera-ground-truth-training.md。Track C — RuVector 对比嵌入AETHERADR-024Track C 将 CSI 子载波幅度/相位转换为嵌入向量embeddings用于行人重识别re-ID与检索场景在 M4 Pro 上可达171K emb/s。该路线由wifi-densepose-train与wifi-densepose-ruvectorRuVector v2.0.4两个 crate 驱动谱图嵌入见 ADR-076。cd v2 cargo check -p wifi-densepose-train --no-default-features # 编译期健全性检查 cargo run -p wifi-densepose-sensing-server -- --model model.rvf --embed # 生成嵌入 cargo run -p wifi-densepose-sensing-server -- --model model.rvf --build-index env # 构建环境索引三个命令分别对应编译检查、嵌入生成、基于嵌入构建环境索引为后续的检索与重识别提供向量索引基础。Track D — 域泛化MERIDIANADR-027Track D 的目标是让模型无需重训即可跨环境迁移跨房间、跨部署场景。该路线通过训练管线的域泛化选项配置实现涉及的模块包括wifi-densepose-train与ruview_metrics完整方案见 docs/adr/ADR-027-cross-environment-domain-generalization.md。从源码结构看它不依赖单独的命令入口而是在训练管线中开启 domain-generalization 配置项后随 Track A/B 的训练流程生效。Track E — 本地 SNN 环境自适应Track E 使用**脉冲神经网络Spiking Neural Network**实现新房间环境的快速自适应在设备端或 Cognitum Seed 上30 秒内完成适配。node scripts/snn-csi-processor.js --port 5006scripts/snn-csi-processor.js 通过 UDP 接收实时 CSI 帧ADR-018 二进制格式将子载波幅度增量送入128-64-8 三层 SNN128 输入、64 隐藏、8 输出采用STDPSpike-Timing-Dependent Plasticity在线学习。8 个输出神经元分别映射到presence存在、motion运动、breathing呼吸、HR心率、phase_var相位方差、persons人数、fall跌倒、RSSI。常用参数参数默认值说明--port5006UDP 监听端口--max-rate200最大脉冲率Hz--learning-rate0.005STDP a_plus/a_minus 学习率--hidden64隐藏层神经元数--no-learn关闭冻结权重禁用 STDP--send-vectors关闭转发脉冲向量到 Cognitum Seed--seed-host/--seed-portlocalhost / 5007Cognitum Seed 地址相关背景见 docs/tutorials/cognitum-seed-pretraining.md以及 ADR-084RaBitQ 相似度传感器、ADR-085、ADR-086边缘新颖性门控。GPU 训练GCloud 按需租用与自动销毁当本地算力不足时可通过 GCloud GPU 训练。项目cognitum-20260110具备L4 / A100 / H100的配额。初始化与冒烟测试gcloud auth login gcloud config set project cognitum-20260110 bash scripts/gcloud-train.sh --dry-run # 冒烟测试合成数据 bash scripts/gcloud-train.sh --gpu l4 --hours 2 # 原型开发 bash scripts/gcloud-train.sh --gpu a100 --config scripts/training-config-sweep.json bash scripts/gcloud-train.sh --sweep # 完整超参数扫描脚本参数与成本scripts/gcloud-train.sh 是完整的 7 步自动化脚本创建 VM → 等待驱动与工具链 → 克隆仓库并编译训练二进制 → 上传训练数据 → 运行训练 → 下载产物 → 删除 VM。其支持的完整参数如下参数默认值说明--gpul4GPU 类型l4/a100/h100--zoneus-central1-aGCloud 区域--hours2VM 最大存活时长小时超时自动关机--config空训练配置 JSON默认用scripts/training-config-sweep.json的第 0 项--data-dirdata/recordings需要上传的本地数据目录--dry-run关闭用合成数据做冒烟测试--sweep关闭运行完整超参数扫描遍历配置文件中所有 configs--keep-vm关闭训练结束后不删除 VM--instancewdp-train-{gpu}-{timestamp}自定义 VM 实例名三种 GPU 的规格映射源码中GPU_ACCELERATOR/GPU_MACHINE_TYPE/GPU_BOOT_DISK三个关联数组GPU 类型加速器类型机器类型启动盘成本参考l4nvidia-l4g2-standard-8200 GB~$0.80/小时a100nvidia-tesla-a100a2-highgpu-1g300 GB~$3.60/小时40GBh100nvidia-h100-80gba3-highgpu-1g300 GB~$11.00/小时80GB成本数字取自 scripts/gcloud-train.sh 头部注释中的估算值实际费用以云厂商账单为准。脚本内部的关键机制GPU 驱动就绪探测启动脚本轮询nvidia-smi最多等待 300 秒libtorch 定位优先复用深度学习 VM 自带 PyTorch 的 libtorchpython3 -c import torch; print(torch.__path__[0] /lib)缺失时通过 pip 安装 CUDA 12.1 版 PyTorch编译在 VM 上用cargo build --release --features tch-backend --bin train编译训练二进制依赖tch-backendfeature数据上传将本地数据目录打包为 tar.gz 后通过gcloud compute scp上传解压到 VM 的data/自动销毁脚本在训练命令中设置sudo shutdown -P $((MAX_HOURS * 60))作为兜底训练结束后默认执行gcloud compute instances delete删除 VM除非--keep-vm产物回传打包checkpoints/、logs/以及 sweep 结果下载到本地training-results/instance/。超参数扫描--sweep--sweep模式会读取scripts/training-config-sweep.json将base配置与每个configs[i]合并逐个运行训练并写入独立的checkpoints/sweep_XX与logs/sweep_XX目录最终把全部sweep_*.log与产物打包回传。VM 上还会打印每个配置的关键超参数lr、batch_size、backbone_channels。本地替代方案MacM4 Pro本地训练bash scripts/mac-mini-train.shscripts/mac-mini-train.sh—— 7 步流水线拉取仓库 → 安装 Node.js → 通过 Tailscale 从 Windows 主机拷贝训练数据scp .../pretrain-*.csi.jsonl→ 运行node scripts/train-ruvllm.js训练 →node scripts/benchmark-ruvllm.js基准 → 回传结果 → 发布 Hugging Face。模型基准python scripts/benchmark-model.py。训练后的验证门禁与发布验证门禁训练改动后的强制步骤任何训练相关改动之后必须按顺序执行cd v2 cargo test --workspace --no-default-features # 1,400 测试通过0 失败 cd .. python archive/v1/data/proof/verify.py # 必须输出 VERDICT: PASSRust 工作区全量测试禁用默认 features确定性 Python 证明脚本如因 numpy/scipy 合法升级导致哈希漂移可加--generate-hash后重跑若测试或证明有变化需重新生成见证包bash scripts/generate-witness-bundle.sh并自验证 7/7 通过。发布模型到 Hugging Facepython scripts/publish-huggingface.py # 或使用 Shell 版本bash scripts/publish-huggingface.shscripts/publish-huggingface.py 的工作流程先从GCloud Secret Manager读取HUGGINGFACE_API_KEYgcloud secrets versions access latest --secretHUGGINGFACE_API_KEY --projectcognitum-20260110再将dist/models/下的模型文件上传到 Hugging Face 仓库。其上传的预期文件清单包括pretrained-encoder.onnx pretrained-heads.onnx pretrained.rvf room-profiles.json collection-witness.json config.json README.md常用参数--repo ruvnet/wifi-densepose-pretrained --version v0.5.4指定仓库与版本--dry-run冒烟测试--token hf_xxxxx跳过 GCloud 查询直接使用令牌。模型卡片模板见 docs/huggingface/MODEL_CARD.md。收尾移交 /ruview-verify 生成见证包训练、评估、验证完成后将结果移交给/ruview-verifyplugins/ruview/commands/ruview-verify.md生成见证包witness bundle形成训练 → 验证 → 见证的完整信任链。/ruview-verify支持四种模式testsRust 测试、proof确定性证明、bundle见证包生成 自验证 7/7 PASS、all默认按序全部执行。路线选择速查路线适用场景数据时间/精度参考关键命令A · camera-free快速验证、无标注环境data/csi/data/mmfi/~84 sM4 Pro适度精度cargo run -p wifi-densepose-sensing-server -- --pretrain/--trainB · camera-supervised高精度姿态估计data/paired/摄像头CSI 配对~19 min92.9% PCK20collect-ground-truth.py→collect-training-data.py→align-ground-truth.js→ 训练 →eval-wiflow.jsC · embeddings重识别、检索CSI 子载波171K emb/s--embed/--build-index envD · domain-gen跨环境迁移随 A/B无需重训训练管线 domain-gen 配置E · snn新房间快速自适应实时 CSIUDP30 s 适配node scripts/snn-csi-processor.js --port 5006GPU大算力训练data/recordings/按小时计费bash scripts/gcloud-train.sh [--gpu l4\|a100\|h100]所有路线训练完成后都必须通过验证门禁cargo test --workspace --no-default-featuresarchive/v1/data/proof/verify.py再通过publish-huggingface.py发布最后移交/ruview-verify完成见证闭环。相关 ADR 参考ADR-015MM-Fi 数据集、ADR-016RuVector 训练集成、ADR-017、ADR-024、ADR-027、ADR-076、ADR-079、ADR-084/085、ADR-095/096。【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考