From f20e20ce929a607605431705dfd3959802fbd1cb Mon Sep 17 00:00:00 2001 From: Chunk Date: Mon, 9 Mar 2015 09:45:08 +0800 Subject: [PATCH] staged. --- .idea/ImageR.iml | 2 +- common.pyc | Bin 5689 -> 0 bytes mdata/CV.pyc | Bin 8910 -> 0 bytes mdata/MSR.pyc | Bin 9177 -> 0 bytes mdata/__init__.pyc | Bin 3816 -> 0 bytes mfeat/HOG.pyc | Bin 3333 -> 0 bytes mfeat/IntraBlockDiff.pyc | Bin 1164 -> 0 bytes mfeat/__init__.pyc | Bin 2113 -> 0 bytes mjpeg/__init__.pyc | Bin 14473 -> 0 bytes mjpeg/base.pyc | Bin 1791 -> 0 bytes mjpeg/dct.pyc | Bin 2478 -> 0 bytes mmodel/SVM.py | 61 +++++++++++++++++++++++++++++++++++++++++++++++-------------- mmodel/SVM.pyc | Bin 5695 -> 0 bytes mmodel/__init__.pyc | Bin 1148 -> 0 bytes mmodel/libsvm.pyc | Bin 13111 -> 0 bytes mmodel/svmutil.pyc | Bin 9622 -> 0 bytes mspark/SC.py | 3 +++ mspark/SC.pyc | Bin 5654 -> 0 bytes mspark/__init__.pyc | Bin 179 -> 0 bytes mspark/dependencies.pyc | Bin 8270 -> 0 bytes msteg/__init__.pyc | Bin 6109 -> 0 bytes msteg/steganalysis/MPB.pyc | Bin 8969 -> 0 bytes msteg/steganalysis/__init__.pyc | Bin 239 -> 0 bytes res/trash | 40 ++++++++++++++++++++++++++++++++++++++++ 24 files changed, 91 insertions(+), 15 deletions(-) create mode 100644 res/trash diff --git a/.idea/ImageR.iml b/.idea/ImageR.iml index 6d00e52..4f21c2d 100644 --- a/.idea/ImageR.iml +++ b/.idea/ImageR.iml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/common.pyc b/common.pyc index a51dcba..ddce145 100644 Binary files a/common.pyc and b/common.pyc differ diff --git a/mdata/CV.pyc b/mdata/CV.pyc index a8687f7..e2496f7 100644 Binary files a/mdata/CV.pyc and b/mdata/CV.pyc differ diff --git a/mdata/MSR.pyc b/mdata/MSR.pyc index 02939ac..4e5f7ce 100644 Binary files a/mdata/MSR.pyc and b/mdata/MSR.pyc differ diff --git a/mdata/__init__.pyc b/mdata/__init__.pyc index e8870bd..58a5796 100644 Binary files a/mdata/__init__.pyc and b/mdata/__init__.pyc differ diff --git a/mfeat/HOG.pyc b/mfeat/HOG.pyc index a416a55..d20aea1 100644 Binary files a/mfeat/HOG.pyc and b/mfeat/HOG.pyc differ diff --git a/mfeat/IntraBlockDiff.pyc b/mfeat/IntraBlockDiff.pyc index c3dc93e..217fe15 100644 Binary files a/mfeat/IntraBlockDiff.pyc and b/mfeat/IntraBlockDiff.pyc differ diff --git a/mfeat/__init__.pyc b/mfeat/__init__.pyc index b2f68a2..af5783c 100644 Binary files a/mfeat/__init__.pyc and b/mfeat/__init__.pyc differ diff --git a/mjpeg/__init__.pyc b/mjpeg/__init__.pyc index c82a9da..6e3e126 100644 Binary files a/mjpeg/__init__.pyc and b/mjpeg/__init__.pyc differ diff --git a/mjpeg/base.pyc b/mjpeg/base.pyc index 017f6b5..2d0f3b7 100644 Binary files a/mjpeg/base.pyc and b/mjpeg/base.pyc differ diff --git a/mjpeg/dct.pyc b/mjpeg/dct.pyc index b4819bc..3577d2e 100644 Binary files a/mjpeg/dct.pyc and b/mjpeg/dct.pyc differ diff --git a/mmodel/SVM.py b/mmodel/SVM.py index d93a260..7644ab7 100644 --- a/mmodel/SVM.py +++ b/mmodel/SVM.py @@ -8,6 +8,7 @@ chunkplus@gmail.com from mfeat import * from mmodel import * from svmutil import * +from mspark import SC from common import * import numpy as np @@ -25,10 +26,13 @@ dict_featbuf = {} class ModelSVM(ModelBase): - def __init__(self): + def __init__(self, toolset='sklearn'): ModelBase.__init__(self) + self.toolset = toolset + self.sparker = None - def _train_lib(self, X, Y): + + def _train_libscm(self, X, Y): X, Y = list(X), list(Y) prob = svm_problem(Y, X) @@ -41,7 +45,7 @@ class ModelSVM(ModelBase): return m - def _predict_lib(self, feat, model=None): + def _predict_libsvm(self, feat, model=None): if model is None: if self.model != None: model = self.model @@ -54,7 +58,7 @@ class ModelSVM(ModelBase): return label - def _test_lib(self, X, Y, model=None): + def _test_libsvm(self, X, Y, model=None): if model is None: if self.model != None: model = self.model @@ -67,7 +71,7 @@ class ModelSVM(ModelBase): return p_acc - def _train_sk(self, X, Y): + def _train_sklearn(self, X, Y): lin_clf = svm.LinearSVC() lin_clf.fit(X, Y) with open('res/svm_sk.model', 'wb') as modelfile: @@ -78,7 +82,7 @@ class ModelSVM(ModelBase): return lin_clf - def _predict_sk(self, feat, model=None): + def _predict_sklearn(self, feat, model=None): """N.B. sklearn.svm.base.predict : Perform classification on samples in X. Parameters @@ -99,7 +103,7 @@ class ModelSVM(ModelBase): return model.predict(feat) - def _test_sk(self, X, Y, model=None): + def _test_sklearn(self, X, Y, model=None): if model is None: if self.model != None: model = self.model @@ -107,12 +111,12 @@ class ModelSVM(ModelBase): with open('res/svm_sk.model', 'rb') as modelfile: model = pickle.load(modelfile) - result_Y = np.array(self._predict_sk(X, model)) + result_Y = np.array(self._predict_sklearn(X, model)) return np.mean(Y == result_Y) - def _train_cv(self, X, Y): + def _train_opencv(self, X, Y): svm_params = dict(kernel_type=cv2.SVM_LINEAR, svm_type=cv2.SVM_C_SVC, C=2.67, gamma=5.383) @@ -128,7 +132,7 @@ class ModelSVM(ModelBase): return svm - def _predict_cv(self, feat, model=None): + def _predict_opencv(self, feat, model=None): if model is None: if self.model != None: model = self.model @@ -140,7 +144,7 @@ class ModelSVM(ModelBase): return model.predict(feat) - def _test_cv(self, X, Y, model=None): + def _test_opencv(self, X, Y, model=None): if model is None: if self.model != None: model = self.model @@ -156,14 +160,43 @@ class ModelSVM(ModelBase): return np.mean(Y == result_Y) + def _train_spark(self, X, Y): + if self.sparker == None: + self.sparker = SC.Sparker(host='HPC-server', appname='ImageCV', master='spark://HPC-server:7077') + + self.model = self.sparker.train_svm(X, Y) + return svm + + def _predict_spark(self, feat, model=None): + return self.sparker.predict_svm(feat, model) + + def _test_spark(self, X, Y, model=None): + return self.sparker.test_svm(X, Y, model) + + def train(self, X, Y): - return self._train_sk(X, Y) + try: + return locals()["self._train_" + self.toolset](X, Y) + except Exception as expt: + print "Exception when training!" + raise def predict(self, feat, model=None): - return self._predict_sk(feat, model) + + try: + return locals()["self._predict_" + self.toolset](X, Y) + except Exception as expt: + print "Exception when predicting!" + raise + def test(self, X, Y, model=None): - return self._test_sk(X, Y, model) + + try: + return locals()["self._test_" + self.toolset](X, Y) + except Exception as expt: + print "Exception when predicting!" + raise diff --git a/mmodel/SVM.pyc b/mmodel/SVM.pyc index 4e6fcb0..09ab895 100644 Binary files a/mmodel/SVM.pyc and b/mmodel/SVM.pyc differ diff --git a/mmodel/__init__.pyc b/mmodel/__init__.pyc index c872931..ee4b592 100644 Binary files a/mmodel/__init__.pyc and b/mmodel/__init__.pyc differ diff --git a/mmodel/libsvm.pyc b/mmodel/libsvm.pyc index 4e05d13..b505dd2 100644 Binary files a/mmodel/libsvm.pyc and b/mmodel/libsvm.pyc differ diff --git a/mmodel/svmutil.pyc b/mmodel/svmutil.pyc index 2e850e9..89d932d 100644 Binary files a/mmodel/svmutil.pyc and b/mmodel/svmutil.pyc differ diff --git a/mspark/SC.py b/mspark/SC.py index f3d1d93..9628217 100644 --- a/mspark/SC.py +++ b/mspark/SC.py @@ -132,6 +132,9 @@ class Sparker(object): return model.predict(x) + def test_svm(self, X, Y, model=None): + pass + diff --git a/mspark/SC.pyc b/mspark/SC.pyc index 1d589ae..b7685e2 100644 Binary files a/mspark/SC.pyc and b/mspark/SC.pyc differ diff --git a/mspark/__init__.pyc b/mspark/__init__.pyc index 05fb5ec..e89b6dc 100644 Binary files a/mspark/__init__.pyc and b/mspark/__init__.pyc differ diff --git a/mspark/dependencies.pyc b/mspark/dependencies.pyc index 16113c3..67200bd 100644 Binary files a/mspark/dependencies.pyc and b/mspark/dependencies.pyc differ diff --git a/msteg/__init__.pyc b/msteg/__init__.pyc index a76dbb9..7489cad 100644 Binary files a/msteg/__init__.pyc and b/msteg/__init__.pyc differ diff --git a/msteg/steganalysis/MPB.pyc b/msteg/steganalysis/MPB.pyc index 6de0579..c14b025 100644 Binary files a/msteg/steganalysis/MPB.pyc and b/msteg/steganalysis/MPB.pyc differ diff --git a/msteg/steganalysis/__init__.pyc b/msteg/steganalysis/__init__.pyc index 8258c77..e80dc27 100644 Binary files a/msteg/steganalysis/__init__.pyc and b/msteg/steganalysis/__init__.pyc differ diff --git a/res/trash b/res/trash new file mode 100644 index 0000000..824540e --- /dev/null +++ b/res/trash @@ -0,0 +1,40 @@ + def train(self, X, Y): + try: + + if self.toolset == 'sklearn': + return self._train_sklearn(X, Y) + elif self.toolset == 'opencv': + return self._train_opencv(X, Y) + elif self.toolset == 'libsvm': + return self._train_libscm(X, Y) + elif self.toolset == 'spark': + return self._train_spark(X, Y) + else: + raise Exception("Unknown toolset!") + + def predict(self, feat, model=None): + + if self.toolset == 'sklearn': + return self._predict_sklearn(feat, model) + elif self.toolset == 'opencv': + return self._predict_opencv(feat, model) + elif self.toolset == 'libsvm': + return self._predict_libsvm(feat, model) + elif self.toolset == 'libsvm': + return self._predict_spark(feat, model) + else: + raise Exception("Unknown toolset!") + + + def test(self, X, Y, model=None): + + if self.toolset == 'sklearn': + return self._test_sklearn(X, Y, model) + elif self.toolset == 'opencv': + return self._test_opencv(X, Y, model) + elif self.toolset == 'libsvm': + return self._test_libsvm(X, Y, model) + elif self.toolset == 'libsvm': + return self._test_spark(X, Y, model) + else: + raise Exception("Unknown toolset!") \ No newline at end of file -- libgit2 0.21.2