Forum

Author Topic: Generating Dense Point Cloud - OpenCL Acceleration?  (Read 1938 times)

tweezlednutball

  • Newbie
  • *
  • Posts: 22
    • View Profile
Generating Dense Point Cloud - OpenCL Acceleration?
« on: October 13, 2017, 05:22:25 PM »
Hello everyone.  As we all know the generating dense point cloud step is now the longest step regardless if you have 2X Xeons with much ram.  I was wondering if this step is possible to also run on GPU's?  Thanks!

SAV

  • Hero Member
  • *****
  • Posts: 638
    • View Profile
Re: Generating Dense Point Cloud - OpenCL Acceleration?
« Reply #1 on: October 16, 2017, 09:16:46 AM »
Hi tweezlednutball,

That's what PhotoScan is doing already (see TOOLS > PREFERENCES > OpenCL). It uses your GPUs (graphics cards) to build the dense point cloud. No matter how quick/powerful your CPU is, you need graphics power to accelerate this step.

CPUs are used for image alignment. Note that since version 1.3. image alignment is actually done on both CPU and GPU. Hence it is probably better to invest in GPU power than CPU power.

Regards,
SAV


Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 8955
    • View Profile
Re: Generating Dense Point Cloud - OpenCL Acceleration?
« Reply #2 on: October 16, 2017, 10:50:49 AM »
Currently GPU can be utilized for image matching (first step of Align Photos stage - includes feature points detection, pre-selection and image matching itself) and depth maps reconstruction (first step of Dense Cloud Stage).

Version 1.4 is using GPU for Mesh Refinement operation and during the new Build Mesh method (also for depth maps reconstruction step).

Other processing steps are performed on CPU only.
Best regards,
Alexey Pasumansky,
AgiSoft LLC

tweezlednutball

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: Generating Dense Point Cloud - OpenCL Acceleration?
« Reply #3 on: October 24, 2017, 12:56:51 AM »
Currently GPU can be utilized for image matching (first step of Align Photos stage - includes feature points detection, pre-selection and image matching itself) and depth maps reconstruction (first step of Dense Cloud Stage).

Version 1.4 is using GPU for Mesh Refinement operation and during the new Build Mesh method (also for depth maps reconstruction step).

Other processing steps are performed on CPU only.

Yes I understand.  What I mean is it possible to make the second step of Dense Cloud GPU accelerated?  This step has become by far the largest compute time of all regardless If the most high end CPU's are used.

Yoann Courtois

  • Sr. Member
  • ****
  • Posts: 252
  • Engineer in Geodesy, Cartography and Surveying
    • View Profile
Re: Generating Dense Point Cloud - OpenCL Acceleration?
« Reply #4 on: October 25, 2017, 09:53:03 AM »
Hi tweezlednutball,

Indeed, since a while, the dense cloud generation (2d step of dense cloud stage) has changed a bit. The limit of simultaneous pictures taken into account for it (called depth filtering limit), which was 50 before, as been removed.
So if you handle modeling from a set of pictures with a high level of redundancy (number of pictures that look toward the same place), it increased a lot the calculation time because PhotoScan try to filter with a super high amount of data.

With the following piece of code (given by Alexey in another topic), you will be able to define your own limit (N) before starting the dense cloud processing. Be careful not to use a value lower than 50-60 to keep a correct filtering.
Code: [Select]
PhotoScan.app.settings.setValue('main/depth_filtering_limit', N)
Regards
--
Yoann COURTOIS
R&D Engineer in photogrammetric process and mobile application
Lyon, FRANCE
--

tweezlednutball

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: Generating Dense Point Cloud - OpenCL Acceleration?
« Reply #5 on: November 28, 2017, 02:12:38 AM »
Hi tweezlednutball,

Indeed, since a while, the dense cloud generation (2d step of dense cloud stage) has changed a bit. The limit of simultaneous pictures taken into account for it (called depth filtering limit), which was 50 before, as been removed.
So if you handle modeling from a set of pictures with a high level of redundancy (number of pictures that look toward the same place), it increased a lot the calculation time because PhotoScan try to filter with a super high amount of data.

With the following piece of code (given by Alexey in another topic), you will be able to define your own limit (N) before starting the dense cloud processing. Be careful not to use a value lower than 50-60 to keep a correct filtering.
Code: [Select]
PhotoScan.app.settings.setValue('main/depth_filtering_limit', N)
Regards

Thank you very much for the tip!

As for my original question.  Is this step even possible to accelerate using OpenCL?

Yoann Courtois

  • Sr. Member
  • ****
  • Posts: 252
  • Engineer in Geodesy, Cartography and Surveying
    • View Profile
Re: Generating Dense Point Cloud - OpenCL Acceleration?
« Reply #6 on: November 28, 2017, 10:30:43 AM »
No problem  ;)

For the moment it's unfortunately not available  :-\

Regards
--
Yoann COURTOIS
R&D Engineer in photogrammetric process and mobile application
Lyon, FRANCE
--