StevenMHernandez / Android-CSI-Labelling-App

Android App for labelling CSI collected through the [ESP32 CSI Toolkit](https://stevenmhernandez.github.io/ESP32-CSI-Tool/)
27 stars 7 forks source link

Android CSI Labelling App

Channel State Information (CSI) is often used to perform "Wi-Fi Sensing" and "Localization" prediction tasks. Most often, prediction is performed through some supervised machine learning algorithms. Supervised machine learning model require each sample to have a specific label (or classification) for training. To facilitate training such a model with CSI data collected from the ESP32 CSI Toolkit, this Android app allows the user a number of methods to label CSI samples in real-time while also recording the CSI data.

Features

Labelling Methods

Usage

git clone --recurse-submodules https://github.com/StevenMHernandez/Android-CSI-Labelling-App.git

Select Labelling Method

In ./app/src/main/AndroidManifest.xml, uncomment the desired labelling method.

For example the below sample would select the "PressAndHold" labelling method:

<!-- <activity android:name=".Experiments.TimerMainActivity"> -->
<activity android:name=".Experiments.PressAndHoldMainActivity">
<!-- <activity android:name=".Experiments.ToggleMainActivity"> -->
<!-- <activity android:name=".Experiments.ManualInputMainActivity"> -->

Set Labelling Parameters

In the MainActivity selected in the previous step, edit the ./app/src/main/java/com/stevenmhernandez/csi_labelling_app/.java file

Install App on Phone

Plug in your android device into computer, then press run in Android Studio. After installation, unplug smartphone and plug ESP32 into smartphone with a USB OTG cable.