Forum

Author Topic: Speed of 1.3.2 onwards vs 1.3.0  (Read 3753 times)

jinjamu

  • Jr. Member
  • **
  • Posts: 50
    • View Profile
Speed of 1.3.2 onwards vs 1.3.0
« on: December 30, 2017, 06:08:27 PM »
I'm currently doing a benchmarking exercise to compare speeds of different machines, including Azure based VMs, and in doing so I seem to be experiencing a massive difference in performance between v 1.3.0 versus v 1.3.2 & v1.3.4 (the versions I have tested) for the dense cloud build.

I have a fully aligned data set of 1509 photographs, which i am running through an Azure NV24 VM machine.  This is quite a powerful machine with 24 cores and 2 x Tesla M60 GPUs, see screen grab.

The dense cloud build comparative timings and resultant number of points is as follows:
1.3.0 - Depth Map 00:32:50, Dense Cloud 07:39:00, Points 56,043,481
1.3.4 - Depth Map 00:19:24, Dense Cloud 00:28:54, Points 26,606,884

So note the MASSIVE difference in time to build the dense cloud.

All processing parameters were of course identical.

Interesting also is that the depth map took substantially SHORTER time using 1.3.4, but also the number of resulting points is much less, around half, yet another strange thing. 

What I noticed during the processing of the depth maps on 1.3.0 was that the GPUs were maxing out at around 10-12% each...could explain the timing difference here.

But of course the most significant factor is the timing on the dense cloud part, and also the difference in point count.

Any ideas?  Is this a bug in 1.3.2 and later versions?

Thanks

John

 

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 14813
    • View Profile
Re: Speed of 1.3.2 onwards vs 1.3.0
« Reply #1 on: December 30, 2017, 07:17:32 PM »
Hello John,

Version 1.3.0 has strict limit of 50 neighboring images used for the depth maps computation and depth filtering. Since version 1.3.1 these limits were removed again. So it's strange that you are observing shorter time in the version 1.3.4 compared to 1.3.0 (I thought that you have mentioned opposite behavior in another thread).

As for the depth maps computation time, since version 1.3.0 there were a number of optimizations for GPU-based processing, so GPU should be utilized better and the performance of the depth maps generation stage on GPU should be considerably better than in 1.3.0.

Best regards,
Alexey Pasumansky,
Agisoft LLC

jinjamu

  • Jr. Member
  • **
  • Posts: 50
    • View Profile
Re: Speed of 1.3.2 onwards vs 1.3.0
« Reply #2 on: December 30, 2017, 07:26:05 PM »
Hi Alexey,
So sorry seems I have a typo! :(
My readings should have been as follows:

The dense cloud build comparative timings and resultant number of points is as follows:
1.3.0 - Depth Map 00:32:50, Dense Cloud 00:28:54, Points 56,043,481
1.3.4 - Depth Map 00:19:24, Dense Cloud 07:39:00, Points 26,606,884

I understand the improvement in time for the depth map (better GPU utilization)...however reduction in speed for the dense cloud is many orders of magnitude, around 15x.  Maybe I am not understanding any benefits resulting from the change....

Thanks

John
« Last Edit: December 30, 2017, 07:29:39 PM by jinjamu »

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 14813
    • View Profile
Re: Speed of 1.3.2 onwards vs 1.3.0
« Reply #3 on: December 30, 2017, 07:35:20 PM »
Hello John,

In the version 1.3.0 we and our users have been observing the considerable noise for the complex structures with the default limit, so we have removed it.

In the version 1.4.0 you can modify the default limits for both steps using the following commands in the Console pane:
Code: [Select]
PhotoScan.app.settings.setValue('main/depth_max_neighbors', N)
PhotoScan.app.settings.setValue('main/dense_cloud_max_neighbors', N)
Where N is the number of pair limits (that was 50 in the version 1.3.0, to return everything to unlimited stage, use "minus one" value: -1).

In the version 1.3.4 you can control only depth filtering limits in a similar way:
Code: [Select]
PhotoScan.app.settings.setValue('main/depth_filtering_limit', N)
The command should be executed prior to the dense cloud generation stage. The specified value wouldn't be discarded when you close the application.
Best regards,
Alexey Pasumansky,
Agisoft LLC

jinjamu

  • Jr. Member
  • **
  • Posts: 50
    • View Profile
Re: Speed of 1.3.2 onwards vs 1.3.0
« Reply #4 on: December 30, 2017, 08:07:49 PM »
Ok Alexey, many thanks for the details!  I will spend some time to try to understand  :)
Best wishes for the New Year!

ThomasVD

  • Full Member
  • ***
  • Posts: 107
    • View Profile
Re: Speed of 1.3.2 onwards vs 1.3.0
« Reply #5 on: October 30, 2018, 09:36:00 AM »
Going to just leave Alexey's solution for version 1.4.2 onwards here for those troubleshooting this problem now (original post here: http://www.agisoft.com/forum/index.php?topic=9294.msg43358#msg43358). Works for me!

Alexey:
Hello dense_data,

Starting from PhotoScan version 1.4.2 (both Standard and Professional) you can modify that "hidden"setting using Tweaks dialog that is accessible from the Advanced Preferences tab.

Create the new entry with the following name:
main/dense_cloud_max_neighbors
and assign the desired pairs value, like 50 or 60, for example.

To remove the limit you can either delete the "tweak" or set the value to "-1".
« Last Edit: October 30, 2018, 09:37:59 AM by ThomasVD »