How is OpenCV project being managed?
Dear OpenCV team! I have one generic question - is the opencv project being managed by anyone or not really? For example:
- How is the decision being made on whether particular contribution is inline with OpenCV roadmap or not? Is there any release plan available for public?
- Who and how decides whether to remove or update an existing interface? I've seen many changes in recent version (3.1), which break previously available interface (3.0.0-rc1 or 2.4.x). I believe such changes should be discussed with community as we humble users )) expect that opencv versions are backward compatible at least within one release.
- Some of popular algorithms are also changing very dramatically even within one major release. For example, MSER feature detector produces substantially different number of feature points in version 3.0.0-rc1 and 3.1 on the same image. This is very unexpected situation as it is essentially deterring users from upgrading to a newer version. Just an idea - can we have a compiler flag, which enforces backward compatibility on the underlying algorithm level with previous versions? Another alternative is to keep older versions of algorithms with the ability to switch them on or off during compilation from source (for example, MSER 3.0, MSER 3.1 etc).
OpenCV is really cool staff but after playng a bit with it I got an impression (may be totally wrong) that there is no management at all; contributions are sometimes poorly explained and it is not always clear what is driving them.
By the way, managing roadmaps could be done using opensource tools. Some people advise Redmine - it seems to be good open source project management tool. I don't have much experience with it but it may solve at least problem of managing releases and roadmaps. Integration with git is also a big plus.
Better communications / feedbacks from the OpenCV team can be improved I suppose. Can you elaborate what make you say your last sentence?
Sure. Is there a list of features or may be new modules, which are planned for the next release? When is the tentative date for the next release? Is there a long-term roadmap? Is there a way for community to suggest new modules/new projects and may be vote for it? Another set of questions is related to backward compatibility with previous releases and versioning of algorithms. Take MSER as an example. Without going too deep in details - this algorithm produces totally different results in ver 3.1 compared to 3.0.0-rc-1 to say nothing about 2.4. Is there a way to understand what triggered this change and why the new implementation is better than the one in the previous versions? I ran through the commits - seems like some refactoring was going on but why it impacted results?
let's try to invite @alalek or @mshabunin to this thread ;)
For the communication, interaction, suggestions from/with the community, I wonder how it is with bigger open source projects (I am not really an open source contributor)?
One good example is Eclipse - I think they put a lot of good thoughts in the contribution process.
I think it is difficult to manage an open source project like opencv. It is an open source project but belong (before itseez) to Intel. OpenCV is one task for Intel. To answer to our question OpenCV is managed by Intel and OpenCV success is number of download by week and questions on this forum and other forums.
About "contributions are sometimes poorly explained" my answer is yes and no. About my own contribution there is a minimal doc but paper reference with an example (Paillou filter or example canny filter with own gradient). I can write doc (in a bad english) but who read it : beginner, student, expert in vision?
May be one way to understand how opencv is managed is a meeting like libreoffice congress