lbp cascade training to detect traffic signs [closed]
Hello, I'm trying to train a classifier which detects all these kinds of traffic signs.
I've trained a classifier (9 stages) that detects all these signs, but it also detects other types of signs or background. I got many false detects. Im using 300 cropped images of signs (around 15 for each type of sign) and 5900 neg images of roads, cities(without signs ofc). What Im doing wrong? Maybe it's not good idea to use cascade classifier for my purpose? My parameters:
opencv_createsamples.exe -info info.txt -vec vector.vec -w 30 -h 30
opencv_traincascade.exe -data cascade/ -vec vector.vec -bg bg.txt -numPos 300 -numNeg 5900 -numStages 20 -featureType LBP -mode ALL -w 30 -h 30 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -numThreads 4
and now, you found out, that it detects anything, which is round
and blue( which is exactly, what you trained it for ! ) ?actually it detects almost everything. I need to detect only these signs. What should I do? Train a cascades for each type of sign or what?
don't ever expect to do anything successfully with 300 positives only, especially, if your constraints are that vague (inner class variance)
maybe you can (re)train some SSD style cnn with your data ?
Its impossible with boosted cascades. The only succesfull solution we got working at our lab, based on research of Daimler, is 2folded
But in the long run, you are better of these day with indeed applying transfer learning on a pretrained network, using either SSD or YOLOv2. Those nets incorporate localization and classification in a single run and beat all previous solutions.
I was thinking about creating a cascade classifier that detects round shapes and train svm or knn to recognize these detected signs. How about this??
yea, try that. part 2 will work like a charm (and even for that i'd prefer retraining an existing cnn). but again since the description of part 1 is still so vague -- you'll need a ton of positives