CisstICP
Source code and data for registration algorithms developed within the Most-Likely Point and Deformable Most-Likely Point paradigms
Install / Use
/learn @AyushiSinha/CisstICPREADME
Most-Likely Point Paradigm
This repository provides data and source code for algorithms developed within the Most-Likely Point and Deformable Most-Likely Point paradigms described in the following papers:
IMLP: Seth D. Billings, Emad M. Boctor, and Russell H. Taylor, "Iterative Most-Likely Point Registration (IMLP): A Robust Algorithm for Computing Optimal Shape Alignment", PLOS One 10 (3): e0117688 (2015)
IMLOP: Seth D. Billings, Russell H. Taylor, "Iterative most likely oriented point registration", Medical Image Computing and Computer-Assisted Intervention, Lecture Notes in Computer Science 8673: 178--185 (2014)
G-IMLOP: Seth D. Billings, Russell H. Taylor, "Generalized iterative most likely oriented-point (G-IMLOP) registration", International Journal of Computer Assisted Radiology and Surgery 10 (8): 1213--1226 (2015)
P-IMLOP: Seth D. Billings, Hyun J. Kang, Alexis Cheng, Emad M. Boctor, Peter Kazanzides, Russell H. Taylor, "Minimally invasive registration for computer-assisted orthopedic surgery: combining tracked ultrasound and bone surface points via the P-IMLOP algorithm", International Journal of Computer Assisted Radiology and Surgery 10 (6): 761--771 (2015)
<!-- **V-IMLOP**: Seth D. Billings, Ayushi Sinha, Austin Reiter, Simon Leonard, Masaru Ishii, Gregory D. Hager, Russell H. Taylor, "Anatomically Constrained Video-CT Registration via the V-IMLOP Algorithm", Medical Image Computing and Computer-Assisted Intervention, Lecture Notes in Computer Science 9902: 133--141 (2016) -->D-IMLP: Ayushi Sinha, Seth D. Billings, Austin Reiter, Masaru Ishii, Gregory D. Hager, Russell H. Taylor, "The deformable most likely point paradigm", TBP
D-IMLOP: Ayushi Sinha, Seth D. Billings, Austin Reiter, Masaru Ishii, Gregory D. Hager, Russell H. Taylor, "The deformable most likely point paradigm", TBP
GD-IMLOP: Ayushi Sinha, Xington Liu, Austin Reiter, Masaru Ishii, Gregory D. Hager, Russell H. Taylor, "Endoscopic navigation in the absence of CT imaging", Medical Image Computing and Computer-Assisted Intervention, Lecture Notes in Computer Science (2018)
NOTE: This repository also contains an implementation of ICP, directional ICP and robust ICP. Other algorithms evaluated in these papers, for which source code is not included in this repository, include:
-
GICP
downloaded from http://www.robots.ox.ac.uk/~avsegal/generalized_icp.html
see IMLP paper for minor modifications required for termination condition and to set covariance matrices
-
CPD
downloaded from https://sites.google.com/site/myronenko/research/cpd
see IMLP paper for minor modifications required for termination condition
NOTE: To run experiments described in the IMLP paper, go to https://github.com/sbillin/IMLP. Compile the source code following instructions there (or here) and run the experiments in the PLOSONE folder.
Required Software Dependencies
-
CMake (http://www.cmake.org)
-
Visual Studio for Windows (http://www.visualstudio.com/downloads/download-visual-studio-vs)
application was developed in Visual Studio 2013
-
CISST Libraries (https://github.com/jhu-cisst/cisst/)
must compile this from source (instructions below)
-
WildMagic5 Libraries (http://www.geometrictools.com/Downloads/Downloads.html)
requires: Wm5Core.lib, Wm5Mathematics.lib
must compile these from source (instructions below)
included in
dependenciesfolder -
DLib (http://dlib.net/)
for iterative solutions to our minimization problems
included in
dependenciesfolder -
Numerical Recipes (http://numerical.recipes/)
needed only for G-IMLOP and GD-IMLOP algorithm; other algorithms don't use it and the code can be built without it
-
RPly Library
for reading/writing PLY files
included in
dependenciesfolder -
PLY_IO Library (if using Matlab)
for reading/writing PLY files in Matlab
included in
dependencies/Matlab Dependenciesfolder
NOTE: Visual Studio 12 2013 Win64 was used successfully when creating this README. Visual Stuido 14 2015 Win64 did not work due to errors such as cisstNetlib_f2c.lib(endfile.obj) : error LNK2001: unresolved external symbol __imp_sprintf. This issue has not been solved and it is recommended to build the cisstICP application using Visual Studio 2013.
Instructions for Compiling Dependencies
CISST Libraries:
https://github.com/jhu-cisst/cisst/
-
Clone
cisstrepository from githubgit clone https://github.com/jhu-cisst/cisst/
only jhu-cisst/cisst required (not cisst-saw, etc.)
-
Create a build directory
cisst_buildalongside (not inside) thecisstdirectory that was cloned from git -
Create Visual Studio solution for CISST Libraries using CMake <br />
run CMake on
cisstsource directory with build directory set tocisst_build-- check boxes for libraries: CISST_cisstCommon, CISST_cisstVector, CISST_cisstNumerical, CISST_cisstOSAbstraction -- uncheck boxes for cisstMultitask, cisstMutliTask_, cisstParameterTypes, cisstRobot_ -- check box for CISST_HAS_CISSTNETLIBconfigure with
Visual Studio 12 2013 Win64as the compiler -- check box: CISSTNETLIB_DOWNLOAD_NOWconfigure and generate project
open the
cisst_build/cisst.slnfile and build in Visual Studio with build mode set toReleaseandx64
WildMagic5 Libraries:
http://www.geometrictools.com/Downloads/Downloads.html These libraries are used solely for the closed-form implementation of computing the decomposition of a 3x3 covariance matrix. The libraries are no longer available online from their author, but they are included in the dependencies folder of the cisstICP repo.
-
Build WildMagic5 <br />
extract source from the
WildMagic5p13.zipfile located in thedependenciesfolderopen the
GeometricTools\WildMagic5\WildMagic5Wgl_VC120.slnfile in Visual Studio and set build configurations toReleaseandx64compile Wm5Core.lib and Wm5Mathematics.lib by right clicking
LibCore_VC120andLibMathematics_VC120and selecting build -
See website of WildMagic5 for more instructions on this
Dlib Libraries:
- Extract source from the
dlib-a8.6.7zfile located in thedependenciesfolder
Numerical Recipes:
- License to use the source code for this must be bought (usually available on amazon along with the book)
- Contact sinha(at)jhu(dot)edu for modifications in numerical recipes code once license is obtained
RPly Libraries:
- Extract source from the
rply-1.1.4.zipfile located in thedependenciesfolder
PLY_IO Libraries:
If using Matlab
- Extract source from the
PLY_IOfile located in thedependencies/Matlab Dependenciesfolder
Instructions for Compiling Source Code
These instructions are based on the Windows platform with VisualStudio 2013. The output is a static library (cisstICP.lib).
Compile cisstICP Library:
-
Clone
cisstICPrepository from githubgit clone https://github.com/AyushiSinha/cisstICP
-
Create a build directory
cisstICP_buildwithin thecisstICPdirectory that was cloned from git -
run CMake on source directory
cisstICPspecify paths to cisstICP source code and build directories (
cisstICPandcisstICP_build) and configureset cisst_DIR to location of CISST Library build
cisst/cisst_buildand configure again. If the compiled CISST libraries were found correctly by CMake, thenCISST_USE_FILEshould now automatically contain a path to the fileUsecisst.cmakespecify path to WildMagic5 base directory by setting
WM5_BASE_DIRtocisstICP/dependencies/WildMagic5p13/GeometricTools/WildMagic5(other WildMagic5 fields should auto-detect)set
DLIB_INCLUDEto the path to the extracted dlib folderset
RPLY_DIRto the path tocisstICP/dependencies/rply-1.1.4optionally, check
USE_EXTRA_ALGORITHMSto include IMLP_CP (closest point), IMLP_MD (mahalanobis distance) and RobustICP in the buildconfigure and generate project
-
Build cisstICP library in Visual Studio <br />
open
cisstICP_build/cisstICP.slnbuild with build mode set to
Releaseandx64
Compile cisstICP_App:
-
Create a build directory
cisstICP_App_buildwithin thecisstICP_Appdirectoryspecify paths to cisstICP source code and build directories (
cisstICP_AppandcisstICP_App_build) -
run CMake on source directory
cisstICP_Appand configure <br />set
cisst_DIRto the path to thecisst/cisst_buildfolder and configure again. If the compiled CISST libraries were found correctly by CMake, thenCISST_USE_FILEshould now automatically contain a path to the fileUsecisst.cmakeset
DLIB_INCLUDEto the path to the extracted dlib folder.set
WM5_BASE_DIRto the path tocisstICP/dependencies/WildMagic5p13/GeometricTools/WildMagic5set
MATLAB_ENGINE_INCLUDE_DIRandMATLAB_ENGINE_LIB_DIRto your system paths for Matlab, such asC:/Program Files/MATLAB/R2015a/extern/includeandC:/Program Files/MATLAB/R2015a/extern/lib/win64/microsoft(these paths will change depending on the Matlab version).set
cisstICP_LIBto the path to/cisstICP/cisstICP_build/Release/cisstICP.libset
cisstICP_LIB_INCLUDEto the path tocisstICP/cisstICPconfigure again and Generate
-
Build cisstICP_App library in Visual Studio <br />
open the
cisstICP_App_build/cisstICP_App.slnfile in Visual Studio, set the build options to 'Release' and 'x64', and build the solution.
Compile matlabICP Library:
This library provides a Matlab interface to the C++ code of the cisstICP Library. This library is not maintained by me.
- Create a
matlabICP_buildfolder alongside thematlabICPfolder in the cloned re
Related Skills
node-connect
353.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
