comparison python/ml.py @ 807:52aa03260f03 opencv3

reversed all code to OpenCV 2.4.13
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 10 Jun 2016 15:26:19 -0400
parents 180b6b0231c0
children 5dc7a507353e
comparison
equal deleted inserted replaced
806:c6f497291fd8 807:52aa03260f03
18 ##################### 18 #####################
19 # OpenCV ML models 19 # OpenCV ML models
20 ##################### 20 #####################
21 21
22 class StatModel(object): 22 class StatModel(object):
23 '''Abstract class for loading/saving model 23 '''Abstract class for loading/saving model'''
24
25 Issues with OpenCV, does not seem to work'''
26 def load(self, filename): 24 def load(self, filename):
27 if path.exists(filename): 25 if path.exists(filename):
28 self.model.load(filename) 26 self.model.load(filename)
29 else: 27 else:
30 print('Provided filename {} does not exist: model not loaded!'.format(filename)) 28 print('Provided filename {} does not exist: model not loaded!'.format(filename))
32 def save(self, filename): 30 def save(self, filename):
33 self.model.save(filename) 31 self.model.save(filename)
34 32
35 class SVM(StatModel): 33 class SVM(StatModel):
36 '''wrapper for OpenCV SimpleVectorMachine algorithm''' 34 '''wrapper for OpenCV SimpleVectorMachine algorithm'''
37 def __init__(self, svmType = cv2.ml.SVM_C_SVC, kernelType = cv2.ml.SVM_RBF, degree = 0, gamma = 1, coef0 = 0, Cvalue = 1, nu = 0, p = 0): 35 def __init__(self, svmType = cv2.SVM_C_SVC, kernelType = cv2.SVM_RBF, degree = 0, gamma = 1, coef0 = 0, Cvalue = 1, nu = 0, p = 0):
38 self.model = cv2.ml.SVM_create() 36 self.model = cv2.SVM()
39 self.model.setType(svmType) 37 self.params = dict(svm_type = svmType, kernel_type = kernelType, degree = degree, gamma = gamma, coef0 = coef0, Cvalue = Cvalue, nu = nu, p = p)
40 self.model.setKernel(kernelType) 38 # OpenCV3
41 self.model.setDegree(degree) 39 # self.model = cv2.SVM()
42 self.model.setGamma(gamma) 40 # self.model.setType(svmType)
43 self.model.setCoef0(coef0) 41 # self.model.setKernel(kernelType)
44 self.model.setC(Cvalue) 42 # self.model.setDegree(degree)
45 self.model.setNu(nu) 43 # self.model.setGamma(gamma)
46 self.model.setP(p) 44 # self.model.setCoef0(coef0)
47 45 # self.model.setC(Cvalue)
48 def load(self, filename): 46 # self.model.setNu(nu)
49 if path.exists(filename): 47 # self.model.setP(p)
50 cv2.ml.SVM_load(filename) 48
51 else: 49 def train(self, samples, responses):
52 print('Provided filename {} does not exist: model not loaded!'.format(filename)) 50 self.model.train(samples, responses, params = self.params)
53
54 def train(self, samples, layout, responses):
55 self.model.train(samples, layout, responses)
56 51
57 def predict(self, hog): 52 def predict(self, hog):
58 return self.model.predict(hog) 53 return self.model.predict(hog)
59 54
60 55