我正在实施面部表情识别,并使用SVM对给定的表达进行分类。 当我训练时,我使用这个命令行
svm.train(myFeatureVector,myLabels,Mat(),Mat(), myParameters);
svm.save("myClassifier.yml");
稍后我会预测使用
response = svm.predict(incomingFeatureVector);
但是当我想要不止一次训练(退出程序并重新开始)时,它似乎覆盖了我以前的svm文件。有什么方法我可以读取以前的svm文件并添加更多的数据(然后重新保存等)?我查了on this openCV documentation但没有发现任何东西。但是,当我读到on this page;有一个名为CvSVM :: read的方法。我不知道它是做什么/如何实现它。
希望有人能帮助我:(
答案 0 :(得分:1)
你要做的是增量学习,但不幸的是支持向量机是一种批处理算法,因此如果你想要添加更多数据,你必须再次重新训练整套。
有一些在线学习替代品,比如Pegasos SVM,但我不知道在OpenCV上实现了什么