ODM Failed at OpenSFM Feature Stage with GPU

ODM GPU Container fails in Opensfm Feature stage with the following error:

2021-11-19 10:38:36,112 DEBUG: No segmentation for 305839.tif, no features masked.
2021-11-19 10:39:24,960 INFO: Finished reading images
Traceback (most recent call last):
File “/code/SuperBuild/install/bin/opensfm/bin/opensfm_main.py”, line 15, in
commands.command_runner(
File “/code/SuperBuild/install/bin/opensfm/opensfm/commands/command_runner.py”, line 38, in command_runner
command.run(data, args)
File “/code/SuperBuild/install/bin/opensfm/opensfm/commands/command.py”, line 12, in run
self.run_impl(data, args)
File “/code/SuperBuild/install/bin/opensfm/opensfm/commands/detect_features.py”, line 11, in run_impl
detect_features.run_dataset(dataset)
File “/code/SuperBuild/install/bin/opensfm/opensfm/actions/detect_features.py”, line 68, in run_dataset
parallel_map(process, arguments, processes, 1)
File “/code/SuperBuild/install/bin/opensfm/opensfm/context.py”, line 59, in parallel_map
res = Parallel(batch_size=batch_size)(delayed(func)(arg) for arg in args)
File “/usr/local/lib/python3.8/dist-packages/joblib/parallel.py”, line 1061, in call
self.retrieve()
File “/usr/local/lib/python3.8/dist-packages/joblib/parallel.py”, line 940, in retrieve
self._output.extend(job.get(timeout=self.timeout))
File “/usr/lib/python3.8/multiprocessing/pool.py”, line 771, in get
raise self._value
File “/usr/lib/python3.8/multiprocessing/pool.py”, line 125, in worker
result = (True, func(*args, **kwds))
File “/usr/local/lib/python3.8/dist-packages/joblib/_parallel_backends.py”, line 595, in call
return self.func(*args, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/joblib/parallel.py”, line 262, in call
return [func(*args, **kwargs)
File “/usr/local/lib/python3.8/dist-packages/joblib/parallel.py”, line 262, in
return [func(*args, **kwargs)
File “/code/SuperBuild/install/bin/opensfm/opensfm/actions/detect_features.py”, line 137, in process
run_detection(queue)
File “/code/SuperBuild/install/bin/opensfm/opensfm/actions/detect_features.py”, line 174, in run_detection
detect(image, image_array, segmentation_array, instances_array, data)
File “/code/SuperBuild/install/bin/opensfm/opensfm/actions/detect_features.py”, line 234, in detect
unmasked, keypoints = features.extract_features(
File “/code/SuperBuild/install/bin/opensfm/opensfm/features.py”, line 570, in extract_features
points, desc, keypoints = extract_features_sift_gpu(image, config, features_count)
File “/code/SuperBuild/install/bin/opensfm/opensfm/features.py”, line 354, in extract_features_sift_gpu
keypoints = get_sift_gpu().detect_image(image)
File “/code/SuperBuild/install/bin/opensfm/opensfm/sift_gpu.py”, line 65, in detect_image
return self.gpu_sift(image)
File “/usr/local/lib/python3.8/dist-packages/silx/opencl/sift/plan.py”, line 517, in keypoints
kp, descriptor = self._one_octave(octave)
File “/usr/local/lib/python3.8/dist-packages/silx/opencl/sift/plan.py”, line 633, in _one_octave
newcnt = self._compact(last_start)
File “/usr/local/lib/python3.8/dist-packages/silx/opencl/sift/plan.py”, line 766, in _compact
evt = self.kernels.get_kernel(“compact”)(self.queue, procsize, wgsize,
File “/usr/local/lib/python3.8/dist-packages/pyopencl/init.py”, line 887, in kernel_call
return self._enqueue(self, queue, global_size, local_size, *args, **kwargs)
File “”, line 8, in enqueue_knl_compact
pyopencl._cl.MemoryError: clEnqueueNDRangeKernel failed: MEM_OBJECT_ALLOCATION_FAILURE

Please advise here.

1 Like

Looks like maybe a vRAM issue:
SIFT_GPU fails with very large images (>11000 pixels wide) · Issue #1365 · OpenDroneMap/ODM (github.com)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.