long term autopano-sift-c support questions

31 views
Skip to first unread message

John David

unread,
Oct 14, 2021, 9:23:48 AM10/14/21
to hugin and other free panoramic software
While researching some SIFT, SURF, and ORB implementations and support on Gentoo I came across a request for maintenance support for autopano-sift-c.  I have been in contact with the Gentoo Proxy Maintainers about maintaining that and other packages in the portage tree.

While researching background I read that autopano-sift-c is a port of an original C# code base, but what is probably less well known is that the original C# code (circa 2004) does not appear to be available anymore, and the original developer of the C# code (Sebastian Nowozin)  has no interest in maintaining it.  Since it is a port of orphaned code I am not sure that maintaining autopano-sift-c is viable in the long term.

I am exploring the following options, I can work with the hugin folks to maintain the original autopano-sift-c code, or I can work on modifying hugin to use a different library.  

For long term support and longevity, porting to use a different library would likely be the most maintainable, but before spending a bunch of time on this I would like to know if there would be support from both the developers and the community.  No reason to waste your time or mine if that is a non-starter.  If this is a viable option I would be interested to hear what other libraries that others have used and would interested to see supported.  At the moment I am looking into OpenCL and OpenCV libraries, but am open to anything that is actively maintained and have a chance of being so in the long term.


  EBo --

Bruno Postle

unread,
Oct 14, 2021, 10:37:59 AM10/14/21
to hugi...@googlegroups.com
I think autopano-sift-c is maintainable, it doesn't have any awkward dependencies, and as far as I know still builds on all platforms despite abandonment. If you want to take it on then please dive-in.

I'll try and recall some history:

The C# implementation (which involved running two tools consecutively) was replaced by the C version that was contributed anonymously, this is the code that you can find on sourceforge.

Hugin has never shipped with an autopano-sift-c executable because of a SIFT algorithm patent (though Hugin has the capability to run autopano-sift-c for control-point finding if you have it).

Pablo wrote cpfind as a full replacement that doesn't infringe the SIFT patent, this *is* shipped with Hugin, and as far as I'm concerned cpfind is as capable and as fast at feature identification as autopano-sift-c. There hasn't been much interest in autopano-sift-c since.

I believe that the SIFT patent expired last year, so there is some value in looking at all this again - in particular because (as you have identified) there are some very mature GPU based SIFT implementations in libraries like opencl.

So, upgrading autopano-sift-c to use a modern SIFT implementation would be interesting, but there are two drawbacks: we don't actually know who wrote it, though they did attach a GPL licence, so it has an odd copyright status; it also reads a limited range of image file formats, whereas cpfind can read all the formats supported by Hugin.

Modifying cpfind in the Hugin project to use a modern SIFT library *could* produce a dramatic improvement in speed and quality (though nobody knows without trying), if so, and if it doesn't involve exotic library dependencies, it would be welcome as part of Hugin. This would be the best place to do this from my perspective.

--
Bruno

John David

unread,
Oct 14, 2021, 10:52:55 AM10/14/21
to hugi...@googlegroups.com
Thank you for the feedback Bruno.

Yes, the SIFT patent expired in March of 2020.  So there are no longer those issues present that I know of.  The original autopano-sift was released at GPL2 if I recall correctly, so it stands to reason that autopano-sift-c would as well.  I would have to look into this to verify, but it may be a mute point.

I do not have an issue with cpfind instead of  autopano-sift-c, and will look into some of that as well

Out of curiosity, what do you consider an "exotic" dependency?

  EBo --

--
A list of frequently asked questions is available at: http://wiki.panotools.org/Hugin_FAQ
---
You received this message because you are subscribed to the Google Groups "hugin and other free panoramic software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hugin-ptx+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/hugin-ptx/B93A609F-C256-404C-9387-FCB284B62875%40postle.net.

Bruno Postle

unread,
Oct 14, 2021, 12:15:51 PM10/14/21
to hugi...@googlegroups.com


On 14 October 2021 15:52:41 BST, John David wrote:
>
>Out of curiosity, what do you consider an "exotic" dependency?

Hugin is built for a lot of distributions, operating systems and processor types. So any libraries that are not already available in Linux/bsd distributions, or are difficult to introduce would be problematic(*); as is anything that depends on proprietary nvidia CUDA drivers, for example; or anything that involves ASM CPU specific code.

* For a long time, Hugin contained a bundled modified version of the vigra library, this required policy exemptions from Linux distributions and was a huge pain.

--
Bruno
Reply all
Reply to author
Forward
0 new messages