IMHO, Zdenek Kalal has some short sighted view for business. Even if someone offered him a plane filled with money for his algorithm, or if he thought "hey, I can sell this shit! fuck the world! show me the money!", he fails at acknowledging that it doesn't really matter whether you created one of the best algorithms for image recognition: what matters is if you can do it again.
What I'm talking about is, what if instead of selling one of the golden eggs, you give that for free and create a reputation for yourself worldwide, so more people will be willing to hire the golden egg's goose?
Anyway.. Somewhere, Richard Stallman is smiling.. and I'm happy for that.
And at least version R2009B, to get the new syntax for unused function arguments or return values ("~"). Otherwise, search and replace them with dummy variable names to get it to run. Should just take a couple minutes.
He already released it, and once you release something under GPL you can't take it back. You can stop hosting it, but someone else is free to develop further on it.
Even so, I'm not sure this is a polite thing to do. I think it would be nice to respect the author's wishes for the moment:
We have received hundreds of emails asking for the source code ranging from practitioners, students, researchers up to top companies. The range of proposed projects is exciting and it shows that TLD is ready to push the current technology forward. This shows that we have created something "bigger" than originally expected and therefore we are going to postpone the release of our source code until announced otherwise. Thank you for understanding.
However as most of the tracking code is in Matlab - i.e. you can't just port this to your phone - I don't think the author has a great deal to lose here. If someone wants to re-implement the algorithms they may well need his expertise. (Edit: Looking at the code in more detail SammoJ may well be right, and this paragraph may be wrong.)
In fact, Henrik Abelsson may have more to lose if this is seen as poor etiquette, but I'm speculating here.
Translating MATLAB -> C isn't too bad and could be done without any domain knowledge. Just remember the pesky 1 start for MATLAB arrays... Having a quick glance through the code I haven't seen any major reliance on MATLAB built-ins. Also "most of the tracking code is in MATLAB" is false. The tracking builds upon the Lucas-Kanade tracker in lk.cpp which uses OpenCVs implementation. I'd estimate a couple of full days of work tops to re-write in C.
Qualifications: I have had to speed up (i.e. rewrite in C) a lot of complex MATLAB code.
The fun part is converting all the Matlab functions that call LAPACK/BLAS into direct bindings to said libraries. That stuff is so dense (although I guess if you're used to it, it's not so bad).
Is anyone seriously considering porting this to C? I'm thinking of doing this myself, as I'm really interested in applying the algorithm, but I don't have a lot of experience in this kind of thing.
I am thinking of porting his code to ccv (http://github.com/liuliu/ccv). Unfortunately, his code is released under GPLv2, and ccv is BSD licensed. I have sent email to him in order to obtain further permission.
I did think about the ethics of posting it or not, and yes, it is a difficult issue, but ultimately decided that since the original author had willfully licensed and distributed the source code under the GPL the choice to allow distribution of that version had already been made.
OK, so we've got abelsson, helwr, and Zdenek all aware of what's going on here. What happened?
helwr, how do you have instant notification of this stuff?
abelsson, how did you get the source code? Did you email him early, get the GPLv2'ed source, and he later thought better of it?
Zdenek Kalal/ekalic/zk00006, are you reading this somewhere? Do you know or support the actions of these guys?
Regardless of abelsson's right (legally and ethically) to do this, I'd like to know the circumstances of this release before I use something that the author doesn't want used.
I was more or less a random passerby. The source zip was posted on his website and I download the file because I found the project somewhat interesting and wanted to examine it. This was before he removed the link to the source.
I have been in communication with Zdenek Kalal this morning however and he has requested that I delete the github repo for the time being, which I agreed to do after hearing his reasoning. Though hopefully it'll be back up soon with an official repository - that seems to be his intention, so I am willing to be patient and wait for a bit for him to sort out and set up a real project.
I picked up the original link on Google alert when Zdenek's Youtube video was at 90k views, posted on HN, day later it is at 267k and all over the web. The demo has the strongest wow factor I've seen since Thrun's talk: http://www.youtube.com/watch?v=TDqzyd7fDRc
Even so, I'm not sure this is a polite thing to do.
It was also not a polite thing to do to be selfish and remove the source code link and the GPLv2 message that it would be handed over to whomever asked for it.
What I'm talking about is, what if instead of selling one of the golden eggs, you give that for free and create a reputation for yourself worldwide, so more people will be willing to hire the golden egg's goose?
Anyway.. Somewhere, Richard Stallman is smiling.. and I'm happy for that.