[Ipopt] Suitability of IPOPT for bundle adjustment problems in open source computer vision

Keir Mierle mierle at gmail.com
Tue Apr 28 11:54:35 EDT 2009

Hi Andrea,

Thanks for responding. I understand it is difficult to relicense. The
threads make it look like if the code is dual licensed, it would be
GPL/EPL. Depending on the projects goals, the GPL may not be the best
choice. Please consider a license that is both GPL compatible and
non-viral (BSD, MIT, LGPL, etc). That way non-GPL projects like libmv
could link ipopt without changing our license, and GPL projects could
still link with libmv.

Are there alternative minimizers you are aware of that have more
compatible licenses?


On Tue, Apr 28, 2009 at 7:00 AM, Andreas Waechter
<andreasw at watson.ibm.com> wrote:
> Hi Keir,
> Thank you for your interest in Ipopt.
> Of course it would be great to be able to use Ipopt in that cool
> application.  But the licensing might indeed be a real problem.
> At COIN-OR, there have been on-going discussions regarding dual-licensing
> the projects under the GPL and the CPL. (By the way, the latter has now been
> superseeded by the EPL, Eclipse Public License, I will send out an email
> about this later.  But this does not change anything regarding compatibility
> with the viral GPL).
> We are aware of the issue and would like to find a solution, and the SLB
> (Strategic Leadership Board) of COIN keeps discussing this. However, as you
> might imagine, to relicense a project, one needs to obtain consent from
> every person or institution/company who contributed to the project, and this
> is not a trivial task.
> If you want to read a little about the discussion that has been going on,
> here are two of the latest mailing list threads regarding the topic (click
> on [thread] to see the responses to those messages):
> http://list.coin-or.org/pipermail/coin-discuss/2008-April/003275.html
> http://list.coin-or.org/pipermail/coin-discuss/2009-April/003557.html
> Sorry that I don't have a more promising reply.
> Regards,
> Andreas
> On Sat, 25 Apr 2009, Keir Mierle wrote:
>> Summary: IPOPT looked perfect for libmv[1]'s minimization needs, but
>> was not due to the CPL. This is not the first time this has happened
>> to IPOPT [2]. Can the licensing problems be resolved?
>> The longer story:
>> I'm interested in using IPOPT for solving bundle adjustment problems
>> in computer vision. Essentially, this involves solving simultaneously
>> the positions and orientations of a set of cameras and points in the
>> world that are visible in the cameras. The typical application of this
>> is matchmoving in the special effects industry [1]. The cost function
>> is usually a sum of squared reprojection errors; each error represents
>> the difference between the measured (2d) position for a point in an
>> image, and the position obtained by projecting a (3d) point into a
>> camera (where the 3d point and camera have been recovered via
>> structure from motion techniques).
>> The traditional method for solving bundle problems is to exploit the
>> fixed sparsity pattern in the Jacobian and run Levenberg-Marquardt to
>> optimize the camera and point positions [3]. However, this requires a
>> strict configuration of cameras and points. I would like to support
>> more general setups, and potentially constraints such as the cameras
>> must stay in a plane, or a subset of the points are on a sphere, etc.
>> At first IPOPT looked ideally suited for this, but after further
>> investigation I see it will not work because of licensing problems. I
>> am mailing in case the IPOPT developers have ideas. The two issues are
>> as follow:
>> 1. The CPL is not GPL compatible. This is a problem because our
>> eventual plan is to link with Blender (GPL'd) [4] and provide a
>> matchmoving solution for them. Note that there are no open source
>> matchmovers, so this is a big deal. While the CPL is open source
>> according to the OSI definition, it is closed off to the expansive
>> ecosystem of GPL projects. That is unfortunate.
>> Would the IPOPT team consider relicensing under a more compatible open
>> source license like the LGPL, Apache 2.0, BSD, or MIT?
>> 2. The sparse indefinite solvers that IPOPT requires also don't have a
>> suitable license. This may be a larger problem than 1.
>> Are there packages the IPOPT team is aware of that would be suitable
>> for use in IPOPT but are also liberally licensed? UMFPACK might be
>> sufficient, but I am not sufficiently qualified to say. I understand
>> that this may require writing an interface, and volunteer to do so.
>> Thanks for your input.
>> Keir
>> [1] libmv: http://code.google.com/p/libmv
>> [2] IPOPT passed over for Google's Summer of Code 2009:
>> http://www.nabble.com/-SoC09-Info--An-IPopt-interface-for-R-td22151556.html
>> [3] SBA: http://www.ics.forth.gr/~lourakis/sba/
>> [4] Blender: http://www.blender.org/
>> _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/ipopt

More information about the Ipopt mailing list