Ask Your Question
3

How is OpenCV project being managed?

asked 2016-11-01 10:11:23 -0600

jcrist gravatar image

updated 2016-11-02 07:10:02 -0600

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.

edit retag flag offensive close merge delete

Comments

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.

jcrist gravatar imagejcrist ( 2016-11-01 11:38:34 -0600 )edit
1

Better communications / feedbacks from the OpenCV team can be improved I suppose. Can you elaborate what make you say your last sentence?

Eduardo gravatar imageEduardo ( 2016-11-01 15:20:41 -0600 )edit

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?

jcrist gravatar imagejcrist ( 2016-11-01 23:19:15 -0600 )edit

let's try to invite @alalek or @mshabunin to this thread ;)

berak gravatar imageberak ( 2016-11-02 07:36:03 -0600 )edit

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)?

Eduardo gravatar imageEduardo ( 2016-11-02 07:53:53 -0600 )edit

One good example is Eclipse - I think they put a lot of good thoughts in the contribution process.

jcrist gravatar imagejcrist ( 2016-11-02 09:09:56 -0600 )edit
2

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

LBerger gravatar imageLBerger ( 2016-11-03 06:11:00 -0600 )edit

1 answer

Sort by ยป oldest newest most voted
5

answered 2016-11-03 10:12:20 -0600

mshabunin gravatar image

Management

The core team focuses mostly on library support: reviewing contributions and issues, keeping infrastructure working. Resources are quite low, so there is no public roadmap available, but you can check GitHub milestones, meeting notes and GSoC ideas to get main development directions.

Community can suggest bug fixes, new algorithms and modules on GitHub. Most of new functionality is considered experimental and should be put into opencv_contrib repository. One can use GitHub to discuss contributions and vote for them. Decision about integrating is made by core team with taking in account argumentation provided in pull request.

Compatibility

3.0.0-rc1 should not be considered stable. 2.4.x and 3.x are not compatible, but transition can be done quite smoothly (guide). All 3.x releases since 3.0 should be backward compatible, we have ABI check on buildbot for this (not applicable to opencv_contrib).

Functional compatibility is way more complex question, in many cases it can not be achieved at all. If you think MSER gives you wrong results, you can file a bug report on issue tracker. Adding new cmake/compile flags is a bad idea, because each flag doubles the number of build configurations. Instead we are trying to move towards modular structure, for example you can create your own module with older versions of some algorithms, build OpenCV with it and use them in your application.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2016-11-01 10:11:23 -0600

Seen: 774 times

Last updated: Nov 03 '16