Commit f20e20ce929a607605431705dfd3959802fbd1cb

Authored by Chunk
1 parent 5ec38adb

staged.

.idea/ImageR.iml
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <module type="PYTHON_MODULE" version="4"> 2 <module type="PYTHON_MODULE" version="4">
3 <component name="NewModuleRootManager"> 3 <component name="NewModuleRootManager">
4 <content url="file://$MODULE_DIR$" /> 4 <content url="file://$MODULE_DIR$" />
5 - <orderEntry type="jdk" jdkName="Python 2.7.8 virtualenv at ~/.virtualenvs/env1" jdkType="Python SDK" /> 5 + <orderEntry type="jdk" jdkName="Python 2.7.6 virtualenv at ~/.virtualenvs/env0" jdkType="Python SDK" />
6 <orderEntry type="sourceFolder" forTests="false" /> 6 <orderEntry type="sourceFolder" forTests="false" />
7 </component> 7 </component>
8 </module> 8 </module>
9 \ No newline at end of file 9 \ No newline at end of file
common.pyc
No preview for this file type
mdata/CV.pyc
No preview for this file type
mdata/MSR.pyc
No preview for this file type
mdata/__init__.pyc
No preview for this file type
mfeat/HOG.pyc
No preview for this file type
mfeat/IntraBlockDiff.pyc
No preview for this file type
mfeat/__init__.pyc
No preview for this file type
mjpeg/__init__.pyc
No preview for this file type
mjpeg/base.pyc
No preview for this file type
mjpeg/dct.pyc
No preview for this file type
@@ -8,6 +8,7 @@ chunkplus@gmail.com @@ -8,6 +8,7 @@ chunkplus@gmail.com
8 from mfeat import * 8 from mfeat import *
9 from mmodel import * 9 from mmodel import *
10 from svmutil import * 10 from svmutil import *
  11 +from mspark import SC
11 12
12 from common import * 13 from common import *
13 import numpy as np 14 import numpy as np
@@ -25,10 +26,13 @@ dict_featbuf = {} @@ -25,10 +26,13 @@ dict_featbuf = {}
25 26
26 27
27 class ModelSVM(ModelBase): 28 class ModelSVM(ModelBase):
28 - def __init__(self): 29 + def __init__(self, toolset='sklearn'):
29 ModelBase.__init__(self) 30 ModelBase.__init__(self)
  31 + self.toolset = toolset
  32 + self.sparker = None
30 33
31 - def _train_lib(self, X, Y): 34 +
  35 + def _train_libscm(self, X, Y):
32 X, Y = list(X), list(Y) 36 X, Y = list(X), list(Y)
33 37
34 prob = svm_problem(Y, X) 38 prob = svm_problem(Y, X)
@@ -41,7 +45,7 @@ class ModelSVM(ModelBase): @@ -41,7 +45,7 @@ class ModelSVM(ModelBase):
41 45
42 return m 46 return m
43 47
44 - def _predict_lib(self, feat, model=None): 48 + def _predict_libsvm(self, feat, model=None):
45 if model is None: 49 if model is None:
46 if self.model != None: 50 if self.model != None:
47 model = self.model 51 model = self.model
@@ -54,7 +58,7 @@ class ModelSVM(ModelBase): @@ -54,7 +58,7 @@ class ModelSVM(ModelBase):
54 return label 58 return label
55 59
56 60
57 - def _test_lib(self, X, Y, model=None): 61 + def _test_libsvm(self, X, Y, model=None):
58 if model is None: 62 if model is None:
59 if self.model != None: 63 if self.model != None:
60 model = self.model 64 model = self.model
@@ -67,7 +71,7 @@ class ModelSVM(ModelBase): @@ -67,7 +71,7 @@ class ModelSVM(ModelBase):
67 71
68 return p_acc 72 return p_acc
69 73
70 - def _train_sk(self, X, Y): 74 + def _train_sklearn(self, X, Y):
71 lin_clf = svm.LinearSVC() 75 lin_clf = svm.LinearSVC()
72 lin_clf.fit(X, Y) 76 lin_clf.fit(X, Y)
73 with open('res/svm_sk.model', 'wb') as modelfile: 77 with open('res/svm_sk.model', 'wb') as modelfile:
@@ -78,7 +82,7 @@ class ModelSVM(ModelBase): @@ -78,7 +82,7 @@ class ModelSVM(ModelBase):
78 return lin_clf 82 return lin_clf
79 83
80 84
81 - def _predict_sk(self, feat, model=None): 85 + def _predict_sklearn(self, feat, model=None):
82 """N.B. sklearn.svm.base.predict : 86 """N.B. sklearn.svm.base.predict :
83 Perform classification on samples in X. 87 Perform classification on samples in X.
84 Parameters 88 Parameters
@@ -99,7 +103,7 @@ class ModelSVM(ModelBase): @@ -99,7 +103,7 @@ class ModelSVM(ModelBase):
99 103
100 return model.predict(feat) 104 return model.predict(feat)
101 105
102 - def _test_sk(self, X, Y, model=None): 106 + def _test_sklearn(self, X, Y, model=None):
103 if model is None: 107 if model is None:
104 if self.model != None: 108 if self.model != None:
105 model = self.model 109 model = self.model
@@ -107,12 +111,12 @@ class ModelSVM(ModelBase): @@ -107,12 +111,12 @@ class ModelSVM(ModelBase):
107 with open('res/svm_sk.model', 'rb') as modelfile: 111 with open('res/svm_sk.model', 'rb') as modelfile:
108 model = pickle.load(modelfile) 112 model = pickle.load(modelfile)
109 113
110 - result_Y = np.array(self._predict_sk(X, model)) 114 + result_Y = np.array(self._predict_sklearn(X, model))
111 115
112 return np.mean(Y == result_Y) 116 return np.mean(Y == result_Y)
113 117
114 118
115 - def _train_cv(self, X, Y): 119 + def _train_opencv(self, X, Y):
116 svm_params = dict(kernel_type=cv2.SVM_LINEAR, 120 svm_params = dict(kernel_type=cv2.SVM_LINEAR,
117 svm_type=cv2.SVM_C_SVC, 121 svm_type=cv2.SVM_C_SVC,
118 C=2.67, gamma=5.383) 122 C=2.67, gamma=5.383)
@@ -128,7 +132,7 @@ class ModelSVM(ModelBase): @@ -128,7 +132,7 @@ class ModelSVM(ModelBase):
128 return svm 132 return svm
129 133
130 134
131 - def _predict_cv(self, feat, model=None): 135 + def _predict_opencv(self, feat, model=None):
132 if model is None: 136 if model is None:
133 if self.model != None: 137 if self.model != None:
134 model = self.model 138 model = self.model
@@ -140,7 +144,7 @@ class ModelSVM(ModelBase): @@ -140,7 +144,7 @@ class ModelSVM(ModelBase):
140 return model.predict(feat) 144 return model.predict(feat)
141 145
142 146
143 - def _test_cv(self, X, Y, model=None): 147 + def _test_opencv(self, X, Y, model=None):
144 if model is None: 148 if model is None:
145 if self.model != None: 149 if self.model != None:
146 model = self.model 150 model = self.model
@@ -156,14 +160,43 @@ class ModelSVM(ModelBase): @@ -156,14 +160,43 @@ class ModelSVM(ModelBase):
156 return np.mean(Y == result_Y) 160 return np.mean(Y == result_Y)
157 161
158 162
  163 + def _train_spark(self, X, Y):
  164 + if self.sparker == None:
  165 + self.sparker = SC.Sparker(host='HPC-server', appname='ImageCV', master='spark://HPC-server:7077')
  166 +
  167 + self.model = self.sparker.train_svm(X, Y)
  168 + return svm
  169 +
  170 + def _predict_spark(self, feat, model=None):
  171 + return self.sparker.predict_svm(feat, model)
  172 +
  173 + def _test_spark(self, X, Y, model=None):
  174 + return self.sparker.test_svm(X, Y, model)
  175 +
  176 +
159 def train(self, X, Y): 177 def train(self, X, Y):
160 - return self._train_sk(X, Y) 178 + try:
  179 + return locals()["self._train_" + self.toolset](X, Y)
  180 + except Exception as expt:
  181 + print "Exception when training!"
  182 + raise
161 183
162 def predict(self, feat, model=None): 184 def predict(self, feat, model=None):
163 - return self._predict_sk(feat, model) 185 +
  186 + try:
  187 + return locals()["self._predict_" + self.toolset](X, Y)
  188 + except Exception as expt:
  189 + print "Exception when predicting!"
  190 + raise
  191 +
164 192
165 def test(self, X, Y, model=None): 193 def test(self, X, Y, model=None):
166 - return self._test_sk(X, Y, model) 194 +
  195 + try:
  196 + return locals()["self._test_" + self.toolset](X, Y)
  197 + except Exception as expt:
  198 + print "Exception when predicting!"
  199 + raise
167 200
168 201
169 202
mmodel/SVM.pyc
No preview for this file type
mmodel/__init__.pyc
No preview for this file type
mmodel/libsvm.pyc
No preview for this file type
mmodel/svmutil.pyc
No preview for this file type
@@ -132,6 +132,9 @@ class Sparker(object): @@ -132,6 +132,9 @@ class Sparker(object):
132 132
133 return model.predict(x) 133 return model.predict(x)
134 134
  135 + def test_svm(self, X, Y, model=None):
  136 + pass
  137 +
135 138
136 139
137 140
mspark/SC.pyc
No preview for this file type
mspark/__init__.pyc
No preview for this file type
mspark/dependencies.pyc
No preview for this file type
msteg/__init__.pyc
No preview for this file type
msteg/steganalysis/MPB.pyc
No preview for this file type
msteg/steganalysis/__init__.pyc
No preview for this file type
res/trash 0 → 100644
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
  1 + def train(self, X, Y):
  2 + try:
  3 +
  4 + if self.toolset == 'sklearn':
  5 + return self._train_sklearn(X, Y)
  6 + elif self.toolset == 'opencv':
  7 + return self._train_opencv(X, Y)
  8 + elif self.toolset == 'libsvm':
  9 + return self._train_libscm(X, Y)
  10 + elif self.toolset == 'spark':
  11 + return self._train_spark(X, Y)
  12 + else:
  13 + raise Exception("Unknown toolset!")
  14 +
  15 + def predict(self, feat, model=None):
  16 +
  17 + if self.toolset == 'sklearn':
  18 + return self._predict_sklearn(feat, model)
  19 + elif self.toolset == 'opencv':
  20 + return self._predict_opencv(feat, model)
  21 + elif self.toolset == 'libsvm':
  22 + return self._predict_libsvm(feat, model)
  23 + elif self.toolset == 'libsvm':
  24 + return self._predict_spark(feat, model)
  25 + else:
  26 + raise Exception("Unknown toolset!")
  27 +
  28 +
  29 + def test(self, X, Y, model=None):
  30 +
  31 + if self.toolset == 'sklearn':
  32 + return self._test_sklearn(X, Y, model)
  33 + elif self.toolset == 'opencv':
  34 + return self._test_opencv(X, Y, model)
  35 + elif self.toolset == 'libsvm':
  36 + return self._test_libsvm(X, Y, model)
  37 + elif self.toolset == 'libsvm':
  38 + return self._test_spark(X, Y, model)
  39 + else:
  40 + raise Exception("Unknown toolset!")
0 \ No newline at end of file 41 \ No newline at end of file