|
|
(27 intermediate revisions by 3 users not shown) |
Line 31: |
Line 31: |
| == Tasks == | | == Tasks == |
|
| |
|
| === Class Manifesto === | | === Build a Class Manifesto === |
|
| |
|
| There are 72 header files in the Statistics directory. | | There are 72 header files in the Statistics directory. |
|
| |
|
| They are categorized in the following table | | They are categorized in the following page |
|
| |
|
| | [[Proposals:Refactoring Statistics Framework 2007 Class Manifesto | Class Manifesto ]] |
|
| |
|
| {| border="1"
| | === Adapt to Pipeline === |
| |- bgcolor="#abcdef"
| |
| ! Conceptual Class !! Number
| |
| |-
| |
| | Measurement Containers || 8
| |
| |-
| |
| | Frequency Containers || 2
| |
| |-
| |
| | Process Objects || 2
| |
| |-
| |
| | Traits || 1
| |
| |-
| |
| | Mean shift || 3
| |
| |-
| |
| | Adaptors || 5
| |
| |-
| |
| | Univariate Distributions || 4
| |
| |-
| |
| | Algorithms || 3
| |
| |-
| |
| | Calculators || 6
| |
| |-
| |
| | Generators || 12
| |
| |-
| |
| | Filters || 10
| |
| |-
| |
| | Multivariate Density Functions || 8
| |
| |-
| |
| | Distance Metrics || 2
| |
| |-
| |
| | Components || 4
| |
| |-
| |
| | Estimators || 2
| |
| |-
| |
| | '''Total''' || '''72'''
| |
| |}
| |
|
| |
|
| === Measurement Containers ===
| | The collection of objects in the current statistics framework is relatively independent from the data pipeline used in most of the toolkit. |
|
| |
| * KdTree
| |
| * Histogram
| |
| * VariableDimensionHistogram
| |
| * ListSampleBase
| |
| * ListSample
| |
| * Sample
| |
| * Subsample
| |
| * MembershipSample
| |
|
| |
|
| === Frequency Containers ===
| | In this task we target to reorganize the existing classes into data objects and process objects following the pipeline architecture. |
|
| |
|
| * DenseFrequencyContainer
| | === Review Iterators === |
| * SparseFrequencyContainer
| |
|
| |
|
| === Process Objects ===
| | [[Proposals:Refactoring Statistics Framework 2007 Iterators | Iterators Review ]] |
|
| |
|
| * SampleClassifier
| |
| * SampleClassifierWithMask
| |
|
| |
|
| === Traits ===
| |
|
| |
|
| * MeasurementVectorTraits
| | === Miscellaneous Issues === |
|
| |
|
| === MeanShift ===
| | [[Proposals:Refactoring Statistics Framework 2007 Miscellaneous | Miscellaneous Issues ]] |
|
| |
|
| * ypersphereKernelMeanShiftModeSeeker
| | = Brad's Comments = |
| * MeanShiftModeCacheMethod
| |
| * MeanShiftModeSeekerBase
| |
|
| |
|
|
| |
|
| === Adaptors === | | = Action Items = |
|
| |
|
| * ImageToCooccurrenceListAdaptor
| | [[Proposals:Refactoring Statistics Framework 2007 Action Items | List of Action Items ]] |
| * ImageToListAdaptor
| |
| * JointDomainImageToListAdaptor
| |
| * PointSetToListAdaptor
| |
| * ScalarImageToListAdaptor
| |
|
| |
|
| | = Prototype Code = |
|
| |
|
| === Univariate Distributions ===
| | The prototype code of the refactoring is available in the NAMICSandbox. You can download it by using the following svn command |
|
| |
|
| * ChiSquareDistribution
| | svn checkout http://svn.na-mic.org/NAMICSandBox/trunk/ITKStatisticsPipelineRefactoring ITKStatisticsPipelineRefactoring |
| * GaussianDistribution
| |
| * ProbabilityDistribution
| |
| * TDistribution
| |
|
| |
|
| | The old location (deprecated) of the repository was: |
|
| |
|
| === Algorithms ===
| | svn checkout http://www.na-mic.org/svn/NAMICSandBox/trunk/ITKStatisticsPipelineRefactoring |
|
| |
|
| * SampleAlgorithmBase
| | = The New World = |
| * StatisticsAlgorithm
| |
| * NeighborhoodSampler
| |
|
| |
|
| === Iterators Review ===
| | [[Proposals:Refactoring Statistics Framework 2007 New Statistics Framework | New Statistics Framework ]] |
|
| |
|
| The goal of this task is to ensure that the set of iterators is consistent with the set of data containers and that all the iterators are tested to a 100% code coverage.
| | = Migration Users Guide = |
|
| |
|
| ==== List of Data Containers ====
| | [[Proposals:Refactoring Statistics Framework 2007 Migration Users Guide | Migration Users Guide ]] |
|
| |
|
| * Sample
| | = Classifiers = |
| * Histogram
| | *[[Proposals:Refactoring Statistics Framework 2007 Background | Background ]] |
| * ListSampleBase
| | *[[Proposals:Refactoring Statistics Framework 2007 List of Classifier Related Classes | List of classifier related classes ]] |
| * ListSample
| | *[[Proposals:Refactoring Statistics Framework 2007 New API | New API ]] |
| * MembershipSample
| |
| * VariableDimensionHistogram
| |
| * DenseFrequencyContainer
| |
| * SparseFrequencyContainer
| |
| * ImageToCooccurrenceListAdaptor
| |
| * ImageToListAdaptor
| |
| * JointDomainImageToListAdaptor
| |
| * PointSetToListAdaptor | |
| * ScalarImageToListAdaptor | |
| * KdTree | |
|
| |
|
| ==== List of Iterators ==== | | = Transition Plan = |
|
| |
|
| | | [[Proposals:Refactoring Statistics Framework 2007 Transition Plan | Transition Plan ]] |
| ==== Class Diagrams ====
| |
| | |
| <graphviz>
| |
| digraph G {
| |
| Sample [shape=box, URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1Sample.html"];
| |
| ListSampleBase [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ListSampleBase.html"];
| |
| Histogram [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1Histogram.html"];
| |
| Subsample [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1Subsample.html"];
| |
| MembershipSample [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1MembershipSample.html"];
| |
| ListSample [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ListSample.html"];
| |
| VariableDimensionHistogram [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1VariableDimensionHistogram.html"];
| |
| ImageToCooccurrenceListAdaptor [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ImageToCooccurrenceListAdaptor.html"];
| |
| ImageToListAdaptor [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ImageToListAdaptor.html"];
| |
| JointDomainImageToListAdaptor [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1JointDomainImageToListAdaptor.html"];
| |
| PointSetToListAdaptor [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1PointSetToListAdaptor.html"];
| |
| ScalarImageToListAdaptor [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ScalarImageToListAdaptor.html"];
| |
| Sample -> ListSampleBase;
| |
| Sample -> Histogram;
| |
| Sample -> Subsample;
| |
| Sample -> MembershipSample;
| |
| Sample -> VariableDimensionHistogram;
| |
| ListSampleBase -> ListSample;
| |
| ListSampleBase -> ImageToListAdaptor;
| |
| ListSampleBase -> PointSetToListAdaptor;
| |
| ImageToListAdaptor -> ScalarImageToListAdaptor;
| |
| ImageToListAdaptor -> JointDomainImageToListAdaptor;
| |
| ImageToListAdaptor -> ImageToCooccurrenceListAdaptor;
| |
| }
| |
| </graphviz>
| |
| | |
| | |
| <graphviz>
| |
| digraph G {
| |
| DenseFrequencyContainer [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1DenseFrequencyContainer.html"];
| |
| SparseFrequencyContainer [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1SparseFrequencyContainer.html"];
| |
| KdTree [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1KdTree.html"];
| |
| Object [URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Object.html"];
| |
| Object -> DenseFrequencyContainer
| |
| Object -> SparseFrequencyContainer
| |
| Object -> KdTree
| |
| }
| |
| </graphviz>
| |
ITK: Statistical Framework Refactoring
Summary
Motivation
Recently it has been found that certain characteristics of the Statistical Framework API could be improved in order to provide a more consistent inteface.
In particular, issues have been pointed out regarding the following topics
- Iterators
- Samples versus Subsamples
- Statistical calculator integrated into the pipeline
Tasks
The proposed refactoring will include the following specific tasks
- Review all iterators used in the Statistics framework and add tests for their functionalities until bringing their code coverage to 100%
- Restructure the implementation of the Subsample class, to make sure that
- It can be used in any place where a sample can be used.
- Sub-sampling can be nested without breaking the consistency of the statistical operation.
Schedule
The refactoring tasks will be initiated on March 23rd and will be completed before April 15th 2007
Specific Program
Tasks
Build a Class Manifesto
There are 72 header files in the Statistics directory.
They are categorized in the following page
Class Manifesto
Adapt to Pipeline
The collection of objects in the current statistics framework is relatively independent from the data pipeline used in most of the toolkit.
In this task we target to reorganize the existing classes into data objects and process objects following the pipeline architecture.
Review Iterators
Iterators Review
Miscellaneous Issues
Miscellaneous Issues
Action Items
List of Action Items
Prototype Code
The prototype code of the refactoring is available in the NAMICSandbox. You can download it by using the following svn command
svn checkout http://svn.na-mic.org/NAMICSandBox/trunk/ITKStatisticsPipelineRefactoring ITKStatisticsPipelineRefactoring
The old location (deprecated) of the repository was:
svn checkout http://www.na-mic.org/svn/NAMICSandBox/trunk/ITKStatisticsPipelineRefactoring
The New World
New Statistics Framework
Migration Users Guide
Migration Users Guide
Classifiers
Transition Plan
Transition Plan