Mercurial > hg > nsaunier > traffic-intelligence
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 |
