2013-06-25 1 views
1

이미지를 모양을 기반으로 두 개의 클래스로 분류하려고합니다. 이를 위해 SVM classifier에서 푸리에 설명자를 사용했습니다. 내 문제는 푸리에 설명자의 길이가 경계 지점의 수에 따라 다르므로 다양한 이미지의 설명자 길이가 다릅니다. 그러나 SVM을 교육하기 위해서 나는 행렬 (cv :: Mat)의 행처럼 기술자를 가진 훈련 행렬이 필요하다. openCV를 사용하여 C++로 구현하고있다. 어떻게해야 하는가? 나는한다 : 경계SVM을 사용한 푸리에 설명자 모양 기반 객체 클래스 인식을위한 구현

그렇지

에서 포인트 제로와 긴 설명의 길이에 남아있는 기술자가
2.sample에만 고정 된 수의
1.pad 나에게 올바른 방법을 제안한다.

+0

당신은 수정 된 포인트 수를 샘플링하는데 사용 된 방법과 그것이 얼마나 효과가 있었는지 공유 할 수 있습니까? 예를 들어, 어떤 점을 선택해야합니까? – Kittenmittons

답변

3

이 경우 가장 좋은 방법은 경계에서 고정 된 수의 점을 샘플링하여 입력 벡터의 길이가 같도록하는 것입니다. 패딩은 나쁜 생각입니다. 그렇게하면 패딩 된 점과 패딩되지 않은 점 사이의 거리 정의가 암시 적으로 변경되기 때문입니다.

+0

감사합니다. Marc. 나는 한 번 더 의심의 여지가있다 .Dft를 경계점 (x + jy x- 실제 y- 허수 (x, y) - 경계의 좌표)에 적용한 후 Mat가 이중 채널 매트 복잡한 값을 묘사합니다. 그러나 SVM은 하나의 채널 부동 소수점 행렬만을 훈련 데이터로 사용합니다. 단일 채널 실수 값 설명 자로 복소수의 크기를 취해야합니까, 아니면 원본의 열 길이를 두 배로 늘린 첫 번째 입력란으로 설명자 ie2nd 채널의 허수 부분을 복사해야합니까? 매트를 줄이고 1 채널을 줄이거 나 그 밖에 내가해야 할 일은 무엇입니까? – user2442331

+0

"FD의 회전 불변성은 위상 정보를 무시하고 FD의 크기 값만 가져옴으로써 달성됩니다." - 연구 논문에 쓰여진대로. 그것은 단지 SVM 교육을 위해 단일 채널로 2 채널 cv :: Mat를 변환하는 문제를 해결할 복잡한 수 설명자 값을 가져야한다는 것을 의미합니까? – user2442331

+0

@ user2442331 문제의 세부 사항을 모르겠지만 데이터의 복잡한 부분을 무시하는 것은 좋지 않은 생각입니다. 당신은 실제로 각 복소수에 대해 두 개의 입력을 사용할 수 있습니다. 또는 진도 + 위상 (복소수 당 2 개의 입력)으로 갈 수 있습니다. 연구 논문에 관해서는 모두 그것의 가정과 적용에 달려있다. 두 가지 방법을 모두 시도해보고 가장 적합한 방법을 찾아 보는 것이 가장 좋습니다. –