نقل قول:
نوشته اصلي بوسيله s.b
با سلام.
راجع به svm من مثالهایی که دیدم مختصات نقاط، گروه هرکدام از این نقاط و اینکه نوع kernel برای svm مشخص میشد ولی این آرایه دو بعدی که از SIFT بدست آمده است مختصات نقاط رو نداره...
|
به نام خدا
خب در حقیقت تفاوت های پردازش تصویر و بینایی کامپیوتر در چنین مواردی مشخص می شود.
شما نیاز ندارید به اینکه موقعیت نقاط را داشته باشید این روش مبتنی بر یادگیری است.
در واقع شما دارید نمونه هایی را به SVM می دهید که می گوید سطح مورد نظر دارای عیب است. وقتی می خواهید با SVM کار کنید باید نمونه ها را تفکیک کنید مثلا نمونه معیوب و نمونه سالم. خب پس دو ماتریس خواهید داشت ماتریس اول مربوط به نمونه های سالم و ماتریس دوم مربوط به نمونه های معیوب. که این ماتریس ها توسط یک توصیف کننده مثل SIFT تولید شده اند.
مثال:
كد:
A is a Matrix [1000, 128] of good surfaces
B is a Matrix[5000, 128] of bad surfaces
TestData = [A, B]
TestLbl=[1 for A, -1 for B]
training_instance_matrix = TestData;
training_label_vector = TestLbl;
model = svmtrain(training_label_vector, training_instance_matrix, ['-t 0']);
%==================================
testing_instance_matrix = TestData;
testing_label_vector = TestLbl;
[predicted_label, accuracy, decision_values] = svmpredict(testing_label_vector, testing_instance_matrix, model);