SVM (Support Vector Machine) 또는 신경망을 사용할 수 있습니다. SVM은 널리 사용되며 훌륭한 결과를 제공합니다. Matlab에서 사용하는 방법의 예.
- 먼저 '교육'및 '테스트'설정으로 데이터를 나누어야합니다.
- '교육'설정은 귀하가 알고있는 즉, 어떤 질감에 결함이 있고 어떤 것이 결함인지를 아는 것입니다.
- '테스트'집합은 분류 방법을 테스트하려는 집합입니다.
행렬 training
행렬에는 각 행이 이미지의 특징 벡터 (전치 된 열 벡터)에 해당하는 모든 학습 세트 이미지의 가보 (Gabor) 피처가 포함되어 있습니다. 처음 25 개는 결함이없고 다음 25 개는 결함이 있다고 가정합니다. 이제 결함이있는 SVM과 그렇지 않은 SVM을 알려주는 group
행렬을 만들어야합니다.따라서
group = [ones(25,1); -1*ones(25,1)]; // non-defective = 1, defective = -1
SVMStruct = svmtrain(training, group);
SVMStruct
은 '테스트'데이터를 분류하는 데 사용할 지원 벡터입니다. 이전에 Gabor 기능이 testing
행렬에 포함되어 있습니다.
results = svmclassify(SVMStruct, testing);
results
1 -1 포함 이루어진 결정에 따라 최종 결정 행렬이다.
이 질문은 스택 오버플로에 적합한 형식이 아닙니다. 즉, 코드 문제는 아닙니다. http://stats.stackexchange.com/ 또는 http://dsp.stackexchange.com/에서 질문하는 것을 고려해야합니다. – Dan
@Dan 감사합니다. 나는 DSP에 대해 물어볼 것입니다. –