|
10 | 10 | import matplotlib.pyplot as plt
|
11 | 11 | import matplotlib.pyplot as plt; plt.rcdefaults()
|
12 | 12 |
|
| 13 | +dustbin_label_loc = 0 |
13 | 14 | shift = 15
|
14 | 15 | window_size = 45
|
15 | 16 | mean_diff_threshold = 60000
|
|
28 | 29 | classes = sorted(classes, key=str.lower)
|
29 | 30 |
|
30 | 31 | processed = np.zeros(len(classes))
|
31 |
| -processed[0] = 500 # todo: update automatically with dustbin class data generation |
32 | 32 | failed = np.zeros(len(classes))
|
33 | 33 | for i in range(0, len(classes)):
|
34 | 34 | curr_data_path = os.path.join(collected_data_path, classes[i])
|
|
53 | 53 | if diff < mean_diff_threshold:
|
54 | 54 | # print(f"Processing sample with mean: {mean}")
|
55 | 55 | processed[idx] += 1
|
56 |
| - training_samples.append(sample) |
| 56 | + training_samples.append(sample[:,1:]) |
57 | 57 | target = np.zeros(len(classes))
|
58 | 58 | target[classes.index(classes[i])] = 1
|
59 | 59 | training_targets.append(target)
|
|
78 | 78 | print(f"Dropping sample with mean: {mean}")
|
79 | 79 | failed[idx] += 1
|
80 | 80 | # print(sample_diffs)
|
81 |
| - plt.subplot(211) |
82 |
| - plt.title(f'{classes[i]} | Milliseconds between samples') |
83 |
| - plt.plot(np.arange(1, window_size), sample_diffs) |
84 |
| - plt.ylim([min(sample_diffs)-100, max(sample_diffs)+100]) |
85 |
| - plt.subplot(212) |
86 |
| - plt.title("Accelerometer sample window") |
87 |
| - plt.plot(np.arange(1, window_size+1), raw_data['accelerometerAccelerationX(G)'][j:j + window_size], 'r') |
88 |
| - plt.plot(np.arange(1, window_size + 1), raw_data['accelerometerAccelerationY(G)'][j:j + window_size], 'g') |
89 |
| - plt.plot(np.arange(1, window_size + 1), raw_data['accelerometerAccelerationZ(G)'][j:j + window_size], 'b') |
90 |
| - plt.ylim([-4.75, 4.75]) |
91 |
| - plt.show() |
| 81 | + # plt.subplot(211) |
| 82 | + # plt.title(f'{classes[i]} | Milliseconds between samples') |
| 83 | + # plt.plot(np.arange(1, window_size), sample_diffs) |
| 84 | + # plt.ylim([min(sample_diffs)-100, max(sample_diffs)+100]) |
| 85 | + # plt.subplot(212) |
| 86 | + # plt.title("Accelerometer sample window") |
| 87 | + # plt.plot(np.arange(1, window_size+1), raw_data['accelerometerAccelerationX(G)'][j:j + window_size], 'r') |
| 88 | + # plt.plot(np.arange(1, window_size + 1), raw_data['accelerometerAccelerationY(G)'][j:j + window_size], 'g') |
| 89 | + # plt.plot(np.arange(1, window_size + 1), raw_data['accelerometerAccelerationZ(G)'][j:j + window_size], 'b') |
| 90 | + # plt.ylim([-4.75, 4.75]) |
| 91 | + # plt.show() |
92 | 92 |
|
93 | 93 | print(f'\nClasses: {classes}')
|
94 | 94 | print(f'Successful: {processed}')
|
|
100 | 100 | print(f'Successful samples: {sum(processed)}')
|
101 | 101 |
|
102 | 102 | # saving training data
|
| 103 | +training_samples = np.asarray(training_samples) |
| 104 | +training_targets = np.asarray(training_targets) |
| 105 | + |
| 106 | +# create set of dustbin samples |
| 107 | +num_dustbin_samples = 1000 |
| 108 | +dustbin_samples = np.random.uniform(-3,3,size=(num_dustbin_samples,45,3)) |
| 109 | +dustbin_labels = np.zeros((num_dustbin_samples, len(classes))) |
| 110 | +dustbin_labels[:, dustbin_label_loc] = 1 |
| 111 | + |
| 112 | +# generate random noise for dust bin class |
| 113 | +train_x = np.concatenate((training_samples, dustbin_samples)) |
| 114 | +train_y = np.concatenate((training_targets, dustbin_labels)) |
| 115 | +processed[0] += num_dustbin_samples |
| 116 | + |
103 | 117 | np.save("training_samples", np.asarray(training_samples))
|
104 | 118 | np.save("training_targets", np.asarray(training_targets))
|
105 | 119 |
|
|
0 commit comments