I am working with your GUI attempting to recognize regular orange traffic cones. I have yet to be able to get it to successfully recognize a cone though so I have a few questions I'm hoping you might be able to answer. First, the pictures I'm using to train the detector are being taken with a different camera (of much higher quality) than the camera I am using to attempt to detect the cones. Do know if camera/image quality could cause issues with detection? Second, some of my pictures are rotated in the GUI so the cone is displayed horizontally rather than vertically thus my ROI's are not of a consistent aspect ratio. Is this something I should take the time to fix? (as in do you believe this could be a large contributor to my issue?) Third, I currently have 200+ positives and 400+ negatives. What would you recommend as a good number of positives and negatives?
Thank you in advance for your help!
Training a cascade detector is memory intensive regardless of the environment you're working in. I strongly encourage you to find a way to do this on a 64-bit computer with a 64-bit OS and 64-bit MATLAB. Whether or not that is possible, it's also worth considering that Haar features take a lot of memory. So the other recommendation would be to try HoG or LBP. HoG takes the least memory of the three feature types.
It appears that your step PRIOR to using CTG to call the training function was improper. Take a look at the variable 'me' in your call, and take a look at the documentation for trainCascadeObjectDetector. You might also want to train a very small test detector using CTG, and study the nature of the (save-able, recall-able) file that it generates for input to the training function.
That's was with my own code. After that I used the CascadeTrainGUI and I have these two files: Data_50.xml and Data_50.mat. I apply these simple code
detector = >>vision.CascadeObjectDetector('Data_50.xml');
>>img = imread('to.jpg');
>>bbox = step(detector, img); but at this point the program doesn't respond anymore
Did you get that error when you were trying to train using CascadeTrainGUI? Or did you write your own call to trainCascadeObjectDetector? The second input argument (in your call, me) must be an array of structs with your ROI-specified positive images. What is 'me' in your workflow? How did you generate it?