openphotogrammetry / meshroomcl

MeshroomCL: An OpenCL implementation of photogrammetry with the Meshroom interface
Other
163 stars 8 forks source link

meshroomcl fails #52

Open selseyastro opened 1 year ago

selseyastro commented 1 year ago

PatchMatch::Problem

ref_image_idx: 0 src_image_idxs: 4 2 5 1 3 ....is the only indication of the problem? after that it does a patchmatch run

OpenCL platform : OpenCLon12 OpenCL device : Microsoft Basic Render Driver.

Then I get a red bar with no other errors. I am on version MeshroomCL 0.9.0 all the best John

revisionarian commented 1 year ago

Hi @selseyastro, could you post the full log for the MultiviewStereoCL node? To see the full log file, click on the MultiviewStereoCL node to highlight it (blue), and then click on the "Log" tab in the bottom righthand corner of the MeshroomCL window.

If you can post or attach the full log file here, we could better diagnose what the problem is.

selseyastro commented 1 year ago

Ok this is the log. Program called with the following parameters:

============================================================================== Image undistortion

Undistorting image [1/6] Undistorting image [2/6] Undistorting image [3/6] Undistorting image [4/6] Undistorting image [5/6] Undistorting image [6/6] Writing reconstruction... Writing configuration... Writing scripts... Elapsed time: 0.244 [minutes] Reading workspace... Reading configuration... Configuration has 6 problems...

============================================================================== Processing view 1 / 6

Reading inputs...

PatchMatch::Problem

ref_image_idx: 0 src_image_idxs: 4 2 5 1 3

PatchMatchOptions

max_image_size: 3200 gpu_index: 1001 depth_min: 0.930179 depth_max: 10.6053 window_radius: 5 window_step: 1 sigma_spatial: 5 sigma_color: 0.2 num_samples: 15 ncc_sigma: 0.6 min_triangulation_angle: 1 incident_angle_sigma: 0.9 num_iterations: 5 geom_consistency: 0 geom_consistency_regularizer: 0.3 geom_consistency_max_cost: 3 filter: 1 filter_min_ncc: 0.1 filter_min_triangulation_angle: 3 filter_min_num_consistent: 2 filter_geom_consistency_max_cost: 1 write_consistency_graph: 0

PatchMatch::Run

OpenCL platform : OpenCLOn12 OpenCL device : Microsoft Basic Render Driver

log.txt Thanks for help. John

selseyastro commented 1 year ago

Not sure why the log came out with caps in places so I attached it at the bottom as a txt file. Thanks John

revisionarian commented 1 year ago

Hi @selseyastro, thanks a lot for posting the log from the MultiviewStereoCL node! The most suspicious thing to me in the log is that your system is using the "OpenCLOn12" OpenCL platform. OpenCLOn12 is a software layer that maps OpenCL onto Direct3D 12, instead of using a native OpenCL driver. We have not ever tested MeshroomCL with OpenCLOn12, so I am not sure if it is going to work.

Can you install a native OpenCL driver on your system? What GPU (video card) do you have? Most AMD, NVIDIA, and Intel GPUs have native OpenCL drivers available.

Also, I noticed from the log messages that you appear to be using the "OpenCL MVS" Photogrammetry pipeline, which uses the original Meshroom StructureFromMotion node, rather than the default MeshroomCL OpenCL pipeline which uses the StructureFromMotionCL node. Is there a reason why you prefer the "OpenCL MVS" pipeline over the default?

selseyastro commented 1 year ago

Hi, Thanks for the rapid reply. Last point first: I used MVS because I saw an old post that said it fixed a bug in StructurefromMotion. I have an Intel UHD 600 chipset on an x64 based PC. 4 cores. I will look for an OpenCL driver. Regards John

selseyastro commented 1 year ago

Ok I have checked the device drivers list: There is a driver C:\Windows\System32\OpenCl.dll also one on C:\Windows\Syswow64\OpenCL.dll also 2 other Intel_openCL_ICD32.dll & also 64bit so I assume the OpenCL is installed. Regards, John

revisionarian commented 1 year ago

Hi John, it sounds like you might have multiple OpenCL platforms installed on your computer, and that MeshroomCL is choosing the wrong one (OpenCLon12) by default. We would prefer to use the Intel native OpenCL driver platform instead.

To see a list of the OpenCL platforms/devices available on your computer, click on either the "MultiviewStereoCL" node or the "StructureFromMotionCL" node in MeshroomCL. Then, select the "Attributes" tab in the lower right window pane. You should see an attribute named "Specify OpenCL devices" with a checkbox. Click the checkbox (on), and then a list labeled "OpenCL Devices" will appear below it. Can you post here the list of OpenCL devices that it shows?

When you enable the "Specify OpenCL devices" option in MeshroomCL, you can manually specify which OpenCL devices you want to use for processing. So, you should be able to disable the OpenCLon12 platform device, and enable an alternative (Intel) OpenCL device instead, if one is available.

Let me know which OpenCL devices are listed as available when you do this!

selseyastro commented 1 year ago

Ok I have selected the intel OpenCL in the list. There were 4 and 2 that I listed for the Intel UHD 600. So I selected the First Intel one. I will give it a try. Thanks, John

selseyastro commented 1 year ago

Getting errors in the cmd window? Still seems to be running for 120minutes. WARNING:root:Ignored NaN, Inf, or -Inf value. WARNING:root:Ignored NaN, Inf, or -Inf value. WARNING:root:Ignored NaN, Inf, or -Inf value. WARNING:root:Ignored NaN, Inf, or -Inf value. WARNING:root:Ignored NaN, Inf, or -Inf value. WARNING:root:Ignored NaN, Inf, or -Inf value. WARNING:root:Ignored NaN, Inf, or -Inf value. WARNING:root:Ignored NaN, Inf, or -Inf value. WARNING:root:Ignored NaN, Inf, or -Inf value. WARNING:root:Ignored NaN, Inf, or -Inf value.

selseyastro commented 1 year ago

Ok It is working!! Tried it with the monster tree set. Thanks John

revisionarian commented 1 year ago

Great, glad to hear that MeshroomCL is working for you! Can you tell me what the 4 OpenCL devices listed were? If you want, you can enable multiple OpenCL devices at the same time - for example, selecting two of the listed UHD 600 devices might perform the processing twice as fast.

We designed MeshroomCL with discrete GPUs (e.g. AMD or NVIDIA cards) in mind, so performance might be fairly slow on an integrated laptop GPU like the UHD 600. However, we want MeshroomCL to work on any OpenCL-compatible system. In a future version of MeshroomCL, we will try to solve the problems with the "OpenCLon12" platform, so that the default behavior on systems with that driver is smoother.

Let us know if you encounter any further problems!