ITK/Release 4 Planning: Difference between revisions

From KitwarePublic
< ITK
Jump to navigationJump to search
 
(123 intermediate revisions by 25 users not shown)
Line 1: Line 1:
= ITK Version 4 =
This work is supported by ARRA funding from the NLM. The [http://visual.nlm.nih.gov/itk/itk2010/agenda.html kick-off meeting] for this project took place from June 28-July 2 2010 in Bethesda. A beta version of the software will be available by the end of March 2011. Bug fixes will continue to be contributed to the ITK version 3 code.
== Download ==
* [[ITK_Release_4/Download|Download]]
== Release Notes ==
* [[ITK_Release_4/Migration Plan/Release Notes|Release Notes]]
== LICENSE Change ==
Starting with ITKv4-Alpha-01, the ITK toolkit is distributed under the Apache 2.0 License.
More details here:
* [[ITK_Release_4/Licensing|Licensing]]
== Revision Control ==
* Adopt a modern revision control system
** Move from cvs to [http://git-scm.com git] for distributed source code management
** [[ITK/Git|ITK Git Instructions]]
== Code Review ==
* Adopt a code review system
** [http://review.source.kitware.com/p/ITK ITK Gerrit]
** Powered by [http://code.google.com/p/gerrit/ Gerrit Code Review]
== Modern C++ ==
* [[ITK_Release_4/Modern C++|Modern C++]]
* Take advantage of advances in C++
** Target popular compilers that are compatible with the C++98 and/or C++03 standard (http://en.wikipedia.org/wiki/C%2B%2B03#Language_standard). 
** Specifically remove support for Visual Studio prior to 7.1 (e.g., 6 and 7.0),  Borland version 5.5, Sun Studio compilers prior to 5.9, IRIX compilers, MWORKS compilers, cygwin 1.5 (newer versions may work, but are not being targeted), and gcc prior to 3.4
== Wrapping ==
* Improved ITK Wrapping at the class level (WrapITK)
** [[ITK_Release_4/Wrapping|Wrapping]]
** Particularly for Python 2.x, Python 3, Java and C#
== Simplify ==
* Addition of [[ITK_Release_4/SimpleITK|Simple ITK Layer]]
== Modularize ==
* Refactor for [[ITK_Release_4/Modularization|Modularity]]
** ITKCore, ITKRegistrationModule, and Optional Modules
== Testing Crowdsourcing ==
* [[ITK_Release_4/Testing_Crowdsourcing|Testing Crowdsourcing]]
== Improve Software Process ==
* Enhanced project management tools and software processes
=== Data Management ===
* Better management for [[ITK_Release_4/Testing Data|Testing Data]]
* Data Collection [[ITK_Release_4/Data Collection|MIDAS]]
=== Distributed Testing (cdash@home) ===
* Testing On Demand [[ITK_Release_4/Testing On Demand|cdash@home]]
=== Testing Framework ===
* [[ITK_Release_4/UnitTesting|New unit testing framework]] based on [http://code.google.com/p/googletest/ Google Test]
** Particularly to support module development, testing, and maintenance
=== Coding Style ===
* [[ITK_Release_4/Coding Style|Coding Style]]
== Revise ==
=== FEM ===
* [[Refactoring itk::FEM framework - V4]]
=== Level Sets ===
* [[Refactoring Level-Set framework - V4]]
=== DICOM ===
* Improved DICOM support
** [[ITK_Release_4/DICOM|DICOM]]
** Including communications with PACS
** Support Streaming interface
** Add filter to support Siemens MOSAIC images
** Information Object Definition verification
=== Image Registration Framework ===
* [[ITK_Release_4/Enhancing Image Registration Framework|Enhancing Image Registration Framework]]
=== Spatial Objects ===
* [[ITK_Release_4/SpatialObjects | Spatial Object Refactoring project page]]
=== Global Code Review ===
* [[ITK_Release_4/Global_Code_Review | Global Code Review]]
== Accelerate ==
=== GPU ===
* [[ITK_Release_4/GPU Acceleration|GPU Acceleration - V4]]
** With support for distributed computing in the future
* [[GPU_Acceleration_-_V4|GPU Acceleration - V4 (deprecated link)]]
=== Numerical Libraries ===
* [[ITK_Release_4/Refactor Numerical Libraries|Refactor Numerical Libraries]]
== Release schedules ==
* [[ITK Release 4/ReleaseSchedules|Release Schedules]]
= The Team =
[[ITK_Release_4/The Team|The Team]]
= Wish List =
= Wish List =


== Oriented Images ==
[[ITK_Release_4/Wish List|Wish List]]
* Support ND image in N+1 dimension
 
** 2D image can have an origin specified in 3D, thus a series of 2D images is not always Z-aligned
= Migration Plan (Developers) =
* All images are oriented - remove concept of an un-oriented image
 
* Check use of orientation throughout ITK
[[ITK_Release_4/Migration Plan|Migration Plan]]
* Support re-orientation of ND oriented images
 
** Using anything other than 3D images won't compile with itkOrientedImageFilter
= Migration Guide (for Users) =
 
[[ITK_Release_4/Users Migration Guide|Users Migration Guide]]
 
= Software Guide (Update) =
 
[[ITK_Release_4/Software Guide Update|Software Guide Update]]
 
= A2D2 Projects =


** Spatial Objects
[[ITK_Release_4/A2D2_Projects|A2D2 Projects]]
** Meshes
* Suggestions
** [[ITK_Release_4.0_Orientation_by_Kent]]
** [[ITK_Release_4.0_Orientation_by_Torsten]]
** [[ITK_Release_4.0_Orientation_by_Michael]]


== Image Representation ==
= New Fields =
* Allow the use of strides that are not equal to the image width
** Would ease the collaboration of ITK with opencv
** Would allow the use of sse operations
** Might be redundant with correct use of image regions


== Statistics ==
ITKv4 will provide improved support for
* Complete statistics refactoring (see NAMIC sandbox)


== FEM Meshes ==
* [[ITK_Release_4/Video|Video]]
* Consolidate FEM Meshes and ITK Meshes
* [[ITK_Release_4/Microscopy|Microscopy]]
* [[ITK_Release_4/Remote Sensing|Remote Sensing]]


== Clean-up CMake Vars ==
= Discussion Points =
* See proposal [[ITK_CMake_Style|HERE]].


== Remove Deprecated Features ==
[[ITK_Release_4/Discussion Points|Discussion Points]]
* Functions that have been deprecated (and appropriately marked as such) for more than 3 releases should be removed.


== Image Registration ==
= Outreach =
* Set up the infrastructure to ease the implementation of modern optimization schemes for image registration
** Requires Hessian or pseudo-Hessians of the cost function
** Requires several types of update rules (additive, compositional, inverse compositional, etc.)
** References: "Lucas-Kanade 20 years on" by Baker et al.; "Homography-based 2D Visual Tracking and Servoing" by Benhimane and Malis, "Groupwise Geometric and Photometric Direct Image Registration" by Bartoli; etc.
* Clean up the use of parameter scaling in the optimizers
** One possibility would be that the optimizers only perform unscaled minimization. It would then be up to a cost function wrapper to do the rescaling and potentially return the opposite of the cost function. This is similar to how vnl optimizers are used in ITK
* Optimizers should return the best visited value
** See [http://public.kitware.com/Bug/bug_view_page.php?bug_id=3205 Bug 3205]
* Modify transforms to support a consistent API across transform types
* Modify order of parameters to be consistent across transforms.


== Architecture ==
[[ITK_Release_4/Outreach|Outreach]]
* Implement a pure virtual base class for each API to support instantiation of templated filters at run-time with different dimensions.


== Proper resampling/consistency in IndexToPhysicalPoint, ContinuousIndexToPhysicalPoint, Point* ==
= New Code Contribution Process =
* Refactor all the interpolators
** See [[Proposals:Refactoring Index Point Coordinate System]]
** See [http://www.itk.org/Bug/view.php?id=6558 ITK Bug 6558]
** Fix bug 0005335 - transform initializer computes geometric center incorrectly


== Composite Transform ==
[[ITK_Release_4/New_Code_Contribution_Process|New Code Contribution Process]]
* Define a composite transform which can contain any number of transforms, composed.
* Only expose the parameters of the last transform for optimization (default)
* Used in multivariate atlas formation (DTI reg with T1 reg with atlas)
* Remove all of the Centered transforms
* Modify the base class for optimizers to support key optimizer API calls such as SetMaximize and SetNumberOfIterations or SetMaximumIteration

Latest revision as of 15:59, 20 January 2012

ITK Version 4

This work is supported by ARRA funding from the NLM. The kick-off meeting for this project took place from June 28-July 2 2010 in Bethesda. A beta version of the software will be available by the end of March 2011. Bug fixes will continue to be contributed to the ITK version 3 code.

Download

Release Notes

LICENSE Change

Starting with ITKv4-Alpha-01, the ITK toolkit is distributed under the Apache 2.0 License.

More details here:

Revision Control

  • Adopt a modern revision control system

Code Review

Modern C++

  • Take advantage of advances in C++
    • Target popular compilers that are compatible with the C++98 and/or C++03 standard (http://en.wikipedia.org/wiki/C%2B%2B03#Language_standard).
    • Specifically remove support for Visual Studio prior to 7.1 (e.g., 6 and 7.0), Borland version 5.5, Sun Studio compilers prior to 5.9, IRIX compilers, MWORKS compilers, cygwin 1.5 (newer versions may work, but are not being targeted), and gcc prior to 3.4

Wrapping

  • Improved ITK Wrapping at the class level (WrapITK)
    • Wrapping
    • Particularly for Python 2.x, Python 3, Java and C#

Simplify

Modularize

  • Refactor for Modularity
    • ITKCore, ITKRegistrationModule, and Optional Modules

Testing Crowdsourcing

Improve Software Process

  • Enhanced project management tools and software processes

Data Management

Distributed Testing (cdash@home)

Testing Framework

Coding Style

Revise

FEM

Level Sets

DICOM

  • Improved DICOM support
    • DICOM
    • Including communications with PACS
    • Support Streaming interface
    • Add filter to support Siemens MOSAIC images
    • Information Object Definition verification

Image Registration Framework

Spatial Objects

Global Code Review

Accelerate

GPU


Numerical Libraries

Release schedules

The Team

The Team

Wish List

Wish List

Migration Plan (Developers)

Migration Plan

Migration Guide (for Users)

Users Migration Guide

Software Guide (Update)

Software Guide Update

A2D2 Projects

A2D2 Projects

New Fields

ITKv4 will provide improved support for

Discussion Points

Discussion Points

Outreach

Outreach

New Code Contribution Process

New Code Contribution Process