이미지에서 사슴을 탐지하기 위해 계단식 분류기를 교육하려고합니다. 문제는 제 분류 시스템이 입력 이미지의 바로 중앙에서 항상 정확히 하나의 긍정적 인 결과를 반환한다는 것입니다. 이는 테스트 이미지, 양성 세트의 트레이닝 이미지 및 음성 세트의 트레이닝 이미지에 해당됩니다.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 샘플 실행 파일을 사용하고 있습니다. 프로세스가 입력 교육을 받거나 분류자를 사용하고 있는지 확실하지 않습니다. 누구든지 어떤 제안이 있습니까?