def create_svm(svm_options): svm = cv2.ml.SVM_create() svm.setType(svm_options.svm_type) svm.setKernel(svm_options.kernel_type) svm.setDegree(svm_options.degree) svm.setGamma(svm_options.gamma) svm.setC(svm_options.C) svm.setP(svm_options.e) svm.setTermCriteria((cv2.TERM_CRITERIA_COUNT + cv2.TERM_CRITERIA_EPS, svm_options.max_iter, 1e-09)) return svm
def __init__(self): svm = cv2.ml.SVM_create() svm.setType(cv2.ml.SVM_C_SVC) svm.setKernel(cv2.ml.SVM_LINEAR) # (cv2.ml.SVM_RBF) # svm.setDegree(0.0) svm.setGamma(5.383) # svm.setCoef0(0.0) svm.setC(2.67) # svm.setNu(0.0) # svm.setP(0.0) # svm.setClassWeights(None) super().__init__(svm)
def create_svm(svm_options): """ Create an instance of SVM with svm_options. :param svm_options: SVM options. :return: An instance of OpenCV SVM model. """ svm = cv2.ml.SVM_create() svm.setType(svm_options.svm_type) svm.setKernel(svm_options.kernel_type) svm.setDegree(svm_options.degree) svm.setGamma(svm_options.gamma) svm.setC(svm_options.C) svm.setP(svm_options.e) svm.setTermCriteria((cv2.TERM_CRITERIA_COUNT + cv2.TERM_CRITERIA_EPS, svm_options.max_iter, 1e-09)) return svm
def main(): hog = cv2.HOGDescriptor() #GET IMAGES AND THEIR LABEL print("Loading pictures...") train_img, train_labels = get_images("train", "train_labels.csv") test_img, test_labels = get_images("test", "test_labels.csv") print("Loaded...") #RESIZE print("Resizing images...") train_img = resize_images(train_img) test_img = resize_images(test_img) print("Resized...") #MAP LABEL TO INT train_labels = list(map(strToNumberLabels, train_labels)) test_labels = list(map(strToNumberLabels, test_labels)) #EXTRACT FEATURES print("Before hog extraction") features_train = hog_compute(hog, train_img) features_test = hog_compute(hog, test_img) print("passed hog extraction") # trainingDataMat = np.array(features_train) labelsMat = np.array(train_labels) svm = cv2.ml.SVM_create() svm.setType(cv2.ml.SVM_C_SVC) svm.setKernel(cv2.ml.SVM_LINEAR) svm.setTermCriteria((cv2.TERM_CRITERIA_COUNT, 100, 1.e-10)) svm.train(trainingDataMat, cv2.ml.ROW_SAMPLE, labelsMat) sample_data = np.array(features_test, np.float32) svm.setC(100) #svm.setGamma(0.1) print("Training model...") svm.train(trainingDataMat, cv2.ml.ROW_SAMPLE, labelsMat) response = svm.predict(sample_data) final = [] for y in response[1]: final.append(int(y[0])) countAccuracy(final, test_labels)
def OpenCvSVM(X,y): X_train,X_test,y_train,y_test=train_test_split(X, y, test_size=0.2,random_state=1) X_train=np.array(X_train,dtype=np.float32) X_test=np.array(X_test,dtype=np.float32) y_test=np.array(y_test,dtype=np.int32) sc=StandardScaler() sc.fit(X_train) X_train=sc.transform(X_train) X_test=sc.transform(X_test) svm = cv2.ml.SVM_create() svm.setType(cv2.ml.SVM_C_SVC) svm.setKernel(cv2.ml.SVM_LINEAR) svm.train(X_train, cv2.ml.ROW_SAMPLE, y_train) y_predict = svm.predict(X_test) y_pred=np.zeros(len(y_predict[1])) for i in range(len(y_predict[1])): y_pred[i]=y_predict[1][i][0] return y_pred,y_test
if 'sad' in j: L.append(1) if 'angry' in j: L.append(2) if 'surprise' in j: L.append(3) if 'natural' in j: L.append(4) if 'fear' in j: L.append(5) if 'disgust' in j: L.append(6) h = hog.compute(resized_image) Big.append(h) svm = cv2.ml.SVM_create() svm.setType(cv2.ml.SVM_C_SVC) svm.setKernel(cv2.ml.SVM_LINEAR) BN = np.array(Big, np.float32) LN = np.array(L, np.int) print(BN.shape) print(LN.shape) svm.train(BN, cv2.ml.ROW_SAMPLE, LN) svm.save('emotions.dat') #filename = 'SVModel.sav' #pickle.dump(svm, open(filename, 'wb'))
listlen = len(filelist) print((len(filelist))) trainfile = [] imglist = [] label = [] for i in range(listlen): trainfile.append(filelist[i]) imgtmp = cv2.imread(filepath + filelist[i]) imgtmp = imgtmp.reshape(1, -1) #print(imgtmp) imglist.append((imgtmp)) #imglist = np.array(imglist) label.append(1) #print(trainfile) return imglist, label trainlist, trainlabel = GetImglist(trainpospath) #print((trainlist)) print(np.array(trainlabel).shape) ''' svm = cv2.ml.SVM_create() svm.setKernel(cv2.ml.SVM_LINEAR) svm.train(np.array(trainlist), cv2.ml.ROW_SAMPLE, np.array(trainlabel)) ''' ##开始训练 clf = svm.SVC() ##默认参数:kernel='rbf' clf.fit(trainlist, trainlabel)
samples.append(hist) labels.append(0) test = [] play = [1, 2, 3] test.append(play) print(type(hist)) # print(hist.type()) # samples = np.array([np.float32(j) for j in samples]) samples = np.float32(test) labels = np.array(labels) svm = cv2.ml.SVM_create() svm.setType(cv2.ml.SVM_C_SVC) svm.setKernel(cv2.ml.SVM_RBF) svm.setGamma(5.383) svm.setC(2.67) svm.train(samples, cv2.ml.ROW_SAMPLE, labels) # print(samples) # [l.tolist() for l in samples] # print(samples) # samples = np.float32(samples) # # print("samples", samples) # [print("labels", labels)] # positive_path = "archive/train/ben_afflek" # # img = cv2.imread(positive_path)
def create_svm(): svm = cv2.ml.SVM_create() svm.setType(cv2.ml.SVM_C_SVC) svm.setKernel(cv2.ml.SVM_LINEAR) svm.setTermCriteria((cv2.TERM_CRITERIA_MAX_ITER, 100, 1e-6)) return svm