• Stars
    star
    149
  • Rank 247,136 (Top 5 %)
  • Language
    Python
  • License
    BSD 3-Clause "New...
  • Created about 5 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Human Activity Recognition from Point Clouds Generated through a Millimeter-wave Radar

RadHAR

RadHAR: Human Activity Recognition from Point Clouds Generated through a Millimeter-wave Radar

This repo contains the implementation for the paper: RadHAR: Human Activity Recognition from Point Clouds Generated through a Millimeter-wave Radar presented at the 3rd ACM Workshop on Millimeter-Wave Networks and Sensing Systems (mmNets) 2019 (co-located with MobiCom).

Authors

Akash Deep Singh, Sandeep Singh Sandha, Luis Garcia, Mani Srivastava

Dataset

Point cloud dataset collected using mmWave Radar. The data is collected using the ROS package for TI mmWave radar developed by radar-lab. Raw dataset is available in the repo. The data is partitioned into the folders train and test. Each train and test folder further contains the folders which have respective activity classes.

Format

header: 
  seq: 6264
  stamp: 
    secs: 1538888235
    nsecs: 712113897
  frame_id: "ti_mmwave"   # Frame ID used for multi-sensor scenarios
point_id: 17              # Point ID of the detecting frame (Every frame starts with 0)
x: 8.650390625            # Point x coordinates in m (front from antenna)
y: 6.92578125             # Point y coordinates in m (left/right from antenna, right positive)
z: 0.0                    # Point z coordinates in m (up/down from antenna, up positive)
range: 11.067276001       # Radar measured range in m
velocity: 0.0             # Radar measured range rate in m/s
doppler_bin: 8            # Doppler bin location of the point (total bins = num of chirps)
bearing: 38.6818885803    # Radar measured angle in degrees (right positive)
intensity: 13.6172780991  # Radar measured intensity in dB

For more information about the ROS package used to collect data and its description, please click here!

Data Preprocessing

Data preprocessing is done by extracting by the voxels. Voxel extraction code is available here. The file have variables which need to be set to the path of the raw data folders. The path is controlled using the below variables.

parent_dir = 'Path_to_training_or_test_data'
sub_dirs=['boxing','jack','jump','squats','walk']
extract_path = 'Path_to_put_extracted_data'
  • Separate train and test files with 71.6 minutes data in train and 21.4 minutes data in test.
  • Voxels of dimensions 10x32x32 (where 10 is the depth).
  • Windows of 2 seconds (60 frames) having a sliding factor of 0.33 seconds (10 frames).
  • We finally get 12097 samples in training and 3538 samples in testing.
  • For deep learning classifiers, we use 20% of the training samples for validation.

Finally the voxels have the format: 60*10*32*32, where 60 represents the time, 10 represent the depth, and 32*32 represents the x and y dimension.

Classifiers:

  • SVM Classifier: Code
  • Multi-layer Perceptron (MLP) Classifier: Code
  • Bi-directional LSTM Classifier: Code
  • Time-distributed CNN + Bi-directional LSTM Classifier: Code

Pretrained Classifiers and Preprocessed Dataset:

The pretrained Bi-directional LSTM Classifier (90% accuracy) and Time-distributed CNN + Bi-directional LSTM Classifier (92% accuracy) along with the preprocessed training and test dataset are available here. The size of preprocessed dataset is around 70 GB. Classifiers code in the repo has the data loading code for the preprocessed dataset. The trained classifiers expects the test data in the same format as in the classifier training code files. The classifier can be loaded using the keras load_model function.

Cite:

You can cite our paper if you have used this code in any of your projects:

@inproceedings{singh2019radhar,
  title={RadHAR: Human Activity Recognition from Point Clouds Generated through a Millimeter-wave Radar},
  author={Singh, Akash Deep and Sandha, Sandeep Singh and Garcia, Luis and Srivastava, Mani},
  booktitle={Proceedings of the 3rd ACM Workshop on Millimeter-wave Networks and Sensing Systems},
  pages={51--56},
  year={2019},
  organization={ACM}
}

More Repositories

1

nlp_adversarial_examples

Implementation code for the paper "Generating Natural Language Adversarial Examples"
Jupyter Notebook
167
star
2

ice40_examples

Public examples of ICE40 HX8K examples using Icestorm
Verilog
103
star
3

asvspoof2019

Our submission to the ASVspoof 2019: Automatic Speaker Verification Spoofing and Countermeasures Challenge
MATLAB
93
star
4

radar-camera-fusion-depth

Depth Estimation from Camera Image and mmWave Radar Point Cloud
Python
80
star
5

adversarial_genattack

Python
52
star
6

agrobot

Neural-Kalman GNSS/INS Navigation for Precision Agriculture
Jupyter Notebook
52
star
7

tinyodom

TinyOdom: Hardware-Aware Efficient Neural Inertial Navigation
C++
42
star
8

adversarial_audio

Python
36
star
9

Cyclops-PRU

Programming framework for the Beaglebone black's Programmable Realtime Unit (PRU)
JavaScript
33
star
10

renderScriptFFT

End-to-end example of doing FFT using RenderScript on Android
Java
30
star
11

nist_differential_privacy_synthetic_data_challenge

UCLANesl - NIST Differential Privacy Challenge (Match 3)
Python
23
star
12

Time-in-State-RL

Sim2Real Transfer for Deep Reinforcement Learning with Stochastic State Transition Delays, CORL-2020.
Python
23
star
13

Explainability-Study

How Can I Explain This to You? An Empirical Study of Deep Neural Network Explanation Methods
Jupyter Notebook
23
star
14

Robust-Deep-Learning-Pipeline

Deep Convolutional Bidirectional LSTM for Complex Activity Recognition with Missing Data. Human Activity Recognition Challenge. Springer SIST (2020)
Jupyter Notebook
22
star
15

auritus

Auritus: An Open-Source Optimization Toolkit for Training and Development of Human Movement Models and Filters Using Earables
C++
19
star
16

sensegen

Jupyter Notebook
18
star
17

neurosymbolic-tinyml

TinyNS: Platform-Aware Neurosymbolic Auto Tiny Machine Learning
C
17
star
18

RSTensorFlow

C++
15
star
19

UnrealAirSimDRL

A collection of Reinforcement and Convolutional algorithms for AirSim and Unreal Engine v4.18 (Quad + Car)
Python
15
star
20

ExMatchina

A Deep Neural Network explanation-by-example library for generating meaningful explanations
Python
15
star
21

WiFislam

Android WiFi capturing and indoor localization using SLAM
MATLAB
12
star
22

Visualizing-Server-Data

This project visualizes CPU, RAM, and SSD power data on a website using Django, Highcharts, and MongoDB.
Python
10
star
23

Time-Sync-Across-Smartphones

Experiments and implementation of providing time synchronization across Android Smartphones
Java
9
star
24

Imhotep-smt

A Satisfiability-Modulo-Theory (SMT) based estimator for secure estimation under adversarial sensor attacks.
MATLAB
8
star
25

ipShield

ipShield - a framework for enforcing context-aware privacy
Java
8
star
26

FriedParts

A new CAD CIS / PLM tool for the modern era
Visual Basic
7
star
27

uwb_vibration_eavesdropping

Use X4M05 UWB radar readings to recover voice from speaker vibration
MATLAB
6
star
28

Nurture-UbiTtention18

Jupyter Notebook
6
star
29

varemu

VarEMU: An emulation testbed for Variability-Aware Software
C
6
star
30

locomote

LocoMote: AI-driven Sensor Tags for Fine-Grained Undersea Localization and Sensing
C++
6
star
31

LabSense

This project involves sensing many different characteristics about a lab (i.e. ambient temperature, electricity, water, occupancy) and making the data available in a user intuitive interface.
JavaScript
6
star
32

Distributed_TensorFlow

This repository contains the code used to set up distributed TensorFlow cluster for the course project CSM213B.
Jupyter Notebook
5
star
33

KeyLogger_Python

Keylogging, mouse logging, active window logging, password pop-up window to interrupt user.
Python
5
star
34

Eagle_PTZ_Cameras

Eagle and EagleSim: Deep-RL for PTZ Cameras
Jupyter Notebook
5
star
35

LLM_Based_Robots

Using Large Language Models to control robots to perform complex tasks based on user input.
Python
5
star
36

DeepSQA

DeepSQA repo for the paper "DeepSQA: Understanding Sensor Data via Question Answering"
Jupyter Notebook
4
star
37

mercury

A pressure-based path likelihood predictor
MATLAB
4
star
38

physiogan

Jupyter Notebook
4
star
39

RecycleML

Implementation of RecycleML on CMActivity dataset using Keras
Python
4
star
40

Heliot

Heliot: Hybrid Emulation of Learning Enabled IoT systems
Jupyter Notebook
4
star
41

Android-IPC

Reduce Android garbage collection using ashmem
C
4
star
42

Mbed_BMX160

Drivers and Mbed Code for Bosch BMX160 9DoF IMU
C++
4
star
43

nilmbee

nilmbee
MATLAB
3
star
44

FlowEngine

Java
3
star
45

BlinkM

Project about controlling a RGB Led over I2C in TinyOS
Python
3
star
46

Neuroplex

Neuroplex for complex event detection using NRlogic
Python
3
star
47

hart_comm

Communication for HART - hardware test automation
Python
3
star
48

LabViz

This project aims at providing visualization of sensor data on a web interface, optimized for mobile platforms (especially the Ipad)
JavaScript
3
star
49

Portkey

C
3
star
50

GoodClock

GoodClock: Providing Shared Notion of Time across Smartphones
Java
3
star
51

WorkoutTracking

MiLift: Autonomous and Efficient Workout Tracking Using Smartwatches
Java
3
star
52

automated-reasoning

CS264A: Automated Reasoning: Course Project (SAT Solver and Knowledge compiler) SP 2015
C
3
star
53

neuromask

Implementation of "NeuroMask: Explaining Predictions of Deep Neural Networks through Mask Learning"
Jupyter Notebook
3
star
54

DDFlow

DDFlow is a visualized programming interface for specifying declarative dataflow applications that dynamically deploy to a distributed and heterogeneous IoT cluster
JavaScript
3
star
55

nips2017_adversarial

UCNesl Team submission to the NIPS 2017 Adversarial Attacks and Defenses
Python
3
star
56

iBeacon4Mac

iBeacon software for OSX
Objective-C
2
star
57

robust_depth_filter

An intelligent underwater depth estimator exploiting COTS underwater pressure sensors. The filter takes in pressure and temperature from the sensor (and timestamps from an RTC) and uses an alpha-beta filter to calculate the depth of the object, with built-in thermocline, noise and timestamping error compensation.
C++
2
star
58

SensorSafe

Java
2
star
59

Autograder2.0

C
2
star
60

SensorActuatorManager

Software that manages sensing/actuation devices and connects them to various services
Python
2
star
61

CMActivities-DataSet

Jupyter Notebook
2
star
62

sos-2x

SOS operating system
C
2
star
63

rpibtle

Raspberry Pi BTLE & iBeacon Code
Python
2
star
64

FieldStream-AntRadio

Java
2
star
65

OpenBAN

Open Building data ANalytics
JavaScript
2
star
66

dr_client

Dead Reckoning Android Client
Java
2
star
67

state_estimation

Various state estimation techniques using inertial data
Jupyter Notebook
2
star
68

Black-box-ECG-attack

Python
2
star
69

labweb

lab web site
Ruby
2
star
70

GDTM

Dataset Repository of GDTM: An Indoor Geospatial Tracking Dataset with Distributed Multimodal Sensors
Python
2
star
71

Ceiling-Sensing-Online

This project involves streaming data from several micazs to a website using radio, serial communication, and HTML 5 Websockets.
Python
1
star
72

DANCER

Dancer: Domain Adaptation and Neurosymbolic inference for Complex Event Reasoning
Python
1
star
73

AI-Collab

Python
1
star
74

uant

Underwater Acoustic Networking plaTform (UANT)
C
1
star
75

AcousticEMA

Java
1
star
76

androidmlapi

An optimized machine learning API on the Snapdragon platform
Java
1
star
77

DistributedCE

Distributed Complex Event Detection Architecture
Python
1
star
78

USBAudioAmp

Simple USB based Audio amplifier, can be used as a transmitter for underwater impedance sensing
Python
1
star
79

x4driver_stream

C
1
star
80

buildsys-19-code

The source code of buildsys-2019
Groovy
1
star
81

x4dyl

C
1
star
82

vartos

Variability-Aware RTOS
C
1
star
83

SystemSens

Java
1
star
84

ChargePredictor

1
star
85

EINF

Efficient INFerence: android system service and API for defining and executing context inference
1
star
86

SensorPoller

Periodic logging of sensor streams for fingerprint analysis offline
Java
1
star
87

TheMagicFinger

Gesture-based appliance interaction system
MATLAB
1
star
88

RL_Lecture_Fall_2020

Jupyter Notebook
1
star
89

neurotrigger_2.0_firmware

Firmware for the Neurotrigger's MCU
C
1
star
90

AutoGrader

Web frontend of Embedded Systems Auto Grader project
Python
1
star
91

SensorSafeV1-Broker

Python
1
star
92

dr_server

Dead Reckoning Server
JavaScript
1
star
93

DeepCEP_DAIS

Implementation of DeepCEP for DAIS paper
Python
1
star
94

PenguinTracking

EKF estimation for penguin tracking using inertial and positioning sensors
MATLAB
1
star
95

EngagementService

An engagement service to engage participants in user study
Python
1
star
96

LightSpy

Using light to spy
MATLAB
1
star
97

BatteryLogger

Android battery logger using alarm manager
Java
1
star
98

WorkDeskProximityDetection

Jupyter Notebook
1
star
99

electrosense

C
1
star
100

MocapClient

Motion capture client for OptiTrack system
Python
1
star