/** * Performs hmm train for all training data set.<br> * First quantizes the feature vector against codebook, and then train baum-welch * * @return */ public boolean trainHMM() { boolean operationSuccess = false; codebook = new Codebook(); database.setMode(DBMode.TRAINDATA); Model[][] regModels = database.readAllDataofCurrentMode(); String[] gestName = database.getRegisteredModelNames(); int quantizedSeq[][]; HiddenMarkov mkv = new HiddenMarkov(NUM_STATES, NUM_SYMBOLS); // for each gesture for (int i = 0; i < regModels.length; i++) { operationSuccess = false; // for each train sample of current gesture quantizedSeq = new int[regModels[i].length][]; for (int j = 0; j < regModels[i].length; j++) { GestureFeature[] gf = getFeature((RawFeature) regModels[i][j]); Points[] pts = getPointsFromFeatureVector(gf); quantizedSeq[j] = codebook.quantize(pts); } mkv.setTrainSeq(quantizedSeq); mkv.train(); mkv.save(gestName[i]); operationSuccess = true; } return operationSuccess; }
public String[] readTrainData1D() { database.setMode(DBMode.TRAINDATA); return (database.getRegisteredModelNames()); }
public String[] readRegGestureModels() { database.setMode(DBMode.HMM_MODEL); return (database.getRegisteredModelNames()); }