遇见数据集

foysalhaque/CSI-BFI-HAR-Dataset

收藏
Hugging Face2026-05-27 更新2026-05-31 收录
官方服务:

资源简介:

--- license: gpl-3.0 --- # CSI-BFI-HAR Dataset This repository contains the dataset, structure and usage of the CSI-BFI-HAR dataset of the corresponding dataset paper: Please download the dataset either from huggingface or IEEE dataport: - https://huggingface.co/datasets/foysalhaque/CSI-BFI-HAR-Dataset - https://ieee-dataport.org/documents/csi-bfi-har-wi-fi-datasets-human-activity-recognition ## Dataset Structure The dataset is organized into two subsets: - `Dataset-1`: single-subject HAR (`HAR-1` to `HAR-6`) - `Dataset-2`: simultaneous multi-subject HAR (`HAR-7` to `HAR-12`) Each `HAR-*` folder contains two subfolders: - `CSI/`: channel state information traces - `BFI/`: beamforming feedback information traces ```text CSI-BFI-HAR-Dataset/ ├── Dataset-1/ │ ├── HAR-1/ │ │ ├── BFI/ │ │ └── CSI/ │ ├── HAR-2/ │ │ ├── BFI/ │ │ └── CSI/ │ ├── HAR-3/ │ │ ├── BFI/ │ │ └── CSI/ │ ├── HAR-4/ │ │ ├── BFI/ │ │ └── CSI/ │ ├── HAR-5/ │ │ ├── BFI/ │ │ └── CSI/ │ └── HAR-6/ │ ├── BFI/ │ └── CSI/ └── Dataset-2/ ├── HAR-7/ │ ├── BFI/ │ └── CSI/ ├── HAR-8/ │ ├── BFI/ │ └── CSI/ ├── HAR-9/ │ ├── BFI/ │ └── CSI/ ├── HAR-10/ │ ├── BFI/ │ └── CSI/ ├── HAR-11/ │ ├── BFI/ │ └── CSI/ └── HAR-12/ ├── BFI/ └── CSI/ ``` ## HAR Folder Mapping | HAR Set | Environment | Device(s) | LoS/NLoS | Concurrent Subjects | Subject IDs | |---|---|---|---|---|---| | HAR-1 | Kitchen (Orientation 1-3) | M1, M2 | LoS | 1 | P1-P6 | | HAR-2 | Kitchen (Orientation 1-3) | M3 | NLoS | 1 | P1-P6 | | HAR-3 | Classroom | M1, M2 | LoS | 1 | P1-P6 | | HAR-4 | Classroom | M3 | NLoS | 1 | P1-P6 | | HAR-5 | Living room | M1, M2 | LoS | 1 | P1-P6 | | HAR-6 | Living room | M3 | NLoS | 1 | P1-P6 | | HAR-7 | Kitchen (Orientation 1-3) | M1, M2 | LoS | 3 | P1-P3 | | HAR-8 | Kitchen (Orientation 1-3) | M3 | NLoS | 3 | P1-P3 | | HAR-9 | Classroom (Orientation 1-3) | M1, M2 | LoS | 3 | P1-P3 | | HAR-10 | Classroom (Orientation 1-3) | M3 | NLoS | 3 | P1-P3 | | HAR-11 | Office (Orientation 1-3) | M1, M2 | LoS | 3 | P1-P3 | | HAR-12 | Office (Orientation 1-3) | M3 | NLoS | 3 | P1-P3 | ## Trace Naming Convention Each trace filename follows: ```text X_D_YY_ZZ ``` Where: - `X`: activity code (`A` to `T`) - `D`: day index (`1` to `6`) - `YY`: sensing device ID - `ZZ`: subject ID Device IDs: - CSI devices: `M1`, `M2`, `M3` - BFI devices: `M1`, `M2`, `M3` Subject IDs: - `P1` to `P6` for `Dataset-1` - `P1` to `P3` for `Dataset-2` Activity code map: - `A`: jogging - `B`: clapping - `C`: push forward - `D`: boxing - `E`: writing - `F`: brushing teeth - `G`: rotating - `H`: standing - `I`: eating - `J`: reading a book - `K`: waving - `L`: walking - `M`: browsing phone - `N`: drinking - `O`: hands-up-down - `P`: phone call - `Q`: side bends - `R`: check wrist (watch) - `S`: washing hands - `T`: browsing laptop Examples: - `A_3_M1_P2` -> jogging, day 3, CSI device M1, subject P2 - `N_6_M2_P1` -> drinking, day 6, BFI device M2, subject P1 ## CSI Extraction CSI traces are extracted from Nexmon PCAP files using: - `CSI-Extraction/Extract_CSI.m` ### Prerequisites - MATLAB (or GNU Octave with compatible MEX support) - Files in `CSI-Extraction/`: - `Extract_CSI.m` - `readpcap.m` - `plotcsi.m` (optional visualization) - `unpack_float.mexa64` (for Broadcom float unpacking) ### Input - A Nexmon CSI capture file (`.pcap`), for example: - `D_1_M1_P2_short.pcap` Set the file path at the top of `Extract_CSI.m`: ```matlab FILE = '../CSI-Samples/D_1_M1_P2_short.pcap'; ``` ### Configuration In `Extract_CSI.m`, set: - `CHIP` (e.g., `4366c0`) - `BW` in MHz (e.g., `80`) For `BW = 80`, the script keeps valid data subcarriers and removes null/pilot bins, producing 242 CSI subcarriers per packet. ### Run From repository root: ```bash cd CSI-Extraction matlab -batch "Extract_CSI" ``` Or run `Extract_CSI.m` directly from the MATLAB editor while your current folder is `CSI-Extraction`. ### Output The script saves a `.mat` file next to the input PCAP, with the same base filename: - Input: `../CSI-Samples/D_1_M1_P2_short.pcap` - Output: `../CSI-Samples/D_1_M1_P2_short.mat` Saved variables: - `csi`: complex CSI matrix of size `[num_packets x num_subcarriers]` (242 subcarriers for 80 MHz) - `seq_num`: sequence identifier extracted per packet - `core_num`: RF core identifier extracted per packet ## BFI Extraction BFI traces are extracted with Wi-BFI using: - `Wi-BFI/main.py` ### Prerequisites - Python environment with `numpy` and `pyshark` - `tshark` installed and available in PATH (required by `pyshark`) - Wi-BFI files in `Wi-BFI/` (`main.py`, `bfi_angles.py`, `vmatrices.py`, `utils.py`) Optional setup (from Wi-BFI project files): ```bash cd Wi-BFI conda env create -f wi-bfi.yml conda activate wi-bfi ``` ### Run (your current command) From `Wi-BFI/`: ```bash python main.py ./traces/11ac_MU_3x1_80.pcapng AC MU 3x1 80 b0:b9:8a:63:55:9c 200 V_ac_mu_3x1_80 bfa_ac_mu_3x1_80 ``` ### Argument meaning ```text python main.py <file_name> <standard> <mimo> <config> <bw> <MAC> <num_packet_to_process> <saved_vmatrices> <saved_angles> ``` - `file_name`: input pcap/pcapng trace path - `standard`: `AC` or `AX` - `mimo`: `SU` or `MU` (for this dataset use `MU` with AC) - `config`: antenna setup (`3x1` in your command) - `bw`: bandwidth in MHz (`80` in your command) - `MAC`: target beamformee MAC address to filter frames - `num_packet_to_process`: number of packets to parse (must be <= available packets after MAC/filter match) - `saved_vmatrices`: output filename prefix for reconstructed V matrices - `saved_angles`: output filename prefix for extracted beamforming angles ### Output `main.py` stores two NumPy files (`.npy`) in the current directory: - `V_ac_mu_3x1_80.npy`: reconstructed V matrices - `bfa_ac_mu_3x1_80.npy`: extracted beamforming feedback angles For the shown example command with `200` packets and AC MU `3x1` at `80 MHz`, output shapes are: - `V_ac_mu_3x1_80.npy`: `(200, 234, 3, 1)` complex array - `bfa_ac_mu_3x1_80.npy`: `(200, 234, 4)` integer array In the `3x1` case, the 4 angles per subcarrier correspond to: - `phi_11`, `phi_21`, `psi_21`, `psi_31` #### For any question or query, please contact [Foysal Haque](https://kfoysalhaque.github.io/) (**haque.k@northeastern.edu**)

The CSI-BFI-HAR dataset is a Wi-Fi-based human activity recognition (HAR) dataset containing channel state information (CSI) and beamforming feedback information (BFI) data. The dataset is divided into two subsets: Dataset-1 for single-subject HAR (including HAR-1 to HAR-6) and Dataset-2 for simultaneous multi-subject HAR (including HAR-7 to HAR-12). Each HAR folder contains CSI and BFI trace files, covering various environments such as kitchen, classroom, living room, and office, with both line-of-sight (LoS) and non-line-of-sight (NLoS) conditions. Data collection involves multiple devices (M1, M2, M3) and subjects (P1 to P6), encompassing 20 human activities like jogging, clapping, boxing, writing, etc. The dataset provides tools and scripts for CSI and BFI extraction, supporting CSI extraction from Nexmon PCAP files and BFI extraction using the Wi-BFI tool, making it suitable for wireless sensing and machine learning research.

提供机构:
foysalhaque
搜集汇总
数据集介绍
foysalhaque/CSI-BFI-HAR-Dataset 数据集图片
构建方式
在无线感知领域,人体活动识别依赖于对环境信道特征的精细刻画。该数据集通过搭建多场景实验平台,采集信道状态信息(CSI)与波束成形反馈信息(BFI)双模态数据,构建了涵盖单用户与多用户并发的活动识别基准。实验在厨房、教室、客厅及办公室等环境中部署多组设备,分别采用视距与非视距链路配置,并针对每个受试者执行二十类日常动作。原始CSI数据经Nexmon固件从PCAP文件解析,BFI数据则借助Wi-BFI工具从802.11ac/ax帧中重构V矩阵与波束成形角度,最终形成结构化的HAR子集。
使用方法
使用该数据集时,研究者可依据HAR文件夹映射表选取特定环境、设备与并发条件的子集。CSI数据需通过MATLAB脚本Extract_CSI.m从Nexmon PCAP文件中提取,脚本根据设定的芯片型号与带宽参数解析复数CSI矩阵并保存为.mat文件;BFI数据则借助Wi-BFI的main.py从PCAP/PCAPNG文件中重构V矩阵与波束成形角度,输出为NumPy数组。提取后的数据可直接用于训练活动分类模型,或用于跨模态融合、跨场景迁移等研究,所有脚本与说明均随仓库提供,便于标准化处理。
背景与挑战
背景概述
无线感知与人体活动识别领域长期依赖信道状态信息(CSI)作为核心数据模态,然而波束成形反馈信息(BFI)作为Wi-Fi标准中天然具备的压缩反馈机制,其感知潜力尚未被充分挖掘。CSI-BFI-HAR数据集由东北大学Foysal Haque等研究者构建,旨在同步提供CSI与BFI双模态轨迹,覆盖厨房、教室、客厅及办公室等多种室内环境,包含单人与三人并发场景,并系统标注了LoS与NLoS传播条件。该数据集为探索BFI在人体活动识别中的有效性、推动跨模态感知融合与标准化感知协议设计提供了关键实验基础,对无线感知社区具有重要的基准意义。
当前挑战
人体活动识别本身面临活动类别多样、个体差异显著以及环境动态变化等固有难题,而CSI-BFI-HAR所应对的挑战更为复杂。在领域问题层面,BFI作为刻意压缩的反馈信息,其角度参数是否保留足够细粒度的运动特征尚属未知,同时多用户并发场景下信号叠加导致活动分离与归属判定极为困难,跨环境与跨朝向的泛化性亦构成严峻考验。在构建过程中,同步采集CSI与BFI需协调异构网卡与固件配置,Nexmon与Wi-BFI工具链的兼容性、时间对齐精度以及多日多受试者的数据一致性均需严格把控,方能确保双模态数据的可靠性与可复现性。
常用场景
经典使用场景
在无线感知与普适计算领域,基于信道状态信息(CSI)与波束成形反馈信息(BFI)的人体活动识别(HAR)已成为非侵入式感知的典型范式。CSI-BFI-HAR数据集最经典的使用场景在于为单被试与多被试并发条件下的细粒度动作分类提供标准化基准。研究者通常将CSI子载波幅度与相位序列,或BFI角度矩阵作为输入特征,送入卷积神经网络、循环神经网络或Transformer架构,完成从二十类日常动作(如慢跑、鼓掌、刷牙、阅读等)中辨识目标行为。该数据集涵盖厨房、教室、客厅与办公室四类物理环境,并系统区分视距与非视距传播条件,为模型泛化能力评估构筑了严谨的实验框架。
解决学术问题
该数据集直面无线感知研究中长期存在的若干核心难题。其一是多被试并发场景下的信号混叠问题:当三名被试同时执行动作时,接收信号为多径叠加结果,传统单目标识别方法性能急剧退化,而本数据集提供的同步多被试标注为解耦算法与多任务学习提供了关键支撑。其二是跨环境与跨传播条件的域偏移问题:视距与非视距、不同房间布局之间的信道统计特性差异显著,数据集通过多环境多配置的交叉设计,使域适应与迁移学习方法的有效性得以系统检验。其三是CSI与BFI两种异构信号的互补性验证,为多模态融合感知研究开辟了新的问题空间。
实际应用
在实际应用中,该数据集可支撑智能家居、远程健康监护与沉浸式人机交互等系统的原型开发。例如,在居家养老场景中,系统可利用Wi-Fi路由器采集的CSI与BFI数据,持续监测老年人的步态、跌倒风险与日常活动节律,无需佩戴任何传感器。在办公环境中,多被试动作识别能力可转化为会议室占用检测、手势控制演示或员工健康管理平台。此外,由于BFI是802.11ac/ax标准中波束成形流程的固有反馈,基于BFI的感知方案可与现有商用Wi-Fi芯片兼容,显著降低部署成本,推动无线感知技术从实验室走向规模化商用。
数据集最近研究
最新研究方向
在无线感知与普适计算领域,利用信道状态信息(CSI)与波束成形反馈信息(BFI)进行人体活动识别(HAR)已成为备受瞩目的前沿方向。CSI-BFI-HAR数据集凭借其多环境、多设备、单/多用户并发采集的独特设计,推动了跨域泛化、多用户解耦与鲁棒特征学习等热点研究。近期工作聚焦于融合CSI与BFI的互补特性,以提升非视距与多干扰场景下的识别精度,并探索基于深度学习的域自适应方法,缓解环境与人员变动带来的性能衰减。该数据集为构建可泛化的无线感知系统提供了关键基准,对智能家居、健康监护及人机交互具有重要的科学意义与应用价值。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务