Switch to unified view

a b/Real_Time_Prediction_From_Microcontroller.py
1
import socket
2
import msvcrt
3
import csv
4
import pandas as pd 
5
import tensorflow as tf 
6
import matplotlib as plt
7
import glob
8
import numpy as np 
9
from tensorflow import keras
10
from keras import Sequential
11
from sklearn.utils import shuffle
12
import sklearn.model_selection
13
14
STEP_SIZE = 20
15
SENSOR_NUM = 6
16
17
18
Label = { 'STD':0, 'WAL':1, 'JOG':2 , 'JUM':3, 'FALL':4 , 'LYI':5,'RA':6} #, 'JUM':3, 'LYI':4, 'FOL':5, 'FKL':5, 'BSC':5, 'SDL':5, 'STU':6, 'STN':7, 'SCH':8, 'SIT':9, 'CHU':10, 'CSI':11, 'CSO':12}
19
class_names = { 0:'STD', 1:'WAL', 2:'JOG' , 3:'JUM', 4:'FALL', 5:'LYI',6:'RA'}#, 3:'JUM', 4:'LYI', 5:'Falling', 6:'STU', 7:'STN', 8:'SCH', 9:'SIT', 10:'CHU', 11:'CSI', 12:'CSO'}
20
21
inputSensor = []
22
model = tf.keras.models.load_model('./model_4/')
23
24
model.summary()
25
26
27
l = []
28
packet = []
29
p = ""
30
tp = []
31
s = socket.socket()         
32
 
33
s.bind(('0.0.0.0', 80 ))
34
s.listen(0)    
35
i = 0      
36
37
record = input("Press R to start recording...")
38
if record == 'r' :
39
        
40
41
    # while True:
42
    
43
    client, addr = s.accept()
44
    #     x = kbfunc()
45
46
    carry = ''   
47
    try:
48
        while True:
49
            content = client.recv(1)
50
            
51
52
            if len(content) ==0:
53
                # print("heree?")
54
                break
55
56
            else:
57
                #print(len(content))
58
              
59
                temp = ''
60
                content = content.decode("utf-8")
61
62
                if content == '!':
63
                    
64
                    tp =[]
65
                    p = ''
66
67
                
68
                elif content == '@':
69
                    tp.append(float(p))
70
                    # print(type(tp[0]))
71
                    p = ''
72
                    inputSensor.append(tp)
73
                    if len(inputSensor) > STEP_SIZE:
74
                        inputSensor.pop(0)
75
                    if len(inputSensor) == STEP_SIZE:
76
                        temp = np.array(inputSensor).reshape(-1, STEP_SIZE, SENSOR_NUM)
77
                        #print(temp)
78
                        pred = model.predict(temp)
79
                        results = np.argmax(pred, axis=1)
80
                        print("prediction: ", class_names[results[i]])
81
                        # inputSensor = []
82
                    
83
84
85
                elif content ==',':
86
                    p = float(p)
87
                    p = p
88
                    tp.append(p)
89
                    p = ''
90
91
                else:
92
                    p += content
93
94
    except KeyboardInterrupt:
95
        pass   
96
    
97