It's much cleaner now, though I'm a bit embarrassed I had to look into how to properly write header files and understand dependencies.
Other than that, I replaced the k-nearest neighbor model from the classifier with a multiclass Support Vector Machine implementation. I used the one-vs-one approach described here:
http://en.wikipedia.org/wiki/Support_vector_machine#Multiclass_SVM
Validated the model with 10-fold cross validation and here are the results, using only color histograms:
Average accuracy: 0.861413 (31.7/36.8) - best so far!
And here are the results using only HOG features:
Average accuracy: 0.703804 (25.9/36.8) - Not bad for the naive approach.
The dimensionality of the HS histogram features is 960, whereas the HOG features are a whopping 16524... In cutting edge recognition, feature lengths are often less than 100 due to the curse of dimensionality. The classifier takes a good amount of time extracting the features, and then reducing them with PCA (about 1 minute).
I'm still edgy about what I should do for the next two weeks. I've narrowed it down to some of the things I feel I should focus on, but I'm unsure as to whether I will have enough time to finish everything.
- Look into metric learning or other feature weighting approaches to combine HOG features with color histogram features.
- Instead of taking HOG feature from the entire image, find bounding rectangle to take HOG feature.
- Could also continue part-modeled recognition by continuing work on part detectors.
- Create a user-interface for easy training of bounding boxes for different parts.
- Increase speed of template matching
- Reduce dimensionality of Color histogram features and HOG features, without hindering performance.
No comments:
Post a Comment