Proposals:Refactoring Statistics Framework 2007 Action Items: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
(33 intermediate revisions by 2 users not shown) | |||
Line 47: | Line 47: | ||
* ListSample (Luis) <font style="color: #8b0000;">'''Done'''</font> | * ListSample (Luis) <font style="color: #8b0000;">'''Done'''</font> | ||
* Histogram (Luis) <font style="color: #8b0000;">'''Done'''</font> | * Histogram (Luis) <font style="color: #8b0000;">'''Done'''</font> | ||
* Subsample (Andinet) | * Subsample (Andinet) <font style="color: #8b0000;">'''Done'''</font> | ||
* MembershipSample (Andinet) | * MembershipSample (Andinet) <font style="color: #006400;">'''Done'''</font> | ||
* KdTree ( | * KdTree (Andinet) <font style="color: #0000a0;">'''Done'''</font> | ||
** Replace "WeightedCentroid" with "SumMeasurmentVector" | ** Replace "WeightedCentroid" with "SumMeasurmentVector" | ||
** propagate this to KdTree generators | ** propagate this to KdTree generators | ||
* VariableDimensionHistogram (Luis) | * VariableDimensionHistogram (Luis) <font style="color: #0000a0;">'''Done'''</font> | ||
* MembershipFunctionBase ( | * MembershipFunctionBase (Andinet) <font style="color: #0000a0;">'''Done'''</font> | ||
== Process Objects == | == Process Objects == | ||
* MeanFilter (Andinet) | * MeanFilter (Andinet) <font style="color: #8b0000;">'''Done!'''</font> | ||
* | * SampleToHistogramFilter (it was ListSampleToHistogramGenerator) (Luis) <font style="color: #8b0000;">'''Done!'''</font> | ||
* ImageToCooccurrenceListFilter (Luis) | * ImageToCooccurrenceListFilter (it was ImageToCooccurrenceListAdaptor) (Luis) <font style="color: #8b0000;">'''Done!'''</font> | ||
* CovarianceFilter ( | * CovarianceFilter (Andinet) | ||
* HistogramToTextureFeaturesFilter (it was GreyLevelCooccurrenceMatrixTextureCoefficientsFilter) (Andinet) | * HistogramToTextureFeaturesFilter (it was GreyLevelCooccurrenceMatrixTextureCoefficientsFilter) (Andinet) <font style="color: #8b0000;">'''Done!'''</font> | ||
* ScalarImageToTextureFeaturesFilter ( | * ScalarImageToTextureFeaturesFilter (Andinet) | ||
* WeightedCovarianceFilter ( | * WeightedCovarianceFilter (Andinet) | ||
* WeightedMeanFilter (Andinet) | * WeightedMeanFilter (Andinet) <font style="color: #8b0000;">'''Done!'''</font> | ||
* ImageToHistogramFilter (was ImageToHistogramGenerator) (Luis) | * ImageToHistogramFilter (was ImageToHistogramGenerator) (Luis) | ||
* ImageToListSampleFilter (ImageToListGenerator) (Andinet) | * ImageToListSampleFilter (ImageToListGenerator) (Andinet) <font style="color: #8b0000;">'''Done!'''</font> | ||
* SampleToKdTreeFilter (it was KdTreeGenerator ) (Andinet) | * SampleToKdTreeFilter (it was KdTreeGenerator ) (Andinet) | ||
** (+option for generating sum vectors) | ** (+option for generating sum vectors) | ||
** WeigthedCentroidKdTreeGenerator will be deprecated | ** WeigthedCentroidKdTreeGenerator will be deprecated | ||
* ScalarImageToCooccurrenceMatrixFilter (it was ScalarImageToGreyLevelCooccurrenceMatrixGenerator)(Andinet) | * ScalarImageToCooccurrenceMatrixFilter (it was ScalarImageToGreyLevelCooccurrenceMatrixGenerator)(Andinet) <font style="color: #8b0000;">'''Done!'''</font> | ||
* | ** MaskedScalarImageToGreyLevelCooccurrenceMatrixGenerator will be deprecated | ||
* | ** ScalarImageToCooccurrenceMatrixFilter takes a mask image if provided | ||
* ScalarImageToHistogramFilter (it was ScalarImageToHistogramGenerator)(Luis) | * ScalarImageToHistogramFilter (it was ScalarImageToHistogramGenerator)(Luis) | ||
* SampleToSubsampleFilter (New class) (Luis) | * SampleToSubsampleFilter (New class) (Luis) <font style="color: #006400;">'''In Progress'''</font> | ||
** ClassLabelSubsamplerFilter (it was SelectiveSubsampleGenerator) (Luis) | ** ClassLabelSubsamplerFilter (it was SelectiveSubsampleGenerator) (Luis) | ||
** NeighborSubsamplerFilter (it was NeighborhoodSampler)(Luis) | ** NeighborSubsamplerFilter (it was NeighborhoodSampler)(Luis) <font style="color: #006400;">'''In Progress'''</font> | ||
* ListSampleToHistogramFilter (make it derive from ProcessObject) Andinet | * ListSampleToHistogramFilter (make it derive from ProcessObject) Andinet | ||
Line 92: | Line 90: | ||
* MeanShiftClusteringSampleFilter (it was SampleMeanShiftClusteringFilter) (Andinet) | * MeanShiftClusteringSampleFilter (it was SampleMeanShiftClusteringFilter) (Andinet) | ||
* SelectiveMeanShiftClusteringSampleFilter (it was SampleSelectiveMeanShiftClusteringFilter) (Luis)(why should be called "Selective") | * SelectiveMeanShiftClusteringSampleFilter (it was SampleSelectiveMeanShiftClusteringFilter) (Luis)(why should be called "Selective") | ||
* SampleClassifierFilter (it was SampleClassifier) (Luis) <font style="color: #006400;">'''In Progress'''</font> | |||
* SampleClassifierWithMaskFilter (it was SampleClassifier) (Luis) | |||
* ExpectationMaximizationMixtureModelEstimator (Luis) | * ExpectationMaximizationMixtureModelEstimator (Luis) | ||
** (review the Classifiers hierarchy) | ** (review the Classifiers hierarchy) | ||
Line 110: | Line 110: | ||
* PointSetToListAdaptor (Luis) | * PointSetToListAdaptor (Luis) | ||
* ScalarImageToListAdaptor (Andinet) | * ScalarImageToListAdaptor (Andinet) | ||
== Classifier related classes refactoring == | |||
* Reorganize distance metrics and membership function bases as suggested in [[http://www.itk.org/Wiki/Proposals:Refactoring_Statistics_Framework_2007_New_Statistics_Framework#Classifiers_.28Suggested_Design.29_2]] (Andinet :Done) | |||
** Use the new MeasurmentVectorTraits added to set/get MeasurementVectorSize | |||
** Update the migration guide ([[http://www.itk.org/Wiki/Proposals:Refactoring_Statistics_Framework_2007_Migration_Users_Guide]]) | |||
** Add unit tests if necessary | |||
** Fix code style issues | |||
*Refactor Gaussian density function | |||
** Rename itkGaussianDensityfunction as GaussianMembership function | |||
** Remove itkDenistyFunction (it does exactly what itkMembershipfunction is supposed to do) |
Latest revision as of 15:19, 13 August 2008
Action Items
API Fixes
- ImageToCoocurrenceListAdaptor
- Create a Filter for this operation, in this class the Compute() method will be used.
- Fix the API so it is a real Adaptor : must have a GetMeasurementVector(unsigned int id) method.
- There is no conceptual difference between "Generators" and "Calculators"
- They should become Filters
- Estimators have similar characterstics as "Generators" and "Calculators"
- They could be converted to filters
Proposals
- Sample class could be derived from a DataObject
- Subsequently, all the derived classes such as ListSampleBase, Histogram and Subsample will be part of the pipeline.
- Add a typedef in the Sample class for the DataObjectDectorator of a Measurement vector
- KDTree could be derived from a DataObject
- ListSampleBase : to be deprecated
- SampleAlgorithmBase will be derived from ProcessObject
- Subsequently, classes derived from the SampleAlgorithmBase will be process objects.
- The following Calculator classes will also be derived from process object
- ScalarImageTextureCalculator
- GreyLevelCooccurrenceMatrixTextureCoefficientsCalculator
- The following Generator classes will be derived from process object
- ImageToHistogramGenerator
- ImageToListGenerator
- KdTreeGenerator
- ListSampleToHistogramGenerator
- MaskedScalarImageToGreyLevelCooccurrenceMatrixGenerator
- MembershipSampleGenerator
- ScalarImageToGreyLevelCooccurrenceMatrixGenerator
- ScalarImageToHistogramGenerator
- SelectiveSubsampleGenerator
- WeightedCentroidKdTreeGenerator
- The following two generator classes will remain as generators
- NormalVariateGenerator
- RandomVariateGeneratorBase
- Frequency container classes ( DenseFrequencyContainer and SparseFrequencyContainer ) do not need any modification at this point unless
- there is a filter which outputs this data type ( in which case DataObjectDecorator can be defined )
- There is a duplication of data in the omponentbase, membership function
Progress of Specific Tasks
Data Objects
- Sample (Luis) Done
- ListSample (Luis) Done
- Histogram (Luis) Done
- Subsample (Andinet) Done
- MembershipSample (Andinet) Done
- KdTree (Andinet) Done
- Replace "WeightedCentroid" with "SumMeasurmentVector"
- propagate this to KdTree generators
- VariableDimensionHistogram (Luis) Done
- MembershipFunctionBase (Andinet) Done
Process Objects
- MeanFilter (Andinet) Done!
- SampleToHistogramFilter (it was ListSampleToHistogramGenerator) (Luis) Done!
- ImageToCooccurrenceListFilter (it was ImageToCooccurrenceListAdaptor) (Luis) Done!
- CovarianceFilter (Andinet)
- HistogramToTextureFeaturesFilter (it was GreyLevelCooccurrenceMatrixTextureCoefficientsFilter) (Andinet) Done!
- ScalarImageToTextureFeaturesFilter (Andinet)
- WeightedCovarianceFilter (Andinet)
- WeightedMeanFilter (Andinet) Done!
- ImageToHistogramFilter (was ImageToHistogramGenerator) (Luis)
- ImageToListSampleFilter (ImageToListGenerator) (Andinet) Done!
- SampleToKdTreeFilter (it was KdTreeGenerator ) (Andinet)
- (+option for generating sum vectors)
- WeigthedCentroidKdTreeGenerator will be deprecated
- ScalarImageToCooccurrenceMatrixFilter (it was ScalarImageToGreyLevelCooccurrenceMatrixGenerator)(Andinet) Done!
- MaskedScalarImageToGreyLevelCooccurrenceMatrixGenerator will be deprecated
- ScalarImageToCooccurrenceMatrixFilter takes a mask image if provided
- ScalarImageToHistogramFilter (it was ScalarImageToHistogramGenerator)(Luis)
- SampleToSubsampleFilter (New class) (Luis) In Progress
- ClassLabelSubsamplerFilter (it was SelectiveSubsampleGenerator) (Luis)
- NeighborSubsamplerFilter (it was NeighborhoodSampler)(Luis) In Progress
- ListSampleToHistogramFilter (make it derive from ProcessObject) Andinet
- SampleFilterBase (it was SampleAlgorithmBase) (make it derive from ProcessObject) (Luis)
- HistogramToImageFilter (remove decorator, now that Histogram is a DataObject) (Luis)
- HistogramToEntropyImageFilter (do code review) (Andinet)
- HistogramToIntensityImageFilter (do code review) (Luis)
- HistogramToLogProbabilityImageFilter (do code review) (Andinet)
- HistogramToProbabilityImageFilter (do code review) (Luis)
- SampleToHistogramProjectionFilter (output Histogram should be created in MakeOutput)(Andinet)
- MeanShiftBlurringSampleFilter (it was SampleMeanShiftBlurringFilter)(Andinet)
- SelectiveMeanShiftBlurringSampleFilter (it was SampleSelectiveMeanShiftBlurringFilter)(Luis)
- MeanShiftClusteringSampleFilter (it was SampleMeanShiftClusteringFilter) (Andinet)
- SelectiveMeanShiftClusteringSampleFilter (it was SampleSelectiveMeanShiftClusteringFilter) (Luis)(why should be called "Selective")
- SampleClassifierFilter (it was SampleClassifier) (Luis) In Progress
- SampleClassifierWithMaskFilter (it was SampleClassifier) (Luis)
- ExpectationMaximizationMixtureModelEstimator (Luis)
- (review the Classifiers hierarchy)
- Review Components and MembershipSample classes
- SampleToKmeansFilter (it was KdTreeBasedKmeansEstimator) (Andinet)
- (it now should use the WeightedKdTreeGenerator inside).
- Output should be a container of MeasuremenVectors of RealType (Andinet)
- Rework the Insight/Code/Algorithms/itkScalarImageKmeansImageFilter accordingly (Luis)
- ClassificationSampleFilter (it was SampleClassifier) (Andinet)
- Related to the classifier reorganization
- MaskedClassificationSampleFilter (it was SampleClassifierWithMask) (Luis)
- Related to the classifier reorganization
Adaptors
- ImageToListAdaptor (Andinet)
- JointDomainImageToListAdaptor (Andinet)
- PointSetToListAdaptor (Luis)
- ScalarImageToListAdaptor (Andinet)
- Reorganize distance metrics and membership function bases as suggested in [[1]] (Andinet :Done)
- Use the new MeasurmentVectorTraits added to set/get MeasurementVectorSize
- Update the migration guide ([[2]])
- Add unit tests if necessary
- Fix code style issues
- Refactor Gaussian density function
- Rename itkGaussianDensityfunction as GaussianMembership function
- Remove itkDenistyFunction (it does exactly what itkMembershipfunction is supposed to do)