c++ - OpenCV Traincascade returns garbage -
i attempting train cascade classifier observe deer in images. problem classifier returns 1 positive hit, in direct center of input image. true test image, training image positive set, , training image negative set.
for positive training set, using deer image set cifar-10 dataset (http://www.cs.toronto.edu/~kriz/cifar.html). gives me 5000 32x32 color images of deer in various poses. negative training set, using images labelme12-50k dataset (http://www.ais.uni-bonn.de/download/datasets.html), gives me 39000 random images. resized of these images 32x32 create sizes consistent positive training set.
i created positive vector next command:
./opencv_createsamples -info posfiles.txt -w 32 -h 32 -num 5000 -vec posvector.vec the vector appeared created successfully. then, trained cascade classifier using command:
./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 the cascade classifier takes 5 hours train, , appears have negative rejection rate of 0.038 however, whenever test classifier on image using command:
./c-example-facedect --cascade=cascade.xml img.png i same result: single nail in center of image. happens testing images, images positive training set, , images negative training set. i'm not sure @ point - @ point, i'm using opencv sample executables. i'm not sure if process input training set or usage of classifier. have suggestions?
i think fails because image samples small. think 32 32. how can used positive samples? if wrong , pictures bigger, teach me how unpack them , bet can run you.
c++ opencv image-processing machine-learning cascade
No comments:
Post a Comment