2015-02-04 6 views
0

OpenCV (C++)를 사용하여 자동차 판 인식 시스템을 만들려고합니다. 이미 GitHub에서 this example을 보았습니다. 그러나 K- 가장 가까운 이웃이나 인공 신경망 대신 SVM을 사용하고 싶습니다.OpenCV C++에서 자동차 판 인식을위한 SVM 훈련

두 가지 (양성 또는 음성) SVM 만 교육 했으므로 차 판에있는 문자를 분류하는 방법을 배우려면 어떻게해야합니까?

바이너리 SVM을 여러 개 만들어야하는데 22 개의 기호 (Y는 마지막 하나의 기호) (예 : 22 개의 클래스)가 있습니까? 예를 들어 SVM (0,1), SVM (0,2) .... SVM (Y, 0), SVM (Y, 1) ...

이 경우 어떻게 병합 할 수 있습니까? 파일을 하나로 묶어 인식에 사용합니까?

+0

http://en.wikipedia.org/wiki/Support_vector_machine#Multiclass_SVM – Photon

+0

올바르게 이해하고 있는데, "one-versus-all"체계는 위에서 설명한 것과 동일합니다. –

+1

귀하의 설명이 명확하지 않았지만 그것이 될 수 있다고 생각합니다. 왜 OCR과 일치하는 템플릿이 아마도 더 나은 작업을 수행 할 때 SVM 사용을 고집하는지 확신 할 수 없습니다. – Photon

답변

1

다중 클래스 솔루션에는 클래스 당 하나의 SVM이 있지만 두 개가 아닙니다. 따라서 SVM(A)에서 SVM(Y)까지입니다. SVM(A)이 A를 B-Y에서 분리하려고 시도하면 SVM(Y)은 A-X에서 Y를 분리하려고 시도합니다.

계층 구조가 더 나은 해결책이 될 수 있습니다. V와 Y가 유사한 경우 SVM(VY)을 먼저 가지고 V-Y-Y SVM을 가질 수 있습니다.

파일을 병합하는 데 문제 (또는 이유)가 표시되지 않습니다.

+0

치어 리더를 보내 주셔서 감사합니다! 그러나 어떻게이 다중의 svm을 훈련시킬 수 있습니까? 바이너리 SVM 만 교육했는데 동일한 접근법입니까? 예를 들어, 문자 A가있는 폴더는 양의 변종이고 문자 B가있는 폴더는 음수입니다. A-C, A-D에서도 그렇지만이 방법으로는 많은 SVM을 얻습니다. 나는 클래스 당 하나의 SVM을 만드는 방법을 이해할 수 없다. (예 : 클래스 A) –

+0

@pavel_s : 내가 말했듯이 : 문자 A는 양수이고, ** 다른 모든 ** 문자 **는 함께 부정적이다. – MSalters

+0

다시 한번 감사드립니다. –

관련 문제