nếu bạn đang sử dụng opencv, tôi đề nghị bạn sử dụng xây dựng trong thực hiện svm, đào tạo/tiết kiệm/tải trong python là như sau. c + + có api tương ứng để làm tương tự trong khoảng cùng một số lượng mã. nó cũng có 'train_auto' để tìm các thông số tốt nhất
import numpy as np
import cv2
samples = np.array(np.random.random((4,5)), dtype = np.float32)
labels = np.array(np.random.randint(0,2,4), dtype = np.float32)
svm = cv2.SVM()
svmparams = dict(kernel_type = cv2.SVM_LINEAR,
svm_type = cv2.SVM_C_SVC,
C = 1)
svm.train(samples, labels, params = svmparams)
testresult = np.float32([svm.predict(s) for s in samples])
print samples
print labels
print testresult
svm.save('model.xml')
loaded=svm.load('model.xml')
và đầu ra
#print samples
[[ 0.24686454 0.07454421 0.90043277 0.37529686 0.34437731]
[ 0.41088378 0.79261768 0.46119651 0.50203663 0.64999193]
[ 0.11879266 0.6869216 0.4808321 0.6477254 0.16334397]
[ 0.02145131 0.51843268 0.74307418 0.90667248 0.07163303]]
#print labels
[ 0. 1. 1. 0.]
#print testresult
[ 0. 1. 1. 0.]
vì vậy bạn cung cấp n dẹt mô hình hình dạng như mẫu và n nhãn và bạn tốt để đi. bạn có lẽ thậm chí không cần phần asm, chỉ cần áp dụng một số bộ lọc nhạy cảm với định hướng như sobel hoặc gabor và nối các ma trận và san bằng chúng sau đó cho chúng ăn trực tiếp vào svm. bạn có thể có thể đạt được độ chính xác 70-90%.
khi người nào đó nói cnn là một thay thế cho svms.here một số liên kết triển khai lenet5. cho đến nay, tôi thấy svms đơn giản hơn nhiều để bắt đầu.
https://github.com/lisa-lab/DeepLearningTutorials/
http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi
-edit-
mốc chỉ là n (x, y) vector phải không? vậy tại sao bạn không thử đặt chúng vào một mảng có kích thước 2n và chỉ đơn giản là đưa chúng trực tiếp vào mã ở trên?
ví dụ, 3 mẫu đào tạo 4 điểm đất (0,0),(10,10),(50,50),(70,70)
samples = [[0,0,10,10,50,50,70,70],
[0,0,10,10,50,50,70,70],
[0,0,10,10,50,50,70,70]]
labels=[0.,1.,2.]
0 = hạnh phúc
1 = giận
2 = ghê tởm
Mạng thần kinh sâu luôn tốt hơn SVM. – usamec
do thời gian tôi phải làm việc với SVM, bất kỳ trợ giúp nào !! – TIBOU
@usamec, tuyên bố của bạn không phải lúc nào cũng đúng. Phụ thuộc vào định nghĩa "tốt hơn" để bắt đầu. – Bull