使用用于OpenCV / SimpleCV的Python2.7绑定,我编写了一些代码,在三个类上训练支持向量机分类器。
我使用HueHistogramFeatureExtractor()、EdgeHistogramFeatureExtractor()和HaarLikeFeatureExtractor()提取函数来训练。
我将所有这些提取器放入我的SVM分类器中,如下所示:
hhfe = HueHistogramFeatureExtractor(10)
ehfe = EdgeHistogramFeatureExtractor(10)
haarfe = HaarLikeFeatureExtractor(fname="haar.txt")
extractors = [hhfe,ehfe,haarfe]
svm = SVMClassifier(extractors)然后,我使用我的数据集和类进行训练。
trainPaths = ['./data/train/bike','./data/train/plane','../data/train/car']
classes = ['bike','plane','car']
print svm.train(trainPaths,classes,verbose=False) 所有这些都是可行的,而且相当准确。但是每次我想重新运行代码时,我都要重新训练分类器。
当我运行这段代码(请记住:详细关闭.)时,我得到的输出如下:
[100.0, 0.0, [[17.0, 0.0, 0.0], [0.0, 17.0, 0.0], [0.0, 0.0, 0.0]]]
feature5x1_11 (<17.000, 17.000, 0.000>)
: <=2194135.000 --> plane (<0.000, 15.000, 0.000>)
: >2194135.000
Angle_feature5x3_8 (<17.000, 2.000, 0.000>)
: <=2937533.000 --> bike (<14.000, 0.000, 0.000>)
: >2937533.000 --> bike (<3.000, 2.000, 0.000>)
[94.11764705882352, 5.88235294117647, [[17.0, 0.0, 0.0], [2.0, 15.0, 0.0], [0.0, 0.0, 0.0]]]如何保存我训练过的分类器,以便以后使用它?
发布于 2015-06-17 13:30:32
我在这里可能错了,因为我知道C++,而不是looking at this,但是looking at this应该是这样的:
拯救:
svm.train(trainPaths,classes,verbose=False)
svm.save("your_svm.xml")以后再使用:
svm.load("your_svm.xml")
svm.predict(...)https://stackoverflow.com/questions/30885739
复制相似问题