Daniel Blezek, Jesus Caban, Brad Lowkamp, Dan Muller, Fabrice de Chaumont, Julien Michel, Harvey...

download Daniel Blezek, Jesus Caban, Brad Lowkamp, Dan Muller, Fabrice de Chaumont, Julien Michel, Harvey Cline, Gabe Hart, Ghassam Hamarech, John Galeotti, Raghu.

If you can't read please download the document

description

Complexity Powerful but complex Powerful but complex Steep learning curve Steep learning curve Mainly C++ Mainly C++ 2 pages of GCC error messages 2 pages of GCC error messages ITK often unused ITK often unused But it’s the best... But it’s the best... 3

Transcript of Daniel Blezek, Jesus Caban, Brad Lowkamp, Dan Muller, Fabrice de Chaumont, Julien Michel, Harvey...

Daniel Blezek, Jesus Caban, Brad Lowkamp, Dan Muller, Fabrice de Chaumont, Julien Michel, Harvey Cline, Gabe Hart, Ghassam Hamarech, John Galeotti, Raghu Machiraju, Hans Johnson, Wes Turner, Luis Ibanez, Terry Yoo SimpleITK Status Problem 2 Complexity Powerful but complex Powerful but complex Steep learning curve Steep learning curve Mainly C++ Mainly C++ 2 pages of GCC error messages 2 pages of GCC error messages ITK often unused ITK often unused But its the best... But its the best... 3 Audience Students Students Grad students Grad students Researchers Researchers Microscopy Microscopy Computer vision Computer vision Remote sensing Remote sensing Application developers Application developers 4 Goals Simple Simple On ramp On ramp Wrapping Wrapping Integration Integration In apps In apps With ITK, VTK, etc With ITK, VTK, etc Extensible Extensible 5 Survey Says! 214 respondents 214 respondents Takeaways Takeaways Compiled packages Compiled packages 3D & 4D 3D & 4D Out of core processing Out of core processing Object model Object model char, short, float/double, vector char, short, float/double, vector Visualization Visualization 6 Gabe Hart Decisions API API Datatypes Datatypes Dimensionality Dimensionality Pipeline? Pipeline? Out of core processing Out of core processing Wrapping Wrapping Distribution Distribution 7 Strawman Proposal Object model Object model 3D images (& slice-by-slice for 2D) 3D images (& slice-by-slice for 2D) 4D as vector of images 4D as vector of images char, short, float (double?) char, short, float (double?) No exposed pipeline No exposed pipeline Out of core orchestration framework Out of core orchestration framework VOI readers/writers VOI readers/writers Call list of filters / handle boundaries Call list of filters / handle boundaries SWIG wrapping SWIG wrapping 8 API Procedural / functional? Procedural / functional? 9 Data types Which to support? Which to support? Scalar in all filters? Scalar in all filters? Vector in limited set? Vector in limited set? How to support? How to support? Dynamic loading? Dynamic loading? Compile time configured? Compile time configured? Template meta programming Template meta programming 10 Dimensionality 3D critical 3D critical 4D nice 4D nice How to support? How to support? 4D == vector of 3D images? 4D == vector of 3D images? 4D == 3D with vector pixels? 4D == 3D with vector pixels? 11 Pipeline Unnecessary complexity Unnecessary complexity Utility in streaming Utility in streaming Not (fully) implemented in ITK Not (fully) implemented in ITK 12 Out of core processing Essential Essential ITK Pipeline? ITK Pipeline? OpenCL model? OpenCL model? single pixel kernel pixel single pixel kernel pixel called for all called for all 13 Wrapping SWIG SWIG Languages Languages Matlab Matlab Python Python Java Java C# C# Others: Tcl, R, Perl, Ruby... Others: Tcl, R, Perl, Ruby... 14 Distribution Binary Binary Matlab (somehow) Matlab (somehow) Python egg Python egg Java jar Java jar C++ lib/dll/so & include C++ lib/dll/so & include Source Source Less useful Less useful 15 Daniel Blezek, Jesus Caban, Brad Lowkamp, Dan Muller, Fabrice de Chaumont, Julien Michel, Harvey Cline, Gabe Hart, Ghassam Hamarech, John Galeotti, Raghu Machiraju, Hans Johnson, Wes Turner, Luis Ibanez, Terry Yoo SimpleITK Status