如果找到了对您有用的资料,烦请点击右手边的Google广告支持我继续共享知识,谢谢! http://dengpeng.spaces.live.com/

2008年4月8日星期二

GART HelloWorld

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package garttest;

import edu.gatech.gart.library.Library;
import edu.gatech.gart.library.Sample;
import edu.gatech.gart.library.Tag;
import edu.gatech.gart.library.Vector;
import edu.gatech.gart.ml.htk.HTK;
import edu.gatech.gart.ml.htk.HTKOptions;
import edu.gatech.gart.ml.htk.HTK;
import edu.gatech.gart.sensor.Result;

/**
*
* @author pdeng
*/

public class Main {

public static void main(String[] args) {
new tester();
}
}

class tester {

tester() {
// <editor-fold defaultstate="collapsed" desc="Initial work space">
HTKOptions myOpt = null;
myOpt = new HTKOptions("opt");
myOpt.setPRJ_DIR("c:\\temp");

Library myLib = null;
myLib = new Library("lib");
myLib.setPath("c:\\temp\\" + "lib" + ".xml");

myOpt.setVectorSize(1);
HTK htk = new HTK(myOpt);

Tag t = new Tag("author", "pdeng");
Tag t2 = new Tag("date", "4/5/2008");
myLib.addTag(t);
myLib.addTag(t2);
//</editor-fold>

// <editor-fold defaultstate="collapsed" desc="Initial training data">
Double[] d1 = {1d};
Double[] d2 = {2d};
Double[] d3 = {3d};
Double[] d4 = {4d};
Double[] d5 = {5d};
Double[] d6 = {6d};
Double[] d7 = {7d};
Double[] d8 = {8d};
Double[] d9 = {9d};
Double[] d10 = {10d};
Double[] d11 = {11d};
Double[] d12 = {12d};
Double[] d13 = {13d};
Double[] d14 = {14d};
Double[] d15 = {15d};
Double[] d16 = {16d};
Double[] d17 = {17d};
Double[] d18 = {18d};
Double[] d19 = {19d};
Double[] d20 = {20d};
Vector<Number> v1 = new Vector<Number>(d1);
Vector<Number> v2 = new Vector<Number>(d2);
Vector<Number> v3 = new Vector<Number>(d3);
Vector<Number> v4 = new Vector<Number>(d4);
Vector<Number> v5 = new Vector<Number>(d5);
Vector<Number> v6 = new Vector<Number>(d6);
Vector<Number> v7 = new Vector<Number>(d7);
Vector<Number> v8 = new Vector<Number>(d8);
Vector<Number> v9 = new Vector<Number>(d9);
Vector<Number> v10 = new Vector<Number>(d10);
Vector<Number> v11 = new Vector<Number>(d11);
Vector<Number> v12 = new Vector<Number>(d12);
Vector<Number> v13 = new Vector<Number>(d13);
Vector<Number> v14 = new Vector<Number>(d14);
Vector<Number> v15 = new Vector<Number>(d15);
Vector<Number> v16 = new Vector<Number>(d16);
Vector<Number> v17 = new Vector<Number>(d17);
Vector<Number> v18 = new Vector<Number>(d18);
Vector<Number> v19 = new Vector<Number>(d19);
Vector<Number> v20 = new Vector<Number>(d20);

// <editor-fold defaultstate="collapsed" desc="Traning data set1: ascending ">
Sample sam1 = new Sample();
Tag tt1 = new Tag("label", "Hello", 0, 20);
sam1.addTag(tt1);
sam1.add(v1);
sam1.add(v2);
sam1.add(v3);
sam1.add(v4);
sam1.add(v5);
sam1.add(v6);
sam1.add(v7);
sam1.add(v8);
sam1.add(v9);
sam1.add(v10);
sam1.add(v11);
sam1.add(v12);
sam1.add(v13);
sam1.add(v14);
sam1.add(v15);
sam1.add(v16);
sam1.add(v17);
sam1.add(v18);
sam1.add(v19);
sam1.add(v20);

Sample sam2 = new Sample();
Tag tt2 = new Tag("label", "Hello", 0, 20);
sam2.addTag(tt2);
sam2.add(v1);
sam2.add(v2);
sam2.add(v3);
sam2.add(v4);
sam2.add(v5);
sam2.add(v6);
sam2.add(v7);
sam2.add(v8);
sam2.add(v9);
sam2.add(v10);
sam2.add(v11);
sam2.add(v12);
sam2.add(v13);
sam2.add(v14);
sam2.add(v15);
sam2.add(v16);
sam2.add(v17);
sam2.add(v18);
sam2.add(v19);
sam2.add(v20);

Sample sam3 = new Sample();
Tag tt3 = new Tag("label", "Hello", 0, 20);
sam3.addTag(tt3);
sam3.add(v1);
sam3.add(v2);
sam3.add(v3);
sam3.add(v4);
sam3.add(v5);
sam3.add(v6);
sam3.add(v7);
sam3.add(v8);
sam3.add(v9);
sam3.add(v10);
sam3.add(v11);
sam3.add(v12);
sam3.add(v13);
sam3.add(v14);
sam3.add(v15);
sam3.add(v16);
sam3.add(v17);
sam3.add(v18);
sam3.add(v19);
sam3.add(v20);

Sample sam4 = new Sample();
Tag tt4 = new Tag("label", "Hello", 0, 20);
sam4.addTag(tt4);
sam4.add(v1);
sam4.add(v2);
sam4.add(v3);
sam4.add(v4);
sam4.add(v5);
sam4.add(v6);
sam4.add(v7);
sam4.add(v8);
sam4.add(v9);
sam4.add(v10);
sam4.add(v11);
sam4.add(v12);
sam4.add(v13);
sam4.add(v14);
sam4.add(v15);
sam4.add(v16);
sam4.add(v17);
sam4.add(v18);
sam4.add(v19);
sam4.add(v20);

Sample sam5 = new Sample();
Tag tt5 = new Tag("label", "Hello", 0, 20);
sam5.addTag(tt5);
sam5.add(v1);
sam5.add(v2);
sam5.add(v3);
sam5.add(v4);
sam5.add(v5);
sam5.add(v6);
sam5.add(v7);
sam5.add(v8);
sam5.add(v9);
sam5.add(v10);
sam5.add(v11);
sam5.add(v12);
sam5.add(v13);
sam5.add(v14);
sam5.add(v15);
sam5.add(v16);
sam5.add(v17);
sam5.add(v18);
sam5.add(v19);
sam5.add(v20);
// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Traning data set2: descending ">
Sample sam6 = new Sample();
Tag tt6 = new Tag("label", "World", 0, 20);
sam6.addTag(tt6);
sam6.add(v20);
sam6.add(v19);
sam6.add(v18);
sam6.add(v17);
sam6.add(v16);
sam6.add(v15);
sam6.add(v14);
sam6.add(v13);
sam6.add(v12);
sam6.add(v11);
sam6.add(v10);
sam6.add(v9);
sam6.add(v8);
sam6.add(v7);
sam6.add(v6);
sam6.add(v5);
sam6.add(v4);
sam6.add(v3);
sam6.add(v2);
sam6.add(v1);

Sample sam7 = new Sample();
Tag tt7 = new Tag("label", "World", 0, 20);
sam7.addTag(tt7);
sam7.add(v20);
sam7.add(v19);
sam7.add(v18);
sam7.add(v17);
sam7.add(v16);
sam7.add(v15);
sam7.add(v14);
sam7.add(v13);
sam7.add(v12);
sam7.add(v11);
sam7.add(v10);
sam7.add(v9);
sam7.add(v8);
sam7.add(v7);
sam7.add(v6);
sam7.add(v5);
sam7.add(v4);
sam7.add(v3);
sam7.add(v2);
sam7.add(v1);

Sample sam8 = new Sample();
Tag tt8 = new Tag("label", "World", 0, 20);
sam8.addTag(tt8);
sam8.add(v20);
sam8.add(v19);
sam8.add(v18);
sam8.add(v17);
sam8.add(v16);
sam8.add(v15);
sam8.add(v14);
sam8.add(v13);
sam8.add(v12);
sam8.add(v11);
sam8.add(v10);
sam8.add(v9);
sam8.add(v8);
sam8.add(v7);
sam8.add(v6);
sam8.add(v5);
sam8.add(v4);
sam8.add(v3);
sam8.add(v2);
sam8.add(v1);

Sample sam9 = new Sample();
Tag tt9 = new Tag("label", "World", 0, 20);
sam9.addTag(tt9);
sam9.add(v20);
sam9.add(v19);
sam9.add(v18);
sam9.add(v17);
sam9.add(v16);
sam9.add(v15);
sam9.add(v14);
sam9.add(v13);
sam9.add(v12);
sam9.add(v11);
sam9.add(v10);
sam9.add(v9);
sam9.add(v8);
sam9.add(v7);
sam9.add(v6);
sam9.add(v5);
sam9.add(v4);
sam9.add(v3);
sam9.add(v2);
sam9.add(v1);

Sample sam10 = new Sample();
Tag tt10 = new Tag("label", "World", 0, 20);
sam10.addTag(tt10);
sam10.add(v20);
sam10.add(v19);
sam10.add(v18);
sam10.add(v17);
sam10.add(v16);
sam10.add(v15);
sam10.add(v14);
sam10.add(v13);
sam10.add(v12);
sam10.add(v11);
sam10.add(v10);
sam10.add(v9);
sam10.add(v8);
sam10.add(v7);
sam10.add(v6);
sam10.add(v5);
sam10.add(v4);
sam10.add(v3);
sam10.add(v2);
sam10.add(v1);
// </editor-fold>

myLib.addSample(sam1);
myLib.addSample(sam2);
myLib.addSample(sam3);
myLib.addSample(sam4);
myLib.addSample(sam5);
myLib.addSample(sam6);
myLib.addSample(sam7);
myLib.addSample(sam8);
myLib.addSample(sam9);
myLib.addSample(sam10);
// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Save sample files and start training">
try {
myLib.save(myLib.getPath());
String trainresults = htk.train(myLib, myOpt);
System.out.println(trainresults);
} catch (Exception ex) {
System.out.println(ex);
}
//</editor-fold>

// <editor-fold defaultstate="collapsed" desc="Load samples from disk">
Library lib = null;
HTKOptions opt = null;
try {
String libPath = "C:\\temp\\lib.xml";
lib = Library.load(libPath);
lib.setPath(libPath);

opt = HTKOptions.load("C:\\temp\\opt.xml");
opt.setPRJ_DIR(".");
} catch (Exception ex) {
ex.printStackTrace();
}

//</editor-fold>

// <editor-fold defaultstate="collapsed" desc="Start recognizing">
HTK htk2 = new HTK(opt);

// <editor-fold defaultstate="collapsed" desc="Initialize test data">
Sample testData = new Sample();
testData.add(v2);
testData.add(v3);
testData.add(v4);
testData.add(v5);
testData.add(v5);
testData.add(v6);
testData.add(v7);
testData.add(v8);
testData.add(v8);
testData.add(v8);
testData.add(v8);
testData.add(v9);
testData.add(v10);
testData.add(v11);
testData.add(v12);
testData.add(v12);
testData.add(v12);
testData.add(v12);
testData.add(v13);
testData.add(v14);
testData.add(v15);
testData.add(v16);
//</editor-fold>

Result result = htk2.recognize(testData);
System.out.println(result.getGestureResult());
//</editor-fold>
}
}

没有评论: