-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmovement_test.py
128 lines (95 loc) · 4.67 KB
/
movement_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
from CSIKit.reader import CSVBeamformReader
from data_handler import load_csi_data
from stats import get_sti, get_correlation_coefficient
import plot
import time
startTime = time.time()
# filename = "data/environment1/movement1/movement1_1.csv"
# filename = "data/environment1/movement1/movement1_2.csv"
# filename = "data/environment1/movement1/movement1_3.csv"
# filename = "data/environment1/movement1/movement1_4.csv"
# filename = "data/environment1/movement1/movement1_5.csv"
# filename = "data/environment1/movement2/movement2_1619789649.csv"
# filename = "data/environment1/movement2/movement2_1619789687.csv"
# filename = "data/environment1/movement2/movement2_1619789723.csv"
# filename = "data/environment1/movement2/movement2_1619789766.csv"
# filename = "data/environment1/movement2/movement2_1619789806.csv"
# filename = "data/environment1/movement3/movement3_1619789958.csv"
# filename = "data/environment1/movement3/movement3_1619789999.csv"
# filename = "data/environment1/movement3/movement3_1619790037.csv"
# filename = "data/environment1/movement3/movement3_1619790081.csv"
# filename = "data/environment1/movement3/movement3_1619790125.csv"
# filename = "data/environment1/movement4/movement4_1619790203.csv"
# filename = "data/environment1/movement4/movement4_1619790224.csv"
# filename = "data/environment1/movement4/movement4_1619790243.csv"
# filename = "data/environment1/movement4/movement4_1619790264.csv"
# filename = "data/environment1/movement4/movement4_1619790298.csv"
# filename = "data/environment1/movement5/movement5_1619790327.csv"
# filename = "data/environment1/movement5/movement5_1619790344.csv"
# filename = "data/environment1/movement5/movement5_1619790369.csv"
# filename = "data/environment1/movement5/movement5_1619790385.csv"
# filename = "data/environment1/movement5/movement5_1619790403.csv"
filename = "data/house_experiments/movement1/movement1_1_config1.csv"
# filename = "data/house_experiments/movement1/movement1_2_config1.csv"
# filename = "data/house_experiments/movement1/movement1_3_config1.csv"
# filename = "data/house_experiments/movement1/movement1_4_config1.csv"
# filename = "data/house_experiments/movement1/movement1_5_config1.csv"
# filename = "data/house_experiments/movement1/movement1_1_config2.csv"
# filename = "data/house_experiments/movement1/movement1_2_config2.csv"
# filename = "data/house_experiments/movement1/movement1_3_config2.csv"
# filename = "data/house_experiments/movement1/movement1_4_config2.csv"
# filename = "data/house_experiments/movement1/movement1_5_config2.csv"
# filename = "data/house_experiments/movement1/movement1_kitchen_config1.csv"
# filename = "data/house_experiments/movement1/movement1_kitchen2_config1.csv"
# filename = "data/house_experiments/movement1/movement1_kitchen3_config1.csv"
# filename = "data/house_experiments/movement1/movement1_masterbedroom1_config2.csv"
# filename = "data/house_experiments/movement1/movement1_masterbedroom2_config2.csv"
# filename = "data/house_experiments/movement1/movement1_masterbedroom3_config2.csv"
reader = CSVBeamformReader()
csi_data = reader.read_file(filename)
csi, timestamps, timestamps_unscaled = load_csi_data(csi_data)
#ESP32 setup (Day 1).
# mean_corr = 0.9917
# diff_corr = 0.0246
#ESP32 setup (Day 2).
# mean_corr = 0.9962
# diff_corr = 0.0117
#ESP32 setup house_experiments config1
mean_corr = 0.9971
diff_corr = 0.0080
#ESP32 setup house_experiments config2
# mean_corr = 0.9962
# diff_corr = 0.0083
# plot.heatmap_3d(csi, timestamps)
# plot.heatmap(np.transpose(csi), timestamps)
#%diff thresholds.
moving_threshold = 0.15
# moving_threshold = 0.10
notmoving_threshold = 0.05
# notmoving_threshold = 0.10
#PCC-activation threshold.
#Let's try and establish this by calibrating with a "no presence" example.
#Then we can use take a multiplier of the average max-min diff as our threshold.
# containsmovement_threshold = 0.92
containsmovement_threshold = mean_corr-(diff_corr*2)
prev_frame = None
sti_values = []
corr_values = []
prev_frame = csi[0]
for x in range(csi.shape[0]-1):
frame = csi[x+1]
sti = get_sti(frame, prev_frame)
corr = get_correlation_coefficient(frame, prev_frame)
sti_values.append(sti)
corr_values.append(corr)
prev_frame = frame
#Hack to re-add scaled timestamps.
first_timestamp = timestamps[0]
for i, stamp in enumerate(timestamps):
stamp -= first_timestamp
timestamps[i] = stamp
timestamps = sorted(timestamps[1:])
timestamps_unscaled = sorted(timestamps_unscaled[1:])
plot.plot_movement(filename, csi, sti_values, corr_values, timestamps, timestamps_unscaled, reader.filename, containsmovement_threshold, moving_threshold, notmoving_threshold)
endTime = time.time()
print("Took {:.2f}s to run.".format(endTime-startTime))