-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtestModel.py
More file actions
49 lines (38 loc) · 1.17 KB
/
testModel.py
File metadata and controls
49 lines (38 loc) · 1.17 KB
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
# Import Classes
from keras.models import load_model
from collections import deque
import myo
import numpy as np
sampleLength = 32
#Listener Class
class Listener(myo.DeviceListener):
# it will only listen to emg data and
# make a 20 step queue from it.
def __init__(self):
self.emg_data = deque(maxlen=sampleLength)
def get_emg_data(self):
return list(self.emg_data)
def on_connected(self, event):
print('Myo Connected!')
event.device.stream_emg(True)
def on_emg(self, event):
self.emg_data.append(event.emg)
#Init main
if __name__ == '__main__':
#Load Model
model = load_model('32_length_sample_16lstm.h5')
# Summarize Model
model.summary()
# Initialize myo
myo.init(sdk_path='myo-sdk-win-0.9.0')
hub = myo.Hub()
listener = Listener()
gesture_names = ['Rest', 'Fist', 'Hold_Left', 'Hold_Right', 'Flower', 'Finger_Spread','Metal','Thumbs_Up','Peace']
while hub.run(listener.on_event, 500):
emg = np.array(listener.get_emg_data())
# Ensure data queue is ready
while(len(emg)<sampleLength):
pass
emg = emg.reshape(1, emg.shape[0], emg.shape[1])
prediction = model.predict_classes(emg)
print('['+str(prediction[0])+']: '+gesture_names[prediction[0]])