quantombone / exemplarsvm

Ensemble of Exemplar-SVMs for Object Detection and Beyond
http://www.cs.cmu.edu/~tmalisie/projects/iccv11/index.html
MIT License
430 stars 155 forks source link

Ports? #38

Closed xamox closed 12 years ago

xamox commented 12 years ago

I've actually come across your paper before, but while searching for orange SVM on github I came across this.

Do you ever have plans to port it to something outside of matlab?

quantombone commented 12 years ago

Hey xamos, what language port would you find most useful?

Now that the hard work of doing the research has been done, I've also been seriously asking myself the same question. I think a non-matlab version would make a longer lasting contribution.

I think C++ will probably be the best course of action (because I have a strong C++ background and some of the pieces are already implemented in C++), what do you think?

quantombone commented 12 years ago

Now that I've had 4 more minutes think about this, I think the core algorithm in C++, and wrappers in python/matlab would be the best course of action. That way, most users would only have to setup their own custom training scripts in python/matlab, and not have to actually modify any C++ code.

xamox commented 12 years ago

Well, actually I'm one of the core developers for a cross platform open source library in python called SimpleCV (http://www.simplecv.org). We wrapper OpenCV amongst other libraries like freenect, etc, and making it very simple and easy to install and get running.

Currently we have built in some support for Orange (the ML lib), but I've been playing around with scikits-learn recently and I think we'll be moving to that as it plays much nicer with python and the syntax seems much more intuitive than orange. They have many various SVM's built into scikits-learn, but defiintely not your implementation, which seems like it would be quite useful in a lot of real world applications.

My guess is that porting it to them maybe the best, they probably have a lot of stuff built like data structures you could extend.

Also we have had a few universities move from using Matlab to SimpleCV. We have our own shell and it's very similiar to how you would use matlab. We could also port directly but would probably take more work than say porting to scikits-learn, plus more people would reap the benefits and it would trickle down to us anyway.

We are currently writing a book for O'reily on SImpleCV and we think simplecv will be very popular in the years to come. We want to backchannel awesome stuff people are doing in the vision world, for instance your code, and needs to get in the hands of people. I think you could reach a much broader audience that way and make it simple for people who aren't ML experts still use these useful tools.

Anyway, sorry for the long rant, thanks for getting back so quick and any feedback is appreciated.

quantombone commented 12 years ago

Thanks for the advice xamos. So your suggestion is porting the ExemplarSVM to a python-based machine learning library like scikits-learn (which would make a broader impact as well as allow easy integration into SimpleCV)?

I'm guess I'd have to bite the bullet and learn python "for real" to accomplish such a feat. But no worries, I breathe code.

Q: Do you have any experience with Boost.Python? I would ideally like to use a tool that could leverage the 10+ years of C++ experience I have.