2014-10-09 9 views
1

이미지에서 사슴을 탐지하기 위해 계단식 분류기를 교육하려고합니다. 문제는 제 분류 시스템이 입력 이미지의 바로 중앙에서 항상 정확히 하나의 긍정적 인 결과를 반환한다는 것입니다. 이는 테스트 이미지, 양성 세트의 트레이닝 이미지 및 음성 세트의 트레이닝 이미지에 해당됩니다.OpenCV Traincascade가 쓰레기를 반환합니다.

나는 긍정적 인 훈련을 위해 CIFAR-10 데이터 세트 (http://www.cs.toronto.edu/~kriz/cifar.html)에서 사슴 이미지 세트를 사용하고 있습니다. 이것은 다양한 포즈로 사슴의 5000 32x32 컬러 이미지를 제공합니다. 네거티브 트레이닝 세트의 경우 Labelme12-50k 데이터 세트 (http://www.ais.uni-bonn.de/download/datasets.html)의 이미지를 사용하여 39000 개의 임의 이미지를 제공합니다. 크기를 양성 세트와 일관되게 만들기 위해이 모든 이미지의 크기를 32x32로 조정했습니다.

나는 다음 명령을 사용하여 긍정적 인 벡터를 생성 :

./opencv_createsamples -info posFiles.txt -w 32 -h 32 -num 5000 -vec posVector.vec 

이 벡터가 성공적으로 생성 될 것처럼 보였다. 내가 사용하여 이미지의 분류를 테스트 할 때마다,

./opencv_traincascade -data /home/mitchell/ece492/Deerinator_Software/Deerinator_Software/trunk/Haar/data -vec posVector_5000.vec -bg negFiles.txt -numPos 4000 -numNeg 39000 -w 32 -h 32 -featureType LBP -numStages 18 

캐스케이드 분류가 훈련을 약 5 시간 소요되며, 그러나 0.038의 부정적인 거부 속도를 가지고 나타납니다 : 그럼,이 명령을 사용하여 내 캐스케이드 분류를 훈련 명령 :

./c-example-facedect --cascade=cascade.xml img.png 

나는 항상 같은 결과를 얻습니다. 이것은 이미지 테스트, 긍정적 인 교육 세트의 이미지 및 부정적인 교육 세트의 이미지에 대해 발생합니다. 이 시점에서 무엇을해야할지 모르겠습니다.이 시점에서 저는 opencv 샘플 실행 파일을 사용하고 있습니다. 프로세스가 입력 교육을 받거나 분류자를 사용하고 있는지 확실하지 않습니다. 누구든지 어떤 제안이 있습니까?

답변

0

그림 샘플이 너무 작아서 실패한 것 같습니다. 나는 그들이 32 x 32 인 것 같아. 그것은 어떻게 긍정적 인 표본에 사용될 수 있을까? 내가 틀렸고 그림이 실제로 더 크다면, 나에게 그 (것)들을 포장하는 방법을 가르쳐 라. 그러면 나는 당신을 위해 이것을 달리게 할 수있다라고 생각한다.