Spherical Demons Registration of Spherical Surfaces

Ibanez, Luis1*,Audette, Michel,Yeo, B.T. Thomas,Goland, Polina
1.KITWARE Inc.
Abstract
Spherical Demons Registration of Spherical Surfaces

Abstract

As demonstrated by the example videos accompanying this submission of the multiresolution implementation of Spherical Demons, the registration appears reasonable. However, we are still unable to replicate the warps from the stable and well verified implementation of this algorithm url{http://sites.google.com/site/yeoyeo02/software/sphericaldemonsrelease}. We find the average warp discrepancies between the original implementation and ITK implementation to be about 5.3 mm on a sphere of radius 100.0 mm (note that we do not expect a 100% agreement because of implementation differences, but 5.3 mm is relatively large). The submission also includes cortical surface meshes of 39 subjects and the corresponding segmentation labels of the cortical surfaces. Ultimately, the best validation would be to compare the overlap of these segmentation labels after registration. We welcome fellow ITK developers to work on this. Please note that this ITK implementation of the algorithm is currently being reviewed and tested in the NAMIC Sandbox at: url{http://svn.na-mic.org/NAMICSandBox/trunk/QuadEdgeMeshSphericalDiffeomorphicDemonsRegistration/}. If you want access to the stable and well verified implementation of this algorithm, please use the MATLAB code available at: url{http://sites.google.com/site/yeoyeo02/software/sphericaldemonsrelease}. This document describes a contribution to the Insight Toolkit intended to support the process of performing deformable registration on two Meshes. The method implemented here is restricted to Meshes with a Spherical geometry and topology, and with scalar values associated to their nodes. The code described here is an implementation of the paper “Spherical Demons: Fast Diffeomorphic Landmark-Free Surface Registration” by Yeo, Sabuncu, Vercauteren, Ayache, Fischl and Golland [3, 4]. This paper is accompanied with the source code, input data, parameters and output data that we used for validating the algorithm described in this paper. This adheres to the fundamental principle that scientific publications must facilitate reproducibility of the reported results.

Keywords

DiffeomorphicLandmark-FreeDemons RegistrationQuadEdgeMesh
Manuscript
Source Code and Data

Source Code and Data

SphericalDemonsRegistration-2.0.1-SourceCMakeLists.txt547 BIJMacros.txt3.4 KBQuadEdgeMeshFieldSmoothingFiltersCMakeLists.txt1.9 KBCTestConfig.cmake240 BDocumentsCMakeLists.txt34 BReport001InsightArticle.cls4.1 KBCMakeLists.txt3.5 KBInsightJournal.ist220 BInsightJournal.bib3.6 KBInsightJournal.sty35.2 KBLambdaValueAnalysis.ods11 KBalgorithm.sty2.2 KBQuadEdgeMeshFieldSmoothingFilters.tex26.6 KBalgorithmic.sty5.4 KBamssymb.sty14.9 KBfancyhdr.sty14.4 KBfloatflt.sty10.8 KBfncychap.sty10.1 KBtimes.sty857 Bpicins.sty17.3 KBExamplesCMakeLists.txt439 BSmoothingMeshWithScalars.cxx2.4 KBSmoothingMeshWithVectors.cxx2.6 KBSourceCMakeLists.txt60 BitkQuadEdgeMeshScalarPixelValuesSmoothingFilter.h6.3 KBitkQuadEdgeMeshScalarPixelValuesSmoothingFilter.txx4.1 KBitkQuadEdgeMeshVTKPolyDataReader.h3.9 KBitkQuadEdgeMeshVTKPolyDataReader.txx8.3 KBitkQuadEdgeMeshVectorDataVTKPolyDataWriter.h3.9 KBitkQuadEdgeMeshVectorDataVTKPolyDataWriter.txx4 KBitkQuadEdgeMeshVectorPixelValuesSmoothingFilter.h8 KBitkQuadEdgeMeshVectorPixelValuesSmoothingFilter.txx5.6 KBTestingCMakeLists.txt8.4 KBScalarMeshRender.cxx6 KBVectorMeshRender.cxx6.9 KBitkFilterWatcher.h4.8 KBitkMeshGeneratorHelper2.h3.1 KBitkMeshGeneratorHelper.h5 KBitkMeshGeneratorHelper3.h2.8 KBitkMeshGeneratorHelper4.h2.7 KBitkMeshGeneratorHelperTest2.cxx1.4 KBitkMeshGeneratorHelperTest1.cxx1.7 KBitkMeshGeneratorHelperTest4.cxx1.5 KBitkMeshGeneratorHelperTest3.cxx1.6 KBitkMeshWriterHelper2.h1.6 KBitkMeshWriterHelper1.h1.5 KBitkQuadEdgeMeshScalarPixelValuesSmoothingFilterTest1.cxx3.9 KBitkQuadEdgeMeshVTKPolyDataReader1.cxx2 KBitkQuadEdgeMeshVTKPolyDataReader2.cxx2.1 KBitkQuadEdgeMeshVectorPixelValuesSmoothingFilterTest1.cxx4.6 KBUtilitiesKWStyleITK.kws.xml.in682 BCMakeLists.txt307 BITKFiles.txt.in100 BITKHeader.h695 BITKOverwrite.txt70 BKWStyle.cmake3.6 KBQuadEdgeMeshRigidRegistrationCTestConfig.cmake240 BCMakeLists.txt2.5 KBDataInputSimpleSurface1.vtk38.5 KBSimpleSurface1Small.vtk41.7 KBSimpleSurface2.vtk38.5 KBSimpleSurface2Small.vtk41.7 KBDocumentsCMakeLists.txt34 BReport001CMakeLists.txt2.9 KBClassHierarchy.fig1.1 KBInsightArticle.cls4.1 KBInsightJournal.bib3.6 KBInsightJournal.ist220 BInsightJournal.sty35.2 KBInterpolatorsClassHierarchy.fig1.1 KBMetricsClassHierarchy.fig836 BQuadEdgeMeshRigidRegistration.tex24.2 KBalgorithm.sty2.2 KBalgorithmic.sty5.4 KBamssymb.sty14.9 KBfancyhdr.sty14.4 KBfloatflt.sty10.8 KBfncychap.sty10.1 KBtimes.sty857 Bpicins.sty17.3 KBExamplesCMakeLists.txt2.3 KBConvertFreeSurferBinarySurfaceToVTKSurface.cxx2.1 KBMeanSquaresMeshToMeshMetricRegistration1.cxx7.1 KBMeanSquaresMeshToMeshMetricRegistrationWithMonitor1.cxx8.1 KBSourceCMakeLists.txt60 BitkFreeSurferBinarySurfaceReader.h5.2 KBitkFreeSurferBinarySurfaceReader.txx12 KBitkInterpolateMeshFunction.h4.7 KBitkInterpolateMeshFunction.txx2.5 KBitkLinearInterpolateMeshFunction.h6.6 KBitkLinearInterpolateMeshFunction.txx11.8 KBitkMeanSquaresMeshToMeshMetric.h4.9 KBitkMeanSquaresMeshToMeshMetric.txx9.6 KBitkMeshFunction.h3.8 KBitkMeshFunction.txx1.7 KBitkMeshToMeshMetric.h6.9 KBitkMeshToMeshMetric.txx3.5 KBitkMeshToMeshRegistrationMethod.h7.4 KBitkMeshToMeshRegistrationMethod.txx7.8 KBitkNearestNeighborInterpolateMeshFunction.h3.6 KBitkNearestNeighborInterpolateMeshFunction.txx2.3 KBitkPointLocator2.h3.9 KBitkPointLocator2.txx2.3 KBitkResampleQuadEdgeMeshFilter.h7.3 KBitkResampleQuadEdgeMeshFilter.txx6.8 KBitkTriangleBasisSystem.h1.9 KBitkTriangleBasisSystemCalculator.h3.6 KBitkTriangleBasisSystem.txx2.4 KBitkTriangleListBasisSystemCalculator.h3.5 KBitkTriangleBasisSystemCalculator.txx5.3 KBitkTriangleListBasisSystemCalculator.txx2.6 KBTesting.NoDartCoverageAffineRegistrationMonitor.cxx1.7 KBAffineRegistrationMonitor.h1.6 KBCMakeLists.txt9.5 KBGenerateRegularSphere.cxx2.5 KBRegistrationMonitor.cxx11.9 KBRegistrationMonitor.h4.5 KBitkFreeSurferBinarySurfaceReaderTest1.cxx4.1 KBitkFreeSurferBinarySurfaceReaderTest2.cxx3.3 KBitkImageToImageRotationRegistrationTest.cxx8 KBitkLinearInterpolateMeshFunctionTest1.cxx3.5 KBitkLinearInterpolateMeshFunctionTest2.cxx9 KBitkLinearInterpolateMeshFunctionTest3.cxx9.4 KBitkLinearInterpolateMeshFunctionTest4.cxx7.9 KBitkMeanSquaresMeshToMeshMetricTest1.cxx7.1 KBitkMeanSquaresMeshToMeshMetricTest2.cxx7.1 KBitkMeanSquaresMeshToMeshMetricTest3.cxx7.7 KBitkMeshFunctionTest1.cxx2.2 KBitkMeshGeneratorHelper.h5.8 KBitkMeshToMeshMetricTest1.cxx6 KBitkMeshToMeshRegistrationMethodTest1.cxx6 KBitkMeshToMeshRegistrationMethodTest2.cxx9.2 KBitkMeshToMeshRegistrationMethodTest3.cxx5.6 KBitkNearestNeighborInterpolateMeshFunctionTest1.cxx3.1 KBitkPointLocator2Test1.cxx3.2 KBitkQuadEdgeMeshKdTreeGeneratorTest.cxx3.9 KBitkRegularSphereQuadEdgeMeshSourceTest1.cxx3.5 KBitkTestingMacros.h2.4 KBitkTriangleBasisSystemTest1.cxx3.7 KBitkTriangleBasisSystemCalculatorTest1.cxx3.1 KBitkTriangleListBasisSystemCalculatorTest1.cxx3.8 KBUtilitiesKWStyleCMakeLists.txt307 BITK.kws.xml.in682 BITKFiles.txt.in100 BITKHeader.h695 BITKOverwrite.txt70 BKWStyle.cmake3.6 KBQuadEdgeMeshSphericalDiffeomorphicDemonsRegistrationCTestConfig.cmake240 BCMakeLists.txt2.4 KBDataInputRigidRegistrationSimpleSurface2to1Small.vtk40.4 KBRigidRegistrationSimpleSurface2to1.vtk38.6 KBSimpleSurface1lh.output22.5 KBREADME.txt353 Blh.sphere22.5 KBlh.sulc2.5 KBSimpleSurface1.vtk38.5 KBSimpleSurface2lh.sphere22.5 KBlh.sulc2.5 KBSimpleSurface1Small.vtk41.7 KBSimpleSurface2.vtk38.5 KBSimpleSurface2Small.vtk41.7 KBfixedMeshWithScalarsIC1.vtk803 BfixedMeshWithScalarsIC2.vtk2.9 KBfixedMeshWithScalarsIC3.vtk12.7 KBfixedMeshWithScalarsIC4.vtk53.9 KBmovingMeshWithScalarsIC1.vtk803 BmovingMeshWithScalarsIC2.vtk2.9 KBmovingMeshWithScalarsIC3.vtk12.7 KBmovingMeshWithScalarsIC4.vtk53.9 KBDocumentsCMakeLists.txt90 BReport001CMakeLists.txt3.4 KBInsightArticle.cls4.1 KBInsightJournal.ist220 BInsightJournal.bib6.2 KBInsightJournal.sty35.2 KBQuadEdgeMeshSphericalDiffeomorphicDemonsRegistration.tex17 KBalgorithm.sty2.2 KBalgorithmic.sty5.4 KBamssymb.sty14.9 KBfancyhdr.sty14.4 KBfloatflt.sty10.8 KBfncychap.sty10.1 KBpicins.sty17.3 KBtimes.sty857 BReport002CMakeLists.txt3.2 KBQuadEdgeMeshSphericalDiffeomorphicDemonsRegistration2.tex16.4 KBReport003CMakeLists.txt2.6 KBQuadEdgeMeshSphericalDiffeomorphicDemonsRegistration3.tex4.8 KBExamplesCMakeLists.txt21.6 KBGenerateRegularSphere.cxx2.6 KBMultiResolutionRegistration2.cxx8.9 KBMultiResolutionRegistration1.cxx38.2 KBQuadEdgeMeshSimilarityCalculator.cxx2.7 KBQuadEdgeMeshSphericalDiffeomorphicDemonsFilter1.cxx5.8 KBQuadEdgeMeshSphericalDiffeomorphicDemonsFilter2.cxx4.4 KBQuadEdgeMeshSphericalRMSDistanceMetric.cxx4.9 KBReadFreesurferBinarySurfaceWriteVTKMesh.cxx3 KBResampleMeshUsingRegularSphere.cxx3.2 KBRigidAndDemonsRegistration.cxx14.8 KBScalarQuadEdgeMeshHistogram.cxx4 KBSmoothingMeshWithScalars.cxx2.4 KBSourceCMakeLists.txt60 BitkAssignScalarValuesQuadEdgeMeshFilter.h3.4 KBitkAssignScalarValuesQuadEdgeMeshFilter.txx4.4 KBitkDeformQuadEdgeMeshFilter.h5.3 KBitkDeformQuadEdgeMeshFilter.txx7 KBitkDeformationFieldFromTransformMeshFilter.h3.8 KBitkDeformationFieldFromTransformMeshFilter.txx3.9 KBitkHistogramMatchingQuadEdgeMeshFilter.h6.7 KBitkHistogramMatchingQuadEdgeMeshFilter.txx11.9 KBitkIcosahedralRegularSphereMeshSource.h4.7 KBitkLinearInterpolateDeformationFieldMeshFunction.h4.3 KBitkIcosahedralRegularSphereMeshSource.txx10 KBitkLinearInterpolateDeformationFieldMeshFunction.txx3.6 KBitkMultiResolutionQuadEdgeMeshSphericalDiffeomorphicDemonsFilter.h10.6 KBitkMultiResolutionQuadEdgeMeshSphericalDiffeomorphicDemonsFilter.txx16.3 KBitkNodeScalarGradientCalculator.h10.1 KBitkNodeScalarGradientCalculator.txx11.1 KBitkNodeVectorJacobianCalculator.h10.3 KBitkNodeVectorJacobianCalculator.txx11.6 KBitkNormalizeScalarsQuadEdgeMeshFilter.h3 KBitkNormalizeScalarsQuadEdgeMeshFilter.txx5.2 KBitkQuadEdgeMeshGenerateDeformationFieldFilter.h3.5 KBitkQuadEdgeMeshGenerateDeformationFieldFilter.txx6 KBitkQuadEdgeMeshSimilarityCalculator.h6 KBitkQuadEdgeMeshSimilarityCalculator.txx7 KBitkQuadEdgeMeshSphericalDiffeomorphicDemonsFilter.h22 KBitkQuadEdgeMeshSphericalDiffeomorphicDemonsFilter.txx46.5 KBitkQuadEdgeMeshSphericalDiffeomorphicDemonsRegistrationConfigure.h.in876 BitkReplaceDestinationPointsQuadEdgeMeshFilter.h3.5 KBitkReplaceDestinationPointsQuadEdgeMeshFilter.txx5.3 KBitkResampleDestinationPointsQuadEdgeMeshFilter.h7.2 KBitkResampleDestinationPointsQuadEdgeMeshFilter.txx7.1 KBitkRescaleScalarsQuadEdgeMeshFilter.h3.9 KBitkRescaleScalarsQuadEdgeMeshFilter.txx4.5 KBitkScalarQuadEdgeMeshToListAdaptor.h3.3 KBitkScalarQuadEdgeMeshToListAdaptor.txx2.9 KBitkWarpQuadEdgeMeshFilter.h5.1 KBitkWarpQuadEdgeMeshFilter.txx7.3 KBTesting.NoDartCoverageCMakeLists.txt19.5 KBDeformableAndAffineRegistrationMonitor.h2.5 KBDeformableRegistrationMonitor.h1.6 KBDeformableAndAffineRegistrationMonitor.txx7.9 KBDeformableRegistrationMonitor.txx3.5 KBMeshRender.cxx6 KBMultiResolutionDeformableAndAffineRegistrationMonitor.h2.3 KBMultiResolutionDeformableAndAffineRegistrationMonitor.txx2.5 KBMultiResolutionDeformableAndAffineRegistrationMonitorWithTargetTracking.h3 KBMultiResolutionDeformableAndAffineRegistrationMonitorWithTargetTracking.txx6 KBScalarMeshRender.cxx6 KBVectorMeshRender.cxx6.9 KBitkAssignScalarValuesQuadEdgeMeshFilterTest1.cxx2.8 KBitkFilterWatcher.h4.8 KBitkHistogramMatchingQuadEdgeMeshFilterTest.cxx3.7 KBitkLinearInterpolateDeformationFieldMeshFunctionTest1.cxx4.1 KBitkMeshGeneratorDerivativeHelper.h7.3 KBitkMeshGeneratorHelper5.h3.2 KBitkMeshGeneratorHelper6.h2.6 KBitkMeshGeneratorHelperTest5.cxx1.6 KBitkMeshGeneratorHelperTest6.cxx1.5 KBitkNodeScalarGradientCalculatorTest1.cxx6.9 KBitkNodeScalarGradientCalculatorTest2.cxx8.8 KBitkNodeVectorJacobianCalculatorTest2.cxx11.7 KBitkNodeVectorJacobianCalculatorTest1.cxx7 KBitkNormalizeScalarsQuadEdgeMeshFilterTest1.cxx2.7 KBitkQuadEdgeMeshGenerateDeformationFieldFilterTest1.cxx3.8 KBitkQuadEdgeMeshSimilarityCalculatorTest.cxx3.2 KBitkQuadEdgeMeshSphericalDiffeomorphicDemonsFilterTest1.cxx7.3 KBitkQuadEdgeMeshSphericalDiffeomorphicDemonsFilterTest2.cxx7.3 KBitkResampleDestinationPointsQuadEdgeMeshFilterTest1.cxx7.6 KBitkRescaleScalarsQuadEdgeMeshFilterTest.cxx2.4 KBitkScalarQuadEdgeMeshToListAdaptorTest1.cxx4 KBitkVersorOperationsTest1.cxx1.6 KBitkWarpQuadEdgeMeshFilterTest.cxx3.3 KBUtilitiesKWStyleCMakeLists.txt307 BITK.kws.xml.in682 BITKFiles.txt.in100 BITKHeader.h695 BITKOverwrite.txt70 BKWStyle.cmake3.6 KBVideoffmpeggenerateAllMovies.sh290 BgenerateMovieHighQuality.sh204 B

Select a file to preview