Andrew,

I was assuming by "port" you meant "rewrite from scratch using VXL structures".  I am in favor of this approach, but I'm not in favor of putting GPL code Bundler code into VXL.

I do have a little background in structure from motion and would be interested in discussing your proposed architecture.  We already have a photogrammetry library in contrib/gel/mrc/vpgl that contains camera structures and some camera calibration code.  This library is used extensively by Brown University and Kitware, and is probably a good candidate to move to core (if someone finds the time to do it).  I suggest your bundler re-write be placed in mostly vpgl_algo.  The only part that should go in vil_algo is any code for processing images to extract features.

We actually already have have some bundle adjustment code in vpgl_algo, and I am the principal author.  However, this code may not be as general as what you are looking for, and it certainly doesn't scale to large problems like bundler does.  It would be great if we could update vpgl bundle adjustment code to use some of the more modern methods in the structure from motion literature.

--Matt

On Thu, Feb 17, 2011 at 11:06 AM, Ian Scott <scottim@imorphics.com> wrote:
Andrew,

I'm happy to encourage anyone porting Bundler to use VXL. I am not a
lawyer, but my understanding of the licensing situation is:
Andrew is free to republish the ported code under the GPL, but the VXL
consortium cannot include the code in the publication of VXL under the
VXL license.

See
https://vxl.svn.sourceforge.net/svnroot/vxl/trunk/core/vxl_copyright.h
It is probably identical in effect to the BSD license.

We might be able to create a bundler contrib module that was explicitly
GPLed rather than VXL licensed. However, that is a rather big step, and
we would forever be barred from moving code out of that module into the
rest of VXL.

On the substantive question, I'm a statistical modeller in the medical
image domain, and don't know enough about the structure from motion
field to comment. However, it is always good to welcome new users and
contributors to VXL.

Ian.


Assumptions
1. Bundler is published under the GPL license.

2. Andrew Hoelscher doesn't have any additional permissions or licenses
from the authors of Bundler. But for example, if Andrew is an authorised
representative of the authors/publishers of Bundler, then he can
authorise the republication under any license he chooses.

3. The port consists of a re-engineering and refactoring of the original
code to remove some underlying maths and image support primitives and
use VXL's instead. In particular that there exists recognizable
implementation details in the ported version, that came from the
original publication. But for example, if the port was really written
from scratch based on the published papers, and the original bundler
code was consulted only to understand essential details of the
algorithm, then the new code would be free of Bundler's copyright.




Ian.


On 17/02/2011 15:03, YuLianqing wrote:
> Hi anjruu,
>
> Your endeavor of porting bundler to vxl is interesting and I'd like to
> be involved in this effort if you don't mind. Both licenses of bundler
> and SBA are GPL and should be compatible with that of VXL though I could
> not find a license declaration on VXL website.
> I think it's a good idea to add ported bundler to contrib since
> struction from motion is an application, not a core component of VXL.
> I'd also like to know the maintainers' comments.
>
> Lianqing
>
> ------------------------------------------------------------------------
> From: anjruu@gmail.com
> Date: Wed, 16 Feb 2011 15:40:58 -0500
> To: vxl-maintainers@lists.sourceforge.net
> Subject: [Vxl-maintainers] Porting Bundler to VXL, questions on general
> approach
>
> Hi all. I am working with a small group of people, porting bundler
> <http://phototour.cs.washington.edu/bundler/>, which recovers the camera
> positions and 3D points from a collection of uncalibrated images, to
> VXL. We were hoping to make the design very modular, so that people can
> either use the general, all-purpose approach currently implemented, or
> specify different constraints by implementing their own subroutines to
> plug into the bundler pipeline. Currently the bundler source code is
> somewhat scattered and difficult to use.
>
> We had a couple of questions, I guess the first of which is, is anyone
> interested in this? Currently, bundler is one of the best
> implementations of the structure from motion problem, so we think that
> adding it to a mature vision library might allow for cool applications,
> but we're wondering about the general interest level.
>
> Secondly, we were thinking of adding this to the "contrib" folder; would
> this be the correct place to put it? We briefly considered trying to add
> it to vil_algo, but we felt that if the project was successful and
> people were interested, we might migrate it to that directory after we
> finished and people had some time to use it. If we do add it to the
> contrib directory, what name would be the most consistent?
>
> Finally, is anyone interested in critiquing the proposed architecture? I
> don't want to flood the list with technical details if no one cares, but
> we would like to here thoughts and opinions on what we're planning to do
> from people very familiar with VXL.
>
> Thanks!
>
>
>
> ------------------------------------------------------------------------------
> The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio
> XE: Pinpoint memory and threading errors before they happen. Find and
> fix more than 250 security defects in the development cycle. Locate
> bottlenecks in serial and parallel code that limit performance.
> http://p.sf.net/sfu/intel-dev2devfeb
> _______________________________________________ Vxl-maintainers mailing
> list Vxl-maintainers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/vxl-maintainers
>
>
>
> ------------------------------------------------------------------------------
> The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
> Pinpoint memory and threading errors before they happen.
> Find and fix more than 250 security defects in the development cycle.
> Locate bottlenecks in serial and parallel code that limit performance.
> http://p.sf.net/sfu/intel-dev2devfeb
>
>
>
> _______________________________________________
> Vxl-maintainers mailing list
> Vxl-maintainers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/vxl-maintainers


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Vxl-maintainers mailing list
Vxl-maintainers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vxl-maintainers