Proposals:Refactoring Statistics Framework 2007 Action Items: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
(55 intermediate revisions by 2 users not shown) | |||
Line 39: | Line 39: | ||
** there is a filter which outputs this data type ( in which case DataObjectDecorator can be defined ) | ** 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 | * There is a duplication of data in the omponentbase, membership function | ||
= Progress of Specific Tasks = | |||
== Data Objects == | |||
* Sample (Luis) <font style="color: #8b0000;">'''Done'''</font> | |||
* ListSample (Luis) <font style="color: #8b0000;">'''Done'''</font> | |||
* Histogram (Luis) <font style="color: #8b0000;">'''Done'''</font> | |||
* Subsample (Andinet) <font style="color: #8b0000;">'''Done'''</font> | |||
* MembershipSample (Andinet) <font style="color: #006400;">'''Done'''</font> | |||
* KdTree (Andinet) <font style="color: #0000a0;">'''Done'''</font> | |||
** Replace "WeightedCentroid" with "SumMeasurmentVector" | |||
** propagate this to KdTree generators | |||
* VariableDimensionHistogram (Luis) <font style="color: #0000a0;">'''Done'''</font> | |||
* MembershipFunctionBase (Andinet) <font style="color: #0000a0;">'''Done'''</font> | |||
== Process Objects == | |||
* MeanFilter (Andinet) <font style="color: #8b0000;">'''Done!'''</font> | |||
* SampleToHistogramFilter (it was ListSampleToHistogramGenerator) (Luis) <font style="color: #8b0000;">'''Done!'''</font> | |||
* ImageToCooccurrenceListFilter (it was ImageToCooccurrenceListAdaptor) (Luis) <font style="color: #8b0000;">'''Done!'''</font> | |||
* CovarianceFilter (Andinet) | |||
* HistogramToTextureFeaturesFilter (it was GreyLevelCooccurrenceMatrixTextureCoefficientsFilter) (Andinet) <font style="color: #8b0000;">'''Done!'''</font> | |||
* ScalarImageToTextureFeaturesFilter (Andinet) | |||
* WeightedCovarianceFilter (Andinet) | |||
* WeightedMeanFilter (Andinet) <font style="color: #8b0000;">'''Done!'''</font> | |||
* ImageToHistogramFilter (was ImageToHistogramGenerator) (Luis) | |||
* ImageToListSampleFilter (ImageToListGenerator) (Andinet) <font style="color: #8b0000;">'''Done!'''</font> | |||
* SampleToKdTreeFilter (it was KdTreeGenerator ) (Andinet) | |||
** (+option for generating sum vectors) | |||
** WeigthedCentroidKdTreeGenerator will be deprecated | |||
* 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) | |||
* SampleToSubsampleFilter (New class) (Luis) <font style="color: #006400;">'''In Progress'''</font> | |||
** ClassLabelSubsamplerFilter (it was SelectiveSubsampleGenerator) (Luis) | |||
** NeighborSubsamplerFilter (it was NeighborhoodSampler)(Luis) <font style="color: #006400;">'''In Progress'''</font> | |||
* 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) <font style="color: #006400;">'''In Progress'''</font> | |||
* 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) | |||
== 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)