Ошибки Elastix при использовании OpenCLFixedGenericImagePyramid
Наконец-то я смог скомпилировать Elastix с функциями OpenCL после компиляции правильных ITK (5.1.1) и OpenCL. Но когда я запускаю Elastix с моими изображениями и масками с включенными функциями OpenCL в файле конфигурации, происходит сбой со следующей ошибкой
Initialization of AdvancedMattesMutualInformation metric took: 0 ms.
Time spent in resolution 0 (ITK initialization and iterating): 0.001 s.
Stopping condition: Error in metric.
itk::ExceptionObject (0x7fcc68001540)
Location: "ElastixTemplate - Run()"
File: /home/fuzie/Documents/Speciale/code/elastix-build/InsightToolkit-5.1.1/Modules/Core/Common/include/itkImageConstIterator.h
Line: 210
Description: itk::ERROR: Region ImageRegion (0x7ffdc32ad8b0)
Dimension: 2
Index: [-9223372036854775808, 29]
Size: [4, 2]
is outside of buffered region ImageRegion (0x55794bfad4d0)
Dimension: 2
Index: [0, 0]
Size: [32, 32]
Error occurred during actual registration.
Errors occurred!
Когда я запускаю его исключительно на процессоре, он работает просто отлично. Я использую следующие параметры
// ********** Image Types
(FixedInternalImagePixelType "float")
(FixedImageDimension 3)
(MovingInternalImagePixelType "float")
(MovingImageDimension 3)
(UseBinaryFormatForTransformationParameters "false")
// ********** Components
(Registration "MultiResolutionRegistration")
// // CPU - pyramids
// (FixedImagePyramid "FixedSmoothingImagePyramid")
// (MovingImagePyramid "MovingSmoothingImagePyramid")
// GPU pyramids
(FixedImagePyramid "OpenCLFixedGenericImagePyramid")
(MovingImagePyramid "OpenCLMovingGenericImagePyramid")
(OpenCLFixedGenericImagePyramidUseOpenCL "true")
(OpenCLMovingGenericImagePyramidUseOpenCL "true")
(Interpolator "BSplineInterpolator")
(Metric "AdvancedMattesMutualInformation")
(Optimizer "StandardGradientDescent")
(ResampleInterpolator "FinalBSplineInterpolator")
(Transform "BSplineTransform")
(UseDirectionCosines "false")
// ********** Pyramid
// Total number of resolutions
(NumberOfResolutions 8)
// default schedule: isotropic upsampling with factor 2
// ********** Transform
(FinalGridSpacingInPhysicalUnits 12.0 12.0 12.0)
(GridSpacingSchedule 16.0 16.0 16.0 16.0 8.0 4.0 2.0 1.0)
(HowToCombineTransforms "Compose")
// ********** Optimizer
// Maximum number of iterations in each resolution level:
(MaximumNumberOfIterations 1000)
//SP: Param_a in each resolution level. a_k = a/(A+k+1)^alpha
(SP_a 10000.0)
//SP: Param_alpha in each resolution level. a_k = a/(A+k+1)^alpha
(SP_alpha 0.602)
//SP: Param_A in each resolution level. a_k = a/(A+k+1)^alpha
(SP_A 50.0)
// ********** Metric
//Number of grey level bins in each resolution level:
(NumberOfHistogramBins 32)
(FixedLimitRangeRatio 0.0)
(MovingLimitRangeRatio 0.0)
(FixedKernelBSplineOrder 1)
(MovingKernelBSplineOrder 3)
// ********** Several
(WriteTransformParametersEachIteration "false")
(WriteTransformParametersEachResolution "false")
(WriteResultImageAfterEachResolution "false")
(WriteResultImage "false")
(ShowExactMetricValue "false")
(ErodeMask "false")
// ********** ImageSampler
//Number of spatial samples used to compute the mutual information in each resolution level:
(ImageSampler "RandomSparseMask")
(NumberOfSpatialSamples 2000)
(NewSamplesEveryIteration "true")
(UseRandomSampleRegion "false")
// ********** Interpolator and Resampler
//Order of B-Spline interpolation used in each resolution level:
(BSplineInterpolationOrder 1)
//Order of B-Spline interpolation used for applying the final deformation:
(FinalBSplineInterpolationOrder 3)
//Default pixel value for pixels that come from outside the picture:
(DefaultPixelValue -1000)
// Resampler specific
// (Resampler "DefaultResampler")
(Resampler "OpenCLResampler")
(OpenCLResamplerUseOpenCL "true")
(ResultImageFormat "nii")
(ResultImagePixelType "float")
(CompressResultImage "true")
Любая идея, как это можно решить?
С уважением Якоб Полезно Бесполезно