Я делаю проект с Kinect в C #.
Я извлекаю функции лица и записываю их в файлы ".arff" (некоторые из них в каталог под названием "training", а другие вкаталог под названием "тест").Каждый из файлов .arff имеет рамки для каждой функции.Например, "lipLeftCorner.arff", "lipRightCorner.arff" ...
Я объединяю все файлы .arff и получаю файл "final.arff".
Затем с помощьюклассификатор (например, Дерево решений J48), я читаю файл "final.arff" и обучаю классификатор.Он дает вывод правильных чисел из соответствующего размера обучения.
Мой вопрос: как мне сравнить эту модель обучения с Kinect в реальном времени?
У меня есть код для Kinectсравнить с базой данных Visual Gesture Builder (файлы ".gbd"), но как я могу сравнить с этой моделью классификатора?Могу ли я сериализовать эту модель в файл «.gbd» или другой файл, к которому у Kinect есть доступ?
Спасибо за ваше время.
public static void ClassifyDecisionTree()
{
string result = "";
insts = MergeInstances();
try
{
insts.setClassIndex(insts.numAttributes() - 1);
weka.classifiers.Classifier cl = new weka.classifiers.trees.J48();
// Randomize the order of the instances in the dataset
weka.filters.Filter myRandom = new weka.filters.unsupervised.instance.Randomize();
myRandom.setInputFormat(insts);
insts = weka.filters.Filter.useFilter(insts, myRandom);
int trainSize = insts.numInstances() * percentSplit / 100;
int testSize = insts.numInstances() - trainSize;
Instances train = new Instances(insts, 0, trainSize);
cl.buildClassifier(train);
int numCorrect = 0;
for (int i = trainSize; i < insts.numInstances(); i++)
{
Instance currentInst = insts.instance(i);
double predictedClass = cl.classifyInstance(currentInst);
if (predictedClass == insts.instance(i).classValue())
numCorrect++;
}
result += numCorrect + " out of " + testSize + " correct (" + (double)numCorrect / (double)testSize * 100.0 + "%) ";
Console.WriteLine("Decision Tree: " + result);
// Serialize model
//java.io.ObjectOutputStream oos = new java.io.ObjectOutputStream(new java.io.FileOutputStream(pathModels + file.Name.Substring(0, file.Name.Length - 5) + ".gbd")); // ???
// oos.writeObject(cl);
//oos.flush();
//oos.close();
}
catch (Exception)
{
Console.WriteLine("Error: Decision Tree Classifier.");
}
}