Giter VIP home page Giter VIP logo

wifi_activity_recognition's Introduction

Wifi_Activity_Recognition using LSTM

Latest dataset & Tensorflow code for IEEE Communication Magazine.
Title: A Survey on Behaviour Recognition Using WiFi Channel State Information

Work by Siamak Yousefi, Hirokazu Narui, Sankalp Dayal, Stefano Ermon, Shahrokh Valaee


Prerequisite

Tensorflow >= 1.0
numpy
pandas
matplotlib
scikit-learn


How to run

  1. Download dataset from here
    -> Notice: Dataset size is ~4GB

  2. "git clone" this repository.

  3. Run the cross_vali_data_convert_merge.py
    -> This script makes csv files(input features & label) of each activity in "input_files" folder.  

  4. Run the cross_vali_recurrent_network_wifi_activity.py -> This script makes learning curve images & confusion matrix in a new folder.  

Dataset

We collect dataset using Linux 802.11n CSI Tool.

The files with "input_" prefix are WiFi Channel State Information data.
-> 1st column shows timestamp.
-> 2nd - 91st column shows (30 subcarrier * 3 antenna) amplitude.
-> 92nd - 181st column shows (30 subcarrier * 3 antenna) phase.

The files with "annotation_" prefix are annotation data.

Jupyter notebook

PCA_STFT file visualize the data from .csv file. This code refers to CARM.

wifi_activity_recognition's People

Contributors

hirokazu-narui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wifi_activity_recognition's Issues

Matlab code for HMM

In the paper "A Survey on Behaviour Recognition Using WiFi
Channel State Information" you have given that you have also applied HMM on the extracted features using STFT and use the MATLAB toolbox for HMM training. Can I get that matlab code if possible.

Need help on visualization

I am planning to visualize the data as spectrogram to explore it. If you had converted the data to spectrogram from .csv files, would you mind sharing me the code to convert it? However, if you don't have the spectrogram, would you mind sharing me the original .dat file that you have before you converted it to .csv files?

questions about 'data_merge'

Hello, thank you for your sharing. I try to run the coding, but there is always an index error that I cannot handle. Could you please help me with that? I would appreciate it.

The error is as follows:

IndexError Traceback (most recent call last)
/var/folders/5x/3g67fwns0mb68s__c_3fk4wr0000gn/T/ipykernel_43899/857709293.py in
10 outputfilename2 = "./input_files/yy_" + str(window_size) + "" + str(threshold) + "" + label + ".csv"
11
---> 12 x, y = dataimport(filepath1, filepath2)
13 with open(outputfilename1, "w") as f:
14 writer = csv.writer(f, lineterminator="\n")

/var/folders/5x/3g67fwns0mb68s__c_3fk4wr0000gn/T/ipykernel_43899/1109332674.py in dataimport(path1, path2)
84 y[k/slide_size,:] = np.array([0,0,0,0,0,0,0,1])
85 else:
---> 86 y[k/slide_size,:] = np.array([2,0,0,0,0,0,0,0])
87 k += slide_size
88

IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

questions about dataset

Thank you for the dataset, which is really helpful to me. Here I have some questions about the dataset.
I found the phase_calibration file in your repositories. May I ask if the phase information in the CSV files is calibrated or not?
What do you do to deal with the raw phase data?

Data preprocessing: question

Thanks for sharing this data, this is great! I have a quick question: is the data shared here raw? Has it been preprocessed in any way?

Thanks for your time!

Need help on making prediction with the model from this work.

Hi, I am planning to make some prediction about the CSI data collected by myself. Now I have restored a model graph from those three files, model.ckpt.data-00000-of-00001,model.ckpt.index,model.ckpt.meta. But I don't know how to make prediction. Can you give me some direction? Here is my code:
_20190122130424

index Error when the program is writing csv files

Hi,

I run your code smoothly until facing the following error:

`
in dataimport(path1, path2)
77 y[k/slide_size,:] = np.array([0,0,0,0,0,0,0,1])
78 else:
---> 79 y[k/slide_size,:] = np.array([2,0,0,0,0,0,0,0])
80 k += slide_size
81

IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices
`
should I use integer division here?

Issues in cross_vali_data_convert_merge.py

Hello, while I was trying to run cross_vali_data_convert_merge.py, the process of reading the csv files starts with 'input_' is okay, but error occurs when reading the csv files starts with 'annotation'. The details of this error is shown below, thank you in advance if you could help me out! All the best!

input_file_name= ./Dataset/Data/input_bed_170309_1201_19.csv
input_file_name= ./Dataset/Data/input_bed_170321_1325_20.csv
annotation_file_name= ./Dataset/Data/annotation_bed_170308_1405_01.csv
Traceback (most recent call last):
File "cross_vali_data_convert_merge.py", line 106, in
x, y = dataimport(filepath1, filepath2)
File "cross_vali_data_convert_merge.py", line 88, in dataimport
y[k/slide_size,:] = np.array([2,0,0,0,0,0,0,0])
IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices.

Dataset naming scheme

I noticed that you sort the input* and annotation* data to make input-output correspondence between the files for creating windows in "cross_vali_data_convert_merge.py" but if I print out the sorted data, there seems to be a discrepancy due to there being no numbers (161219) in sankalp and siamak annotation files names but being present in the input file names. (I am using google colab)

The sorted data is as follows:

#List the sorted data and make sure data has same naming scheme in both Annotation and Input
import glob
sorted(glob.glob("./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed.csv"))
sorted(glob.glob("./drive/My Drive/WifiActivityRecognition/Dataset/input_bed.csv"))

['./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1405_01.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1406_02.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1407_03.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1408_04.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1409_05.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1410_06.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1411_07.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1412_08.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1413_09.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1414_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1415_11.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1416_12.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1417_13.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1418_14.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1419_15.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1420_16.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1421_17.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1422_18.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1423_19.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170308_1424_20.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1114_01.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1118_02.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1118_03.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1118_04.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1118_05.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1121_06.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1121_07.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1122_08.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1123_09.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1124_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1124_11.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1124_12.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1124_13.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1127_14.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1128_15.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1128_16.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1132_17.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1132_18.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1133_19.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1138_01.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1139_02.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1140_03.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1141_04.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1142_05.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1148_06.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1149_07.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1150_08.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1151_09.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1152_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1153_11.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1154_12.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1155_13.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1156_14.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1157_15.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1158_16.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1159_17.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1200_18.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170309_1201_19.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_bed_170321_1325_20.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_1.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_2.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_3.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_4.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_5.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_6.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_7.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_8.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_sankalp_bed_9.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_1.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_2.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_3.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_4.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_5.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_6.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_7.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_8.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/annotation_siamak_bed_9.csv']

['./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_1.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_2.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_3.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_4.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_5.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_6.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_7.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_8.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_sankalp_bed_9.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_1.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_2.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_3.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_4.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_5.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_6.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_7.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_8.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_161219_siamak_bed_9.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1405_01.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1406_02.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1407_03.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1408_04.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1409_05.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1410_06.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1411_07.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1412_08.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1413_09.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1414_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1415_11.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1416_12.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1417_13.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1418_14.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1419_15.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1420_16.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1421_17.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1422_18.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1423_19.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170308_1424_20.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1114_01.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1118_02.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1118_03.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1118_04.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1118_05.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1121_06.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1121_07.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1122_08.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1123_09.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1124_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1124_11.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1124_12.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1124_13.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1127_14.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1128_15.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1128_16.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1132_17.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1132_18.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1133_19.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1138_01.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1139_02.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1140_03.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1141_04.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1142_05.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1148_06.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1149_07.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1150_08.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1151_09.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1152_10.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1153_11.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1154_12.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1155_13.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1156_14.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1157_15.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1158_16.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1159_17.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1200_18.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170309_1201_19.csv',
'./drive/My Drive/WifiActivityRecognition/Dataset/input_bed_170321_1325_20.csv']

Found input variables with inconsistent numbers of samples: [404, 400]

I execute "cross_vali_recurrent_network_wifi_activity.py" and I got some error
λ python cross_vali_recurrent_network_wifi_activity.py C:\Users\ks812\Anaconda3\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from floattonp.floatingis deprecated. In future, it will be treated asnp.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
WARNING:tensorflow:From cross_vali_recurrent_network_wifi_activity.py:79: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.
Instructions for updating:

Future major versions of TensorFlow will allow gradients to flow
into the labels input on backprop by default.

See @{tf.nn.softmax_cross_entropy_with_logits_v2}.

csv file importing...
bed finished... xx= (657, 500, 90) yy= (657, 8)
fall finished... xx= (443, 500, 90) yy= (443, 8)
pickup finished... xx= (495, 500, 90) yy= (495, 8)
run finished... xx= (1209, 500, 90) yy= (1209, 8)
sitdown finished... xx= (404, 500, 90) yy= (400, 8)
standup finished... xx= (304, 500, 90) yy= (304, 8)
walk finished... xx= (1465, 500, 90) yy= (1465, 8)
bed = 657 fall= 443 pickup = 495 run= 1209 sitdown= 404 standup= 304 walk= 1465
Traceback (most recent call last):
File "cross_vali_recurrent_network_wifi_activity.py", line 102, in
x_sitdown, y_sitdown = shuffle(x_sitdown, y_sitdown, random_state=0)
File "C:\Users\ks812\Anaconda3\lib\site-packages\sklearn\utils_init_.py", line 343, in shuffle
return resample(*arrays, **options)
File "C:\Users\ks812\Anaconda3\lib\site-packages\sklearn\utils_init_.py", line 258, in resample
check_consistent_length(*arrays)
File "C:\Users\ks812\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 204, in check_consistent_length
" samples: %r" % [int(l) for l in lengths])
ValueError: Found input variables with inconsistent numbers of samples: [404, 400]`

My Tensorflow (GPU) version is 1.10.0

Some question of the dataset

As you mentioned,92nd - 181st column shows (30 subcarrier * 3 antenna) phase.
But why is the phase value of all subcarriers almost all greater than 2pi?
For example, in "input_161219_sankalp_bed_1.csv", the phase values of all subcarriers are almost between 10 and 15 from 8.5099s to 11.5s, but isn't the value range of phase from 0 to 2pi?

Dataset content

Thank you for sharing the data and code,it's really great! I have a simple question.
The data I saw in the paper are six kinds of activities, but there are seven kinds of activities in the dataset. There is no " lie down" activity. Is bed corresponding to this activity? So pick up is a later activity?
And i also want to know what do the Numbers in the name of the input _filies in the original dataset mean?
The paper says six people did the activity, did six people do each activity or did each activity have different Numbers of participants?
Do each activity for 20 seconds and repeat each activity 20 times. How is the specific file stored?
I would appreciate it if you could give me an answer.
Thank you for your time!

Invalid methodology

Time series data should never be split randomly as you have done. Sliding windows ensure most of the validation set is at least 80% similar to the training set. You can see this from the validation loss which continues to decrease despite 2000 epochs. Cross validation should be done subject-wise.

class "sitdown" features&labels dimension mismatch?

I really appreciate your work and really want to run the code.
However, when I run cross_vali_data_convert_merge.py, data sitdown class prevent me from training a model. Specificly, the shape of xx and yy are ((7195, 90000), (7187, 8)), the dimension of other classes however match perfectly.

Is there any problem in your collected data? Or something wrong with me.

Amplitude values are negative in dataset

image This image was taken from the input_walk_170308_1307_20.csv file. It shows the first few columns of the data. Since the first 90 columns are specified to be amplitude, I was wondering why the values are negative. I would appreciate it if you could provide some insight into why this is the case.

CSI原始相位数据

您好,我想请问一下原始 CSI 幅度数据,是一个100090的数据,这个 90 维矢量是由3 个天线和 30 个子载波组成的,请问是否可以把100090数据改为1000303,即将90按顺序划分为30*3?
希望您能看到我的提问,我将感激不尽!

How did you get the csv files?

Hi,
Can you show me how did you get *.csv from *.dat file?
And also since your link to the dataset is broken, could you somehow kindly share me your data?
My email address is: [email protected]

Thanks a lot!

question about 'PCA_STFT_visualize.ipynb'

Hi, thank you for sharing the code. I'm trying to implement CARM and your code helps a lot.

I'm a little bit confused about the data processing codes in PCA_STFT_visualize.ipynb. Does the data processing method in this script totally equal to the method in CARM paper? np.convolve is used to calculate the constant offset in the script , while the paper says it is calculated by average CSI amplitude for 4 seconds, so I think it refers to simply averaging the amplitude for 4 sec? Besides the H matrix in the paper is built by chunks obtained in 1-second interval which are cut from CSI streams, while the script used another np.convolve whose window_size is 0.1s to build this matrix (or maybe just to smooth the signal, I'm not sure). Could you help explain why these np.convolve are used? Thanks a lot.

Annotation data import error

I download the dataset .
when I exec "python3 cross_vali_data_convert_merge.py" I got some error:

annotation_file_name= ../old_version/Dataset/annotation_bed_170308_1405_01.csv
Traceback (most recent call last):
File "cross_vali_data_convert_merge.py", line 107, in
x, y = dataimport(filepath1, filepath2)
File "cross_vali_data_convert_merge.py", line 44, in dataimport
y = np.zeros(((len(tmp2) + 1 - 2 * window_size)/slide_size+1,8))
TypeError: 'float' object cannot be interpreted as an integer

I try fix that ,convert float to int
y = np.zeros(((len(tmp2) + 1 - 2 * window_size)/slide_size+1,8))
to
y = np.zeros((int((len(tmp2) + 1 - 2 * window_size)/slide_size+1),8))

and I got this error

annotation_file_name= ../old_version/Dataset/annotation_bed_170308_1405_01.csv
Traceback (most recent call last):
File "cross_vali_data_convert_merge.py", line 107, in
x, y = dataimport(filepath1, filepath2)
File "cross_vali_data_convert_merge.py", line 89, in dataimport
y[k/slide_size,:] = np.array([2,0,0,0,0,0,0,0])
IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

How to invoke the model

I am a novice in machine learning. After running the code, I want to know how to write the calling function.
Thank you for your time.

Memory error

Hi,
Thank you for the new dataset. Unfortunately, somehow I got "xx = np.concatenate((xx,x2),axis=0) MemoryError" when converting your dataset. I have tried with different window_size and slide_size but the error persist. My machine has 16GB of RAM. Do you have any idea of resolving this?
Thanks a lot!

NoActivity category

I am trying to use this dataset to train lstm model. I need some clarity on dataset used for training.

  1. Dataset has Noactivity annotations but is there a reason for not including it in lstm classifier?
  2. Is Mexico files in dataset are collected at a single building using similar CSI capture setup?

Thanks

Issues in cross_vali_data_convert_merge.py

Just to make sure that I'm doing this right:
I switched this:
Screenshot from 2019-10-13 10-39-38
To this:
Screenshot from 2019-10-13 10-37-04
Since I was getting this error message:
Screenshot from 2019-10-13 10-37-58

Also, do I need to run this code in order to see your data 'PCA_STFT_visualize.ipynb' in jupyter notebook or can I already visualize it? Any help is appreciated, Thanks!

Issue with the code!

Dear authors,

Firstly, thanks for sharing the dataset and the code. While running the file "cross_vali_data_convert_merge", it reads the input files but it returns the following error when reading the annotation files.

`cross_vali_data_convert_merge.py', wdir='H:/traces/wlan-csi-stanford')
input_file_name= ./Dataset\input_161219_siamak_bed_1.dat.csv
input_file_name= ./Dataset\input_161219_siamak_bed_10.dat.csv
input_file_name= ./Dataset\input_161219_siamak_bed_2.dat.csv
input_file_name= ./Dataset\input_161219_siamak_bed_3.dat.csv
input_file_name= ./Dataset\input_161219_siamak_bed_4.dat.csv
input_file_name= ./Dataset\input_161219_siamak_bed_5.dat.csv
input_file_name= ./Dataset\input_161219_siamak_bed_6.dat.csv
input_file_name= ./Dataset\input_161219_siamak_bed_7.dat.csv
input_file_name= ./Dataset\input_161219_siamak_bed_8.dat.csv
input_file_name= ./Dataset\input_161219_siamak_bed_9.dat.csv
annotation_file_name= ./Dataset\annotation_siamak_bed_1.csv
Traceback (most recent call last):

File "", line 1, in
runfile('H:/traces/wlan-csi-stanford/cross_vali_data_convert_merge.py', wdir='H:/traces/wlan-csi-stanford')

File "C:\Users\Muhammad\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile
execfile(filename, namespace)

File "C:\Users\Muhammad\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "H:/traces/wlan-csi-stanford/cross_vali_data_convert_merge.py", line 107, in
x, y = dataimport(filepath1, filepath2)

File "H:/traces/wlan-csi-stanford/cross_vali_data_convert_merge.py", line 43, in dataimport
y = np.zeros(((len(tmp2) + 1 - 2 * window_size)/slide_size+1,8))

TypeError: 'float' object cannot be interpreted as an integer`

Practical Application of CSI

Hi,

I am trying to look the the practical aspect of using CSI. To this end, I separated the NoActivity data from the given activities and trained the RNN model to classify 8 activities (including NoActivity) and made it work in real time. Although the performance on the dataset in quite good, in practical environment, it does not perform well. The type of environment and disturbances outside the LOS of the transmitter and Receiver also cause the output to change.

I do not know how exactly your 'sitdown', 'standup' or 'fall' activities were performed or how your environment was, but if I try doing these in my room, it can hardly classify them correctly.

I am going to try using directional antennas and changing other aspects (like increasing frequency back to 1kHz and decreasing the number of activities to classify). Can you suggest something else to make it more robust in practical environments?

error in “cross_vali_data_convert_merge.py”

Traceback (most recent call last):
File "./test_wu/cross_vali_data_convert_merge.py", line 108, in
x, y = dataimport(filepath1, filepath2)
File "./test_wu/cross_vali_data_convert_merge.py", line 33, in dataimport
xx = xx.reshape(len(xx),-1)
ValueError: cannot reshape array of size 0 into shape (0,newaxis)

How can I solve this problem?

Thanks a lot!

Question on the CSI Tool settings

Thanks for your data. I have a few questions on settings of the CSI tool
First, what is the exact centre frequency for 2.4Ghz and 5Ghz since each band has multiple channels.
For example, channel 44 is about 5.25Ghz.
Second, since Intel5300 NIC has three antennas , for each antennas which channel it works on.
For example ,the collected data has 181 columns. Data from 1 to 90 are assigned to three antennas. 1 to 30 is antenna one that works on 2.4Ghz

I am looking forward to your reply.

question of the DataSet

The data set download result is DataSet.tar_2,Run the program, the result is an error, what should I do?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.