84 lines
3.1 KiB
Markdown
84 lines
3.1 KiB
Markdown
# wifi-densepose-core
|
|
|
|
[](https://crates.io/crates/wifi-densepose-core)
|
|
[](https://docs.rs/wifi-densepose-core)
|
|
[](LICENSE)
|
|
|
|
Core types, traits, and utilities for the WiFi-DensePose pose estimation system.
|
|
|
|
## Overview
|
|
|
|
`wifi-densepose-core` is the foundation crate for the WiFi-DensePose workspace. It defines the
|
|
shared data structures, error types, and trait contracts used by every other crate in the
|
|
ecosystem. The crate is `no_std`-compatible (with the `std` feature disabled) and forbids all
|
|
unsafe code.
|
|
|
|
## Features
|
|
|
|
- **Core data types** -- `CsiFrame`, `ProcessedSignal`, `PoseEstimate`, `PersonPose`, `Keypoint`,
|
|
`KeypointType`, `BoundingBox`, `Confidence`, `Timestamp`, and more.
|
|
- **Trait abstractions** -- `SignalProcessor`, `NeuralInference`, and `DataStore` define the
|
|
contracts for signal processing, neural network inference, and data persistence respectively.
|
|
- **Error hierarchy** -- `CoreError`, `SignalError`, `InferenceError`, and `StorageError` provide
|
|
typed error handling across subsystem boundaries.
|
|
- **`no_std` support** -- Disable the default `std` feature for embedded or WASM targets.
|
|
- **Constants** -- `MAX_KEYPOINTS` (17, COCO format), `MAX_SUBCARRIERS` (256),
|
|
`DEFAULT_CONFIDENCE_THRESHOLD` (0.5).
|
|
|
|
### Feature flags
|
|
|
|
| Flag | Default | Description |
|
|
|---------|---------|--------------------------------------------|
|
|
| `std` | yes | Enable standard library support |
|
|
| `serde` | no | Serialization via serde (+ ndarray serde) |
|
|
| `async` | no | Async trait definitions via `async-trait` |
|
|
|
|
## Quick Start
|
|
|
|
```rust
|
|
use wifi_densepose_core::{CsiFrame, Keypoint, KeypointType, Confidence};
|
|
|
|
// Create a keypoint with high confidence
|
|
let keypoint = Keypoint::new(
|
|
KeypointType::Nose,
|
|
0.5,
|
|
0.3,
|
|
Confidence::new(0.95).unwrap(),
|
|
);
|
|
|
|
assert!(keypoint.is_visible());
|
|
```
|
|
|
|
Or use the prelude for convenient bulk imports:
|
|
|
|
```rust
|
|
use wifi_densepose_core::prelude::*;
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```text
|
|
wifi-densepose-core/src/
|
|
lib.rs -- Re-exports, constants, prelude
|
|
types.rs -- CsiFrame, PoseEstimate, Keypoint, etc.
|
|
traits.rs -- SignalProcessor, NeuralInference, DataStore
|
|
error.rs -- CoreError, SignalError, InferenceError, StorageError
|
|
utils.rs -- Shared helper functions
|
|
```
|
|
|
|
## Related Crates
|
|
|
|
| Crate | Role |
|
|
|-------|------|
|
|
| [`wifi-densepose-signal`](../wifi-densepose-signal) | CSI signal processing algorithms |
|
|
| [`wifi-densepose-nn`](../wifi-densepose-nn) | Neural network inference backends |
|
|
| [`wifi-densepose-train`](../wifi-densepose-train) | Training pipeline with ruvector |
|
|
| [`wifi-densepose-mat`](../wifi-densepose-mat) | Disaster detection (MAT) |
|
|
| [`wifi-densepose-hardware`](../wifi-densepose-hardware) | Hardware sensor interfaces |
|
|
| [`wifi-densepose-vitals`](../wifi-densepose-vitals) | Vital sign extraction |
|
|
| [`wifi-densepose-wifiscan`](../wifi-densepose-wifiscan) | Multi-BSSID WiFi scanning |
|
|
|
|
## License
|
|
|
|
MIT OR Apache-2.0
|