Epic: Trained DensePose Model with RuVector Signal Intelligence + RVF Container #44
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Trained DensePose Model with RuVector Signal Intelligence Pipeline
What This Is
A complete pipeline for training, packaging, and deploying a real trained neural network that converts WiFi CSI signals into dense human body surface estimation (DensePose). This replaces the current heuristic pose derivation with a model trained on public research datasets, enhanced by RuVector signal processing algorithms, and packaged in the RVF binary container format for single-file deployment.
Why It Matters
The current system does WiFi sensing (presence, motion detection) and derives approximate pose keypoints from signal heuristics. That works, but it is not a trained model -- the keypoint positions are rule-based, not learned from data. The CMU "DensePose From WiFi" paper showed that a neural network trained on paired WiFi + camera data can produce accurate body surface UV coordinates from WiFi alone. This epic implements that capability using RuVector signal processing crates as the backbone.
What You Get
.rvffile.rvfcontainerArchitecture
RVF Container Format
The trained model ships as a single
.rvffile containing everything needed for inference:Progressive loading: Layer A loads in <5ms (instant startup), full accuracy in ~500ms.
Training Data Strategy
Pre-train on public data -> fine-tune on your own ESP32 data -> continuous SONA adaptation at runtime.
RuVector Crates Used (11 total)
Signal Processing (5, already integrated)
ruvector-attn-mincutruvector-mincutruvector-attentionruvector-solverruvector-temporal-tensorNeural Network (6, newly integrated)
ruvector-graph-transformerruvector-gnnruvector-sparse-inferenceruvector-sonaruvector-mathruvector-fpga-transformerRVF Container (8 subcrates)
rvf-typesrvf-wirervf-manifestrvf-indexrvf-quantrvf-cryptorvf-runtimervf-adapter-sonaPerformance Targets
Implementation Phases
Phase 1: Dataset Loaders (2 weeks)
MmFiDatasetloader -- read .npy, resample 114->56 viaruvector-solverWiPoseDatasetloader -- read .mat, zero-pad 30->56wifi-densepose-signalruvector-temporal-tensorPhase 2: Graph Transformer Integration (2 weeks)
ruvector-graph-transformerto ModalityTranslator bottleneckruvector-gnnbody graph reasoning (17 nodes, 16 anatomical edges)Phase 3: Teacher-Student Label Generation (1 week)
Phase 4: Training Loop (3 weeks)
WiFiDensePoseTrainerwith 6-term loss functionruvector-mathPhase 5: SONA Online Adaptation (2 weeks)
ruvector-sonaLoRA injectionPhase 6: Sparse Inference + Edge Deployment (2 weeks)
ruvector-sparse-inferencehot/cold partitioningruvector-sparse-inference-wasmPhase 7: RVF Container Build Pipeline (2 weeks)
build-rvfbinary -- serialize all segmentsverify-rvfbinary -- validate container integrityPhase 8: Sensing Server Integration (1 week)
.rvfcontainer viarvf-runtime--model wifi-densepose-v1.rvfCLI flag--ui-from-rvfserve embedded Dashboard segment--env office-3fADR Reference
Full technical details:
docs/adr/ADR-023-trained-densepose-model-ruvector-pipeline.mdRelated Issues
Related ADRs
Progress Update — ADR-021 Vital Signs + RVF Container Implemented
The foundational layers of this epic are now in place. Here's what shipped in commit
1192de95:Completed
RVF Container Format (Phase 7 — partial)
The RVF binary container builder and reader are implemented in pure Rust:
SegmentHeaderwith magic0x52564653RvfBuilder— add segments,build(),write_to_file()RvfReader—from_bytes(),from_file(), segment iteratorsVitalSignConfigsegment for breathing/heartbeat bandsVital Sign Detection (ADR-021)
Pure-Rust FFT-based breathing and heart rate extraction from WiFi CSI:
--benchmark,--load-rvf,--save-rvfCLI flags/api/v1/vital-signs+ WebSocketvital_signsfieldTest Coverage
Benchmark (Release Build)
What's Next
The epic phases that remain, roughly in priority order:
ruvector-graph-transformer,ruvector-gnn)ruvector-sonaLoRA + EWC++)--model wifi-densepose-v1.rvf, progressive loadingRelated
— Ruflo AI
Update: All 8 Phases Implemented
Following the earlier progress update, all remaining phases are now complete and merged in commit
fc409dfd.Phase Completion Status
dataset.rsgraph_transformer.rstrainer.rssona.rssparse_inference.rsrvf_pipeline.rsmain.rs(+427)--model,--progressive, 4 REST endpoints, WebSocket pose dataAggregate Metrics
What Remains for Full Trained Model
Phase 3 (teacher-student label generation) requires paired WiFi CSI + camera video data and a Python Detectron2 pass to generate UV pseudo-labels. Once labels are available, the training loop (
trainer.rs) can run end-to-end:— Ruflo AI
Update: Docker + RVF Packages Published
Docker Images (Docker Hub)
ruvnet/wifi-denseposelatest,rustruvnet/wifi-denseposepythonBoth include RuVector crates, UI, and the full 8-phase pipeline.
RVF Container Package
The
--export-rvfCLI flag generates standalone model packages:RVF contents: manifest + model weights + vital sign config + SONA default profile + training provenance.
Current Metrics