def loadUserConfig(self): self.userConfig = c.getInstance().getConfig("user") print("Hello " + self.userConfig['name']) print("Use command 'h' for usage help!") self.selectClassifier(["u", self.userConfig['classifier']]) self.sound = not bool(self.userConfig['autostart_sound']) self.soundFirstTime = True self.toggleSound("")
def getClassificator(self, name): if (name == ""): raise Exception("No classificator specified, see usage 'h'") elif (name == "lstm"): if (name not in self.classificators): from classifier.lstm.lstm import LSTM lstmConfig = c.getInstance().getConfig("lstm") cl = LSTM(self.recorder, lstmConfig) self.classificators[name] = cl cl = self.classificators[name] elif (name == "svm"): if (name not in self.classificators): from classifier.svm.svm import SVM svmConfig = c.getInstance().getConfig("svm") cl = SVM(self.recorder, svmConfig) self.classificators[name] = cl cl = self.classificators[name] elif (name == "trees"): if (name not in self.classificators): from classifier.trees.Trees import Trees treeConfig = c.getInstance().getConfig("trees") cl = Trees(self.recorder, treeConfig) self.classificators[name] = cl cl = self.classificators[name] elif (name == "hmm"): if (name not in self.classificators): from classifier.hmm.gestureApplication import HMM # hmmConfig = c.getInstance().getConfig("hmm") cl = HMM(self.recorder) self.classificators[name] = cl cl = self.classificators[name] elif (name == "kmeans"): if (name not in self.classificators): from classifier.k_means.kMeans import KMeans cl = KMeans(self.recorder) self.classificators[name] = cl cl = self.classificators[name] else: raise Exception("Classificator not existing") return cl
def getClassificator(self, name): if(name == ""): raise Exception("No classificator specified, see usage 'h'") elif(name == "lstm"): if(name not in self.classificators): from classifier.lstm.lstm import LSTM lstmConfig = c.getInstance().getConfig("lstm") cl = LSTM(self.recorder, lstmConfig) self.classificators[name] = cl cl = self.classificators[name] elif(name == "svm"): if(name not in self.classificators): from classifier.svm.svm import SVM svmConfig = c.getInstance().getConfig("svm") cl = SVM(self.recorder, svmConfig) self.classificators[name] = cl cl = self.classificators[name] elif(name == "trees"): if(name not in self.classificators): from classifier.trees.Trees import Trees treeConfig = c.getInstance().getConfig("trees") cl = Trees(self.recorder, treeConfig) self.classificators[name] = cl cl = self.classificators[name] elif(name == "hmm"): if(name not in self.classificators): from classifier.hmm.gestureApplication import HMM # hmmConfig = c.getInstance().getConfig("hmm") cl = HMM(self.recorder) self.classificators[name] = cl cl = self.classificators[name] elif(name == "kmeans"): if(name not in self.classificators): from classifier.k_means.kMeans import KMeans cl = KMeans(self.recorder) self.classificators[name] = cl cl = self.classificators[name] else: raise Exception("Classificator not existing") return cl
def createKeyBindings(self): keys = {} config = c.getInstance().getConfig("keys") keys[0] = eval(config.get("key_0")) keys[1] = eval(config.get("key_1")) keys[2] = eval(config.get("key_2")) keys[3] = eval(config.get("key_3")) keys[4] = eval(config.get("key_4")) keys[5] = eval(config.get("key_5")) keys[6] = eval(config.get("key_6")) keys[7] = eval(config.get("key_7")) return keys
def __init__(self, config, net): self.config = config self.net = net self.avg = util.getAverage(self.net.datacut, self.net.datafold) self.datalist = [] self.datanum = 0 self.has32 = False # Classify2 self.previouspredict = 6 self.predcounter = 0 self.predHistSize = 8 self.predHistHalfUpper = 5 self.predcountertreshold = 5 self.predHistory = util.createArraySix(self.predHistSize, ) # Classify3 method self.predhistoryforclassify3 = { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0 } self.classify3start = False # classify4 & 5 self.start = 0 self.buffer = [] self.liveData = [] self.beginClassify = 0 self.beginMax = 0 self.maxValue = 0 self.maxValueList = [] # For interacting with OS self.outkeys = None if (c.getInstance().getOSConfig()['type'] == "posix"): from systemkeys import SystemKeys self.outkeys = SystemKeys() self.classifyMethods = { 1: self.__classify1, 2: self.__classify2, 3: self.__classify3, 4: self.__classify4, 5: self.__classify5 }
def _setConfig(self): self.config = c.getInstance() self.checkNameSet() self.checkOSet() self.audioConfig = self.config.getAudioConfig() self.pathsConfig = self.config.getPathsConfig() self.recordConfig = self.config.getRecordConfig() self.frequency = float(self.audioConfig['frequency']) self.amplitude = float(self.audioConfig['amplitude']) self.framerate = int(self.audioConfig['framerate']) self.duration = int(self.audioConfig['duration']) self.bufsize = int(self.audioConfig['buffersize']) self.path = self.pathsConfig['gesturepath']
def __init__(self, config, net): self.config = config self.net = net self.avg = util.getAverage(self.net.datacut, self.net.datafold) self.datalist = [] self.datanum = 0 self.has32 = False # Classify2 self.previouspredict = 6 self.predcounter = 0 self.predHistSize = 8 self.predHistHalfUpper = 5 self.predcountertreshold = 5 self.predHistory = util.createArraySix(self.predHistSize,) # Classify3 method self.predhistoryforclassify3 = {0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0} self.classify3start = False # classify4 & 5 self.start = 0 self.buffer = [] self.liveData = [] self.beginClassify = 0 self.beginMax = 0 self.maxValue = 0 self.maxValueList = [] # For interacting with OS self.outkeys = None if(c.getInstance().getOSConfig()['type'] == "posix"): from systemkeys import SystemKeys self.outkeys = SystemKeys() self.classifyMethods = {1:self.__classify1, 2:self.__classify2, 3:self.__classify3, 4:self.__classify4, 5:self.__classify5 }
def __loadDataFromFile(merge67="false"): gesturepath = c.getInstance().getPathsConfig()['gesturepath'] g = GestureFileIO(gesturePath=gesturepath, relative=relative) data = [0] * nClasses getData = None if(average == "false"): getData = g.getGesture3DNormalized else: getData = g.getGesture3DDiffAvg if(merge67 == "true"): merge67 = True else: merge67 = False for i in classes: data[i] = getData(i, [], merge67) if(i == 6 and merge67): data7 = getData(7, [], merge67) data[i] = np.append(data[i], data7, axis=0) print("data " + str(i) + " loaded shape: " + str(np.shape(data[i]))) print("data loaded, now creating dataset") return data
def getAverage(cut, fold): global avg # Use this if reaults are too bad by creating avg on demand with recorded gestures # the avg from all gestures isn't correct anymore -> hardcoded avg # avg = [ 0.01405917, 0.01451394, 0.01501277, 0.01552741, 0.01608232, 0.0166838, # 0.017318, 0.01801043, 0.01876477, 0.01958107, 0.02046903, 0.02144034, # 0.02251206, 0.02370547, 0.02503494, 0.02651884, 0.02819135, 0.03008983, # 0.03227148, 0.03479038, 0.03773177, 0.04122532, 0.04543961, 0.05061085, # 0.05710018, 0.06553213, 0.07690142, 0.09310018, 0.11811639, 0.16215195, # 0.26233294, 0.83321468, 0.99991455, 0.4672319, 0.2171238, 0.1442126, # 0.10842227, 0.08702495, 0.07270665, 0.06246511, 0.0547552, 0.04876873, # 0.04395861, 0.03999377, 0.03669765, 0.03390901, 0.03149998, 0.02941618, # 0.02760306, 0.02599722, 0.02456548, 0.02327461, 0.02212122, 0.02108119, # 0.02013257, 0.01926706, 0.01846762, 0.01773872, 0.01707368, 0.01645111, # 0.01586561, 0.0153235, 0.01481276, 0.01433922] if avg == None: gesturepath = c.getInstance().getPathsConfig()['gesturepath'] g = GestureFileIO(gesturePath=gesturepath) avg = g.getAvgFrequency() avg = preprocessFrame(avg, cut, fold) return avg
def __loadDataFromFile(merge67="false"): gesturepath = c.getInstance().getPathsConfig()['gesturepath'] g = GestureFileIO(gesturePath=gesturepath, relative=relative) data = [0] * nClasses getData = None if (average == "false"): getData = g.getGesture3DNormalized else: getData = g.getGesture3DDiffAvg if (merge67 == "true"): merge67 = True else: merge67 = False for i in classes: data[i] = getData(i, [], merge67) if (i == 6 and merge67): data7 = getData(7, [], merge67) data[i] = np.append(data[i], data7, axis=0) print("data " + str(i) + " loaded shape: " + str(np.shape(data[i]))) print("data loaded, now creating dataset") return data
def show_confusion_matrix(): svm_config = c.getInstance('../../').getConfig("svm") svm = SVM(None, svm_config) svm.show_confusion_matrix()