Computer assisted medical intervention toolkit Discover the framework and make your first steps with it. Nicolas SAUBAT Vincent LEAL 1/31
Simple plan: 1. General presentation of 2. Case studies: users, developers 2/31
1. General presentation of 3/31
Visualize Acquire Perception (Apprehend) Guide Register and Fuse Data Decision (Comprehend) Action (Do) Train Model Evaluate 4/31
http://camitk.imag.fr 5/31
Aims of Avoid Reinventing The Wheel Gather Knowledge & Know-How Accelerate Integration of New Research Projects/Ideas Support for Lecture & Dissemination Facilitate Sharing and Transfer (lab & industry) Provide Prototype for Clinicians 6/31
Compared to other frameworks 3D Slicer MevisLab Creatools, Gimias, MedInria, MITK... are Mainly dedicated to image analysis Strongly based on a processing pipeline Not allowing easy prototyping (no wizard, no strong separation between concepts, no default behaviour)' 7/31
architecture preview Goal: prototype CAMI applications 8/31
extensions / plugins 4 types of extensions Action (Algorithm) Component (Data) Application (End User GUI) Viewer (Display & Interaction) 9/31
component components allow to handle data type Components can be used to connect a new device to view its data, control its parameters Examples: Import.obj format View 3D Ultrasound images Connect a medical robot or sensor Connect a motion tracker device to interact with the 3D viewer 10/31
action actions are extensions that apply algorithms on components provides open-source actions (image processing, image registration, biomechanical deformation...) 11/31
Applications and viewers viewers allow to display, represent data and interact with them. applications are Graphical user interfaces composed of viewers Example: IMP 12/31
How to create extensions? We provide a glue (in blue) to wrap / interface your code within. The glue is generated thanks to an application: the wizard => The integration of your code is minimal thanks to the glue => You don't rewrite it all in order to integrate it into => You keep working on your own code Glue Your Code 13/31
How to migrate an existing project to? Compiled binaries Source code Algo [dynamic library] Your code Image opening [static library] Your code Application [main.cpp] Your code 14/31
Your project organization => CEP A CAMI project using is composed of several extensions: actions, components, applications and viewers. We gather them in a same place => CEP ( Extension Project). Each user (PhD students ) work on their own CEP. Example of CEP : Robacus 15/31
Creating CEP, extensions => Wizard To create a CEP or extensions inside a CEP => we provide a Wizard Automatically generate the source code to wrap / interface (the glue ) your code within 16/31
libraries dependencies Vtk Qt GUI Open GL Operating System Linux/Windows/Mac.. 17/31
CMake allows to be multiplatform CmakeLists.txt Platform build system (configure/choose Option/generate) 18/31
CMake allows to be multiplatform CmakeLists.txt Platform build system (configure/generate) Executable Or Library Platform C++ Tools (MSVC, gcc, mingw...) 19/31
Download, but what's inside? Several opensource extensions: Components : volumic images (DICOM,...), 3D images (.off,.vtk ) etc. Actions : basic image processing (ITK ), biomechanical simulation (MML 2 ready to use applications: IMP & ASM 20/31
IMP : the all in one application 21/31
ASM = Action State Machine 22/31
Develop with LGPL license Guarantees availibility and independence Allows different level of sharing (other labs/industrial partners) You decide if your work is opensource or copyrighted source code is hosted on 2 servers using SVN: Forge (opensource code) :, incubator. SVN-TIMC (copyrighted TIMC source code) : CEPs, incubator. Incubator : a place where your code becomes ready to be shared (opensource or copyrighted) Incubation... Ready Private/Licensed... 23/31
Develop with Where do I start? Create a CEP for your project that you share between your team Host your CEP in an incubator (on a SVN server) depending of your project's license: License Incubator's location opensource Forge copyrighted svn-timc = private TIMC svn server Use the wizard to easily add extensions to it. Configure your CEP with CMake => You obtain ready to compile codes for your platform (Visual Studio 201X solution, Linux Makefiles etc.) Compile your code using your IDE (Visual Studio, KDevelop etc.) Load your built extensions within IMP to test them! 24/31
Develop with Do I need to create my own application? Mostly NO! According to a study, 95% of the users are happy with IMP (really happy!). IMP features the most necessary tools (3D images and volumic images viewers, properties editor, actions widget with parameters etc.) and can be tuned! 25/31
Develop with Documentation: WIKI : Technical & installation tutorials, FAQ, Tips & Tricks API Documentation: from the website You have a problem. How to solve it? 1. Check the FAQ (wiki) or pages about your problem (wiki search engine). 2. Check the forum (forge) 3. Fire a bug in the bugs tracker (forge) or ask for a new feature (in the features request, forge). 4. Ask the team. 26/31
Team Pierre-Alain Barraud 27/31
2. Case study: the brain shift 28/31
Case study : Brain shift You are a team working on the brain shift Group 1 Group 2 Group 3 A doctor brings you an MRI image of the brain Your goal is to segment it in order to obtain a 3D representation of the brain. 29/31
Team plan Image MRI Group 3 Group 1 Action 1 : Binarization... Mesh decimated Visualization Action 4 : Decimation of the mesh Action 2 : Segmentation Group 2 Action 3 : Create mesh Mesh of the brain Image binarized Image segmented 30/31
3. Individual work 31/31