3 ms·
I don't understand why the computer vision community is so locked in to matlab. Sure it's a great tool, but it's only marginally better than what the python com
by chancho 16y ago
I don't understand why the computer vision community is so locked in to matlab. Sure it's a great tool, but it's only marginally better than what the python community has to offer (that margin being the network effect I'm about to rage against) and it's damn expensive. You'd think the high cost and vendor lock-in would be off-putting to academics (the discounts are such a transparent ploy.) I mean, what good is it releasing some code under the GPL when you need a $2000 system (plus a handful of toolboxes at $1000 a pop, plus maintenance fees) to run it.
What's particularly galling (to a matlab hater like me, anyway) is how some of the most highly-cited and useful work that's made available by researchers is done so only through matlab. The de facto standard benchmark for keypoints (http://www.robots.ox.ac.uk/~vgg/research/affine/ http://www.robots.ox.ac.uk/~vgg/research/affine/) is a matlab function, but it's not like that code uses matlab in any interesting way, it just reads text files. And even though it's not computationally intesive (the benchmark is only on small set of images) there is a mex function involved to do the actual computation, which makes it a pain in the ass to use with octave. Basically they're using matlab as a $2000 bash shell. Same situation for the standard segmentation benchmark (http://www.eecs.berkeley.edu/Research/Projects/CS/vision/bsds/ http://www.eecs.berkeley.edu/Research/Projects/CS/vision/bsd...) And then there's LabelMe (http://labelme.csail.mit.edu/ http://labelme.csail.mit.edu/) the "open" annotation tool. They've got a really slick javascript UI for crowdsourcing ground truth collection for image segmentation / object classification tasks. They make the data freely available (which is awesome) but to access it you have to go through a matlab toolbox...? WTF?! I mean really, you've obviously got someone on your team who knows a thing or two about the web: take a page out of Flickr's playbook (after all they've done for the CV community) and make your data available via open standards. There's not even a goddamned download link on the page. It's like they're on the Mathworks payroll.
Grrr...
- Nate75Sanders 16y agoA lot of it is institutional buy-in. Your group might be buying single licenses or something, but pretty much all reasonably big research universities in the US have either a site license or a college/school-level license -- like maybe the whole College of Engineering or whatever. A lot of engineers (non-CS guys) REALLY like Matlab because it's extremely easy to use with good visualizations and with all the toolboxes and stuff, you can do whatever you want. So you get a lot of ME, EE, CE, other guys saying "we want Matlab" and all of a sudden you have a good reason to get a site license. Add to that that many computer vision researchers are really EE or applied math guys who aren't going to use some other language/tool and it boils down to free Matlab (because you have the site license) or free Octave (because it's free) and they take Matlab because it's more full-featured. Particularly, until the last few years, the plotting/visualization stuff under Octave was some mix of incomplete and very hacky. The situation has certainly become better, lately, though. Also, as of say...2006? Matlab was considerably faster. Also, at conferences, etc, it's easy to find books about Matlab and a salesman with a little booth who's happy to talk to you and they also advertise elsewhere a good bit. I don't think anybody's preaching Octave, actively, except for the choir. Edit/addendum: I think Octave is great. Just explaining why I think people choose Matlab.
- mturmon 16y agoI understand your perspective. I love to develop in Python, but still do most of my work in Matlab. I think the easy to use and high quality graphics in Matlab, plus the painless installation and setup (compared to python, scipy, ipython, etc.) are the main factors. Thanks for the link to LabelMe, that's cool.
- fluidcruft 16y agoI came to the same realization and that's why I've moved to octave. Octave's a much better "bash" shell. It works much more nicely for integrating tools on unix. I often build things that mix specialized C/C++/Fortran programs, octave and R. Octave makes it so much easier to assemble these things. You can use each tool for its strengths.