2013-03-29 2 views
7

나는 훈련 데이터와 HOG 알고리즘을 사용하여 보행자를 감지하고 싶다. 이제는 opencv에서 defaultHog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());을 사용할 수 있지만 결과는 내 테스트 비디오에 좋지 않습니다. 그래서 나는 내 데이터베이스를 사용하여 훈련을하고 싶다.HOG를 훈련시키고 HOGDescriptor를 사용하는 방법?

나는 1000+ 양성 샘플과 1000+ 음화 샘플을 준비했습니다. 크기가 50 * 100으로 자르고 목록 파일을 가지고 있습니다.

그리고 인터넷에서 튜토리얼을 읽었습니다. 모두 너무 복잡하고 가끔씩 어려움을 겪습니다. 대부분은 HOG의 소스 코드와 알고리즘을 분석합니다. 그러나 단지 적은 예제와 간단한 anylize.

일부 지침에 따르면 libsvm\windows\svm-train.exe을 교육에 사용할 수 있습니다. 누구나 1000 + 50 * 100 양성 샘플에 따라 예제를 제공 할 수 있습니까?
예를 들어 , haartraing처럼, 우리는 몇 가지 매개 변수 haartraining.exe –a –b처럼 opencv에서 그것을 할 사람 탐지에 사용되는 결과로 *.xml을받을 수 있나요?

또는 교육 및 탐지를위한 다른 방법이 있습니까?

나는 그것을 사용하는 방법과 세부 절차를 알고 싶다. 세부 알고리즘으로, 나에게 중요하지 않습니다. 나는 그것을 구현하고 싶다.

누구든지 알고 있다면 알려 주시기 바랍니다.

답변

7

openCV를 사용하여 자신의 HOG 디스크립터를 훈련하기위한 몇 가지 샘플 코드와 지침을 제공했습니다 : https://github.com/DaHoC/trainHOG/wiki/trainHOG-Tutorial을 참조하십시오.

알고리즘은 실제로 간단히 제공하기에 너무 복잡 기본적인 아이디어 그러나이다 : 동일한 크기와 유형의 음성 및 양성 샘플 이미지

  1. 추출 HOG 기능.
  2. 각각의 클래스와 함께 추출 된 특징 벡터를 사용하여 SVM 분류자를 훈련 시키십시오.이 단계에서 svm-train.exe를 특징 벡터 및 해당 클래스가 포함 된 올바른 형식의 생성 된 파일과 함께 사용할 수 있습니다 (또는 직접 포함). 소스에서 libsvm 라이브러리 클래스를 처리하십시오.
  3. 결과 SVM 모델 및 지원 벡터는 openCV 감지기와 함께 사용할 수있는 단일 설명자 벡터로 계산됩니다.

안부

+0

는 당신의 샘플 코드가 더 이상 액세스 할 수 있음을 보인다. opencv.org로 리디렉션됩니다. 거기에 도착하는 다른 방법을 알고 있습니까? –

+0

@DaHoC이 링크가 더 이상 작동하지 않음을 확인할 수 있습니다. –

+0

github 링크가 작동합니다. 정말 잘 문서화 된 코드와 멋진 튜토리얼로 보인다. 개인적으로 나는이 대답을 올바른 것으로 생각할 것입니다. – nkint