Python OpenCV SVM 分类器持久化与预测
要持久化训练好的 SVM 分类器,可以使用 OpenCV 中的 cv2.ml.SVM.save() 方法将其保存到文件中。可以像下面这样进行:
svm = cv2.ml.SVM_create()
svm.train(samples, cv2.ml.ROW_SAMPLE, labels)
svm.save('svm.xml')
这将把训练好的 SVM 分类器保存到名为 'svm.xml' 的文件中。
要使用这个分类器进行预测,可以使用 cv2.ml.SVM_load() 方法从文件中加载它,然后使用它来预测其他图像的标签。可以像下面这样进行:
svm = cv2.ml.SVM_load('svm.xml')
test_img = cv2.imread('test.jpg')
test_img = cv2.resize(test_img, (64, 64))
test_img = hog.compute(test_img)
test_img = np.transpose(test_img)
result = svm.predict(test_img)
print(result[1][0])
这里,我们首先使用 cv2.ml.SVM_load() 方法从文件中加载 SVM 分类器,然后读取要预测的图像并对其进行必要的预处理(例如,使用 HOG 特征提取器)。最后,我们使用分类器的 predict() 方法对图像进行分类,并打印出结果。
请注意,这里的 'test.jpg' 文件应该是与训练样本类似的图像,以便分类器能够正确地对其进行分类。
原文地址: https://www.cveoy.top/t/topic/ovPW 著作权归作者所有。请勿转载和采集!