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("")
示例#2
0
 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("")
示例#3
0
    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 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
        }
示例#8
0
    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 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
示例#14
0
def show_confusion_matrix():
    svm_config = c.getInstance('../../').getConfig("svm")
    svm = SVM(None, svm_config)
    svm.show_confusion_matrix()