OpenCV2.3을 사용하여 SVM 및 HOG를 기반으로하는 사람 감지 시스템을 구현하려고합니다. 하지만 나는 갇혔다.OpenCV + HOG + SVM : SVM 단일 기능 벡터에 도움이 필요합니다.
여기까지왔다 : 이미지 데이터베이스에서 HOG 값을 계산 한 다음 LIBSVM을 사용하여 SVM 벡터를 계산할 수 있습니다. 각각 3780 개의 값을 갖는 1419 개의 SVM 벡터.
OpenCV는 hog.setSVMDetector() 메소드에서 하나의 기능 벡터를 원합니다. 따라서 LIBSVM이 계산 한 1419 개의 SVM 벡터 중 하나의 특징 벡터를 계산해야합니다.
는 I 하나 힌트 발견이 하나의 특징 벡터를 계산하는 방법 : 성분의 link
"검출 된 특징 벡터를 전 (전 범위 예 0-3779 인 경우)의 합에서 내장 i * 지원 벡터의 알파 값에서 벡터를 지원합니다. j
가 지원 벡터의 수 det[i] = sum_j (sv_j[i] * alpha[j])
, i
은 지원 벡터의 구성 요소의 수 "
이에 따라, 내 일상적인 작품이 방법 :. 는 내가 처음의 첫 번째 요소를 가지고 SVM 벡터, ... 알파 값을 곱하면 알파 값을 곱한 두 번째 SVM 벡터의 첫 번째 요소로 추가
하지만 상당히 높은 값을 얻을 모든 1419 요소를 합산 한 후 :
16.0657, -0.351117, 2.73681, 17.5677, -8.10134,
11.0206, -13.4837, -2.84614, 16.796, 15.0564,
8.19778, -0.7101, 5.25691, -9.53694, 23.9357,
당신은
0.05359386f, -0.14721455f, -0.05532170f, 0.05077307f,
0.11547081f, -0.04268804f, 0.04635834f, -0.05468199f, 0.08232084f,
0.10424068f, -0.02294518f, 0.01108519f, 0.01378693f, 0.11193510f,
0.01268418f, 0.08528346f, -0.06309239f, 0.13054633f, 0.08100729f,
-0.05209739f, -0.04315529f, 0.09341384f, 0.11035026f, -0.07596218f,
-0.05517511f, -0.04465296f, 0.02947334f, 0.04555536f,
는 기본 벡터 값이에 있는지, (참조 OpenCV의 소스와 hog.cpp)를 OpenCV의 샘플에서 기본 벡터에, peopledetect.cpp 그들을 비교하는 경우 -1과 +1 사이의 경계선이지만 내 값이 훨씬 큽니다.
내 단일 기능 벡터 루틴은 약간의 조정과 아이디어가 필요하다고 생각하십니까?
감사합니다,
크리스토프