pto2mk replacement

246 views
Skip to first unread message

Sybren A. Stüvel

unread,
May 25, 2016, 6:46:13 PM5/25/16
to hugin and other free panoramic software
Dear list,

I'm a happy user of Hugin. You can see some of my work at https://stuvelfoto.nl/panorama. To stitch those, I used to use pto2mk, and then "make -j8". This runs 8x enfuse in parallel, giving maximum speed on my Intel Core i7.
Unfortunately, Hugin is no longer shipped with pto2mk, and suggests using hugin_executor instead (http://wiki.panotools.org/Pto2mk). To my sadness, hugin_executor does NOT run enfuse in parallel, making the stitching much slower.
Can anyone give me some hints on how to finish the stitching process at maximum speed?

Kind regards,
Sybren

PS: I'm looking to speed up the stitching of a single panorama, so the "parallel" feature of PTBatcherGUI doesn't help me.

Bruno Postle

unread,
May 26, 2016, 2:02:37 AM5/26/16
to hugi...@googlegroups.com


On 25 May 2016 21:57:11 BST, "Sybren A. Stüvel" wrote:
>
>I'm a happy user of Hugin. You can see some of my work at
>https://stuvelfoto.nl/panorama. To stitch those, I used to use pto2mk,
>and
>then "make -j8". This runs 8x enfuse in parallel, giving maximum speed
>on
>my Intel Core i7.
>Unfortunately, Hugin is no longer shipped with pto2mk, and suggests
>using
>hugin_executor instead (http://wiki.panotools.org/Pto2mk).

There is a tool called pto2mk2 in the Panotools::Script Perl module that should work in more or less the same way.

--
Bruno

Sybren A. Stüvel

unread,
May 26, 2016, 5:15:48 AM5/26/16
to hugi...@googlegroups.com
On Thursday 26 May 2016 07:02:23 Bruno Postle wrote:
> There is a tool called pto2mk2 in the Panotools::Script Perl module that
> should work in more or less the same way.

Thanks for the pointer. However, the page states that the tool "is not
intended to replace pto2mk in the future". Also, I'd rather not have to
install Perl on every machine & platform I create my panoramas on (I use a
mixture of Windows and Linux machines). If anyone knows a tool in Python, or
something that gets compiled into an executable, you'd make me a very happy
man.

Cheers,
--
Sybren A. Stüvel

https://stuvelfoto.nl/
https://stuvel.eu/

T. Modes

unread,
May 26, 2016, 11:55:25 AM5/26/16
to hugin and other free panoramic software


Am Donnerstag, 26. Mai 2016 00:46:13 UTC+2 schrieb Sybren A. Stüvel:
Unfortunately, Hugin is no longer shipped with pto2mk, and suggests using hugin_executor instead (http://wiki.panotools.org/Pto2mk). To my sadness, hugin_executor does NOT run enfuse in parallel, making the stitching much slower.
Can anyone give me some hints on how to finish the stitching process at maximum speed?

Using the OpenMP powered enfuse.

Running 8 instances of OpenMP-enfuse with 8 threads each one (as the multi-threaded enfuse does) (as your make -j8) spawns a lot of threads and is using a lot of memory.
So we prefer currently running only one multithreaded program at one time, and this is supported by hugin_executor.

Sybren A. Stüvel

unread,
May 27, 2016, 3:32:44 AM5/27/16
to hugi...@googlegroups.com
On Thu, May 26, 2016 at 08:55:25AM -0700, T. Modes wrote:
> Using the OpenMP powered enfuse.
>
> Running 8 instances of OpenMP-enfuse with 8 threads each one (as the
> multi-threaded enfuse does) (as your make -j8) spawns a lot of
> threads and is using a lot of memory.
> So we prefer currently running only one multithreaded program at one
> time, and this is supported by hugin_executor.

Aaaah that must be what enfuse-mp is then. I'm trying it out now, and
indeed it nicely uses all my CPU cores. And 8.2 GB of RAM, so running
two of those in parallel would have been troublesome on my 16 GB
machine. Thanks for this great solution!

enfuse-mp --help doesn't show anything about this, and the man page
doesn't either. Maybe it's a nice touch to update those?
signature.asc

T. Modes

unread,
May 27, 2016, 11:00:30 AM5/27/16
to hugin and other free panoramic software


Am Freitag, 27. Mai 2016 09:32:44 UTC+2 schrieb Sybren A. Stüvel:

enfuse-mp --help doesn't show anything about this, and the man page
doesn't either. Maybe it's a nice touch to update those?

Output of "enfuse --version --verbose" and the description in chapter 3.1.1 of the enblend/enfuse documentation (which should be installed) is not sufficient?
online here: http://enblend.sourceforge.net/enblend.doc/enblend_4.2.xhtml/enblend.html#sec%3Afinding-out-details


 

Greg 'groggy' Lehey

unread,
May 27, 2016, 6:56:09 PM5/27/16
to hugi...@googlegroups.com
On Friday, 27 May 2016 at 8:00:30 -0700, T. Modes wrote:
> Am Freitag, 27. Mai 2016 09:32:44 UTC+2 schrieb Sybren A. Stüvel:
>>
>>
>> enfuse-mp --help doesn't show anything about this, and the man page
>> doesn't either. Maybe it's a nice touch to update those?
>
> Output of "enfuse --version --verbose" and the description in chapter 3.1.1
> of the enblend/enfuse documentation (which should be installed) is not
> sufficient?

It shouldn't be. That's what man pages are for. And the man page
doesn't even mention this combination of options. I've only just
discovered:

Extra feature: OpenMP: no

Greg
--
Sent from my desktop computer.
Finger gr...@FreeBSD.org for PGP public key.
See complete headers for address and phone numbers.
This message is digitally signed. If your Microsoft mail program
reports problems, please read http://lemis.com/broken-MUA
signature.asc

T. Modes

unread,
May 28, 2016, 2:34:23 AM5/28/16
to hugin and other free panoramic software
Am Samstag, 28. Mai 2016 00:56:09 UTC+2 schrieb Groogle:
It shouldn't be.
That the FreeBSD/? variants only. The windows binaries ship with documentation.


 That's what man pages are for.  
That also on Linux only. The man pages are useless on Windows.

The content of the documentation (with graphs, images, code snippets, examples) can't be fitted into the format of the man pages.
Also the range of topics covered does not fit in layout of the man pages.

So this is a package problem.

Greg 'groggy' Lehey

unread,
May 28, 2016, 2:51:18 AM5/28/16
to hugi...@googlegroups.com
On Friday, 27 May 2016 at 23:34:23 -0700, T. Modes wrote:
> Am Samstag, 28. Mai 2016 00:56:09 UTC+2 schrieb Groogle:
>>
>> It shouldn't be.
>
> That the FreeBSD/? variants only. The windows binaries ship with
> documentation.

No, you misunderstand me:

> That's what man pages are for.

You shouldn't have to run a program with almost undocumented
parameters to find out what it does.

> That also on Linux only. The man pages are useless on Windows.
>
> The content of the documentation (with graphs, images, code snippets,
> examples) can't be fitted into the format of the man pages.

Graphs and images can't. But the texts can, and should.

> Also the range of topics covered does not fit in layout of the man
> pages.
>
> So this is a package problem.

I'd suggest that it's more of an attitude problem. Incomplete man
pages don't help anybody. There's no reference to some options, nor
to the online documentation. It also claims that the info pages
(without graphs or images) are included in the info pages. And I
can't find any reference to the online documentation in the build
instructions or any other file in the top level build directory. How
did the Microsoft build people find out about it?

No wonder people are confused.
signature.asc

T. Modes

unread,
May 28, 2016, 3:18:10 AM5/28/16
to hugin and other free panoramic software


Am Samstag, 28. Mai 2016 08:51:18 UTC+2 schrieb Groogle:
On Friday, 27 May 2016 at 23:34:23 -0700, T. Modes wrote:
> Am Samstag, 28. Mai 2016 00:56:09 UTC+2 schrieb Groogle:
>>
>> It shouldn't be.
>
> That the FreeBSD/? variants only. The windows binaries ship with
> documentation.

No, you misunderstand me:

>  That's what man pages are for.

You shouldn't have to run a program with almost undocumented
parameters to find out what it does.

enfuse --help print what it does.
"enfuse --version --verbose" print "only" some diagnostic information, e.g. with which libraries is was compiled. That's purely informative and can't be changed or influenced by the user.

And I
can't find any reference to the online documentation in the build
instructions or any other file in the top level build directory.  

The online documentation is created from the build system for convenience only.
Each builder can create the documentation from the source.
The README contains a complete chapter "Documentation Generation". And the source contains a folder doc. So I don't know where you looked.
 
And for the builder configure reports at the end:

enblend-enfuse now configured for i686-pc-linux-gnu
<snip>
 can build all documentation:      yes

So this is also no hint.

Greg 'groggy' Lehey

unread,
May 28, 2016, 4:07:21 AM5/28/16
to hugi...@googlegroups.com
On Saturday, 28 May 2016 at 0:18:10 -0700, T. Modes wrote:
> Am Samstag, 28. Mai 2016 08:51:18 UTC+2 schrieb Groogle:
>>
>> On Friday, 27 May 2016 at 23:34:23 -0700, T. Modes wrote:
>>> Am Samstag, 28. Mai 2016 00:56:09 UTC+2 schrieb Groogle:
>>
>> You shouldn't have to run a program with almost undocumented
>> parameters to find out what it does.
>
> enfuse --help print what it does.

For that you have to run the program.

> "enfuse --version --verbose" print "only" some diagnostic
> information, e.g. with which libraries is was compiled. That's
> purely informative and can't be changed or influenced by the user.

Information is useful too. And it's not documented in the canonical
places.

>> And I can't find any reference to the online documentation in the
>> build instructions or any other file in the top level build
>> directory.
>
> The online documentation is created from the build system for
> convenience only.

Why? It seems there is stuff in there which can't be found
elsewhere. Documentation shouldn't be optional.

> Each builder can create the documentation from the source. The
> README contains a complete chapter "Documentation Generation". And
> the source contains a folder doc. So I don't know where you looked.

I looked there too. I've looked again. There's no mention of the
online documentation at
http://enblend.sourceforge.net/enblend.doc/enblend_4.2.xhtml/enblend.html
there or anywhere else in that directory. It should be there or in
the man/info pages.

> And for the builder configure reports at the end:
>
> enblend-enfuse now configured for i686-pc-linux-gnu
> <snip>
> can build all documentation: yes

I have:

can build all documentation: no, because of missing tidy

OK, I missed that one. I didn't do the original port, and it's
possible that this got missed as a result. I'll go through the README
and check what else I've missed.

> So this is also no hint.

Sorry, don't understand.
signature.asc

Sybren A. Stüvel

unread,
May 28, 2016, 5:01:27 AM5/28/16
to hugi...@googlegroups.com
On Fri, May 27, 2016 at 08:00:30AM -0700, T. Modes wrote:
> Am Freitag, 27. Mai 2016 09:32:44 UTC+2 schrieb Sybren A. Stüvel:
>
> enfuse-mp --help doesn't show anything about this, and the man
> page doesn't either. Maybe it's a nice touch to update those?
>
> Output of "enfuse --version --verbose"

That is a combination that you really have to know to use, as --help
by itself doesn't tell you explicitly that it's even possible.

How hard is it to let --help show whether it's using multi-threading
or not?

> and the description in chapter 3.1.1 of the enblend/enfuse
> documentation (which should be installed) is not sufficient? online
> here:
> http://enblend.sourceforge.net/enblend.doc/enblend_4.2.xhtml/enblend.html#sec%3Afinding-out-details

Light green/cyan text on a light blue background? Unreadable. The
background also isn't centred on the page, while the text is, and the
HTML is broken (two <DOCTYPE> declarations, a <html> element inside
the <body> element). I'd never expect this to be official
documentation for any package.

Sorry to be so negative. I was (and am) very happy with the pointer to
enfuse-mp. It's just that making the software a bit clearer in the way
it presents information to the user is probably less work that having
this entire discussion.
signature.asc

T. Modes

unread,
May 28, 2016, 9:09:19 AM5/28/16
to hugin and other free panoramic software


Am Samstag, 28. Mai 2016 11:01:27 UTC+2 schrieb Sybren A. Stüvel:

How hard is it to let --help show whether it's using multi-threading
or not?
And the next one wants to see the OpenCL configuration and the next one the dynamic linking one and so on.
And so the help page becomes longer and longer.
 
Light green/cyan text on a light blue background? Unreadable.
Slow. First, it's only the TOC, the main text is black.
Second there is also a pdf version with only black text.
 
The
background also isn't centred on the page, while the text is, and the
HTML is broken (two <DOCTYPE> declarations, a <html> element inside
the <body> element).

Then provide a patch which fixes the issues from the web site.
 
Reply all
Reply to author
Forward
0 new messages