[Insight-users] using itkVoronoiSegmentationImageFilter ?

Yinpeng Jin yj76@columbia.edu
Tue, 22 Oct 2002 12:14:28 -0400


I think Jim is right, you can certainly build more "advanced" homogeneity
operator based on t-test or some other measurements.
that is also what Elsa did before, she used some histogram based operator to
mearsuring the homogeneity (not checked into ITK yet).
actually, the VoronoiSegmenation we were using is rather a "matching"
operator, which defines some descriptions (mean, std) of the
target object, and trying to find regions that matches those descriptions
within a certain tolerance level.
And as we presented before in the ITK meeting, the
VoronoiSegmenationImageFilterBase provide a general framework of
segmentation based on
this concept, and developer can build their own TestHomogeneity() for their
own voronoi segmentation filters, and any reasonable description parameters
can be added in for the "matching" purpose.
But I am not so sure if the "partitioning" filter can be easily derived from
this base class. certainly, the whole structure might be
similar, a new base class might be needed.
I think we can keep the the same design, e.g. a base class for the
"partitioning" functionality.
and user/developer can derive their own class by adding in different
homogenerity operators.



----- Original Message -----
From: "Miller, James V (Research)" <millerjv@crd.ge.com>
To: "'Celina Imielinska'" <ci42@columbia.edu>
Cc: "Yinpeng Jin" <yj76@columbia.edu>; "Seungbum Koo" <koosb2@hanmail.net>;
<insight-users@public.kitware.com>
Sent: Tuesday, October 22, 2002 11:35 AM
Subject: RE: Re: [Insight-users] using itkVoronoiSegmentationImageFilter ?


> Celina,
>
> I am not sure the VoronoiSegmentationImage filter is using the fuzzy
> connectedness criterion to measure homogeneity.  I have to admit that
> I don't have the formula for the (simple) fuzzy connectedness criterion
> in front of me.  But the VoronoiSegmentation code is merely comparing
> (sample) means and (sample variances) based on the following:
>
> 1. sample mean of the region is within a specified percentage of the
training mean
> 2. sample variance is less than a specified percentage of the training
> variance.
>
> I think a better statistic would be the two sample Student-t test or the
> two sample Hotelling T^2 statistic that would compare the difference in
> sample means taking into account the sample variances and the number of
> samples used in calculing the region sample mean (variance) and the
> training sample mean (and variance).
>
> This statistic is a Mahananobis (intensity) distance between the training
set and the current region.
> Have you tried these types of statistics before?
>
> My interest in the "partitioning" version of the algorithm is not so
> much to segment to the boundary of a piece of anatomy but to characterize
> the texture in a piece of anatomy as it relates to function and disease.
>
> Jim
>
>
>
> > -----Original Message-----
> > From: Celina Imielinska [mailto:ci42@columbia.edu]
> > Sent: Tuesday, October 22, 2002 11:07 AM
> > To: Miller, James V (Research)
> > Cc: Yinpeng Jin; Seungbum Koo; insight-users@public.kitware.com
> > Subject: RE: Re: [Insight-users] using
> > itkVoronoiSegmentationImageFilter
> > ?
> >
> >
> >
> >
> >  Jim,
> >
> >   Your understanding of the Voronoi filter is right:
> > "The definition of "interior" is not a homogeneity measure
> > but rather a
> > "compatibility" measure with a seed region." (I would call is
> > a "sample"
> > or "training" region). Also, you are right that the algorithm
> > "subdivides
> > the "boundary" Voronoi regions down to a specified
> > resolution". The idea is to
> > select and subdivide ONLY the regions "where the boudary is"
> > (or we think
> > where the boundary is), not to partition the image into
> > homogeneous regions.
> >
> >  The idea behind this filter is that the "homogeneity
> > operator" that is
> > derived from (simple) Fuzzy Connectedness method (we also
> > experiment with
> > the vectorial relative fuzzy connectedness method to get
> > better results),
> > where a sample of tissue is segmented and compared against
> > its backgrund
> > (this is not done in an ad hoc way), captures the characteristics
> > of the sample region (of target tissue) that IS NOT
> > inherently homogeneous
> > (this is why it is expressed by FC method, that describes
> > "connectedness
> > of inherently inhomogeneous tissue that is recognized as one object -
> > hanging-togetherness").
> > That is the finesse of this approach. Before, we were generating
> > experimentally "homogeneity" statistcs of inherently
> > inhomogeneous regions
> > that represented one organ, and it was not a very sophisticated way to
> > approach the problem (but it still could "drive" sucessfully
> > the Voronoi
> > Diagram classifier). Understanding the power of the fuzzy
> > connectedness
> > approach (we also experiment with the vectorial relative
> > fuzzy filter to
> > get better results) is important in understanding why inhomogeneous
> > regions still form a "whole" structures that we can
> > perceptually recognize
> > as one. Also, this method allows us to generate the "homogeneity
> > operators" automaticaally, instead of experimentally. The way
> > we use the
> > term "homogeneous operator" really means how we can describe
> > the "homogeneous"
> > component (the "strenght" of homogeneity) of something that is not
> > homogeneous by nature.
> >
> >  But, if you would like to use this filter to achieve a partition into
> > homogeneous regions, you can easily do it. The only thing is
> > that you will
> > be able to tile the image with homogeneous regions but this
> > will not give
> > you a better estimation WHERE the object (if it is inherenty
> > inhomogeneous) is. On the other hand, there could be a need for having
> > the new filter:
> >
> >   VoronoiPartitioningImageFilter
> >
> >  since it can be easily derived from the original one (and it might be
> > potentially useful).
> >
> >   I am trully glad that we are having a discussion on the
> > Voronoi Diagram
> > filter, and I agree with your interpretation of the method
> > and the your
> > proposition to extend it to a new filter (one may always need it for
> > something else).
> >
> >   I would like to also see more discussion on other components of the
> > hybrid segmentation enginge (the "stand-alone" vectorial
> > relative fuzzy
> > connectednes, Gibbs prior, and Deformable Model),
> >
> >  -Celina
> >
> >
> >
> > On Tue, 22 Oct 2002, Miller, James V (Research) wrote:
> >
> > > I have been using the Voronoi segmentation techniques the
> > last couple of
> > > days and discovered that they do not operate the way I
> > expected.  This
> > > may just be a documentation issue.
> > >
> > >  >From the presentations of the algorithms at our various
> > meetings, I
> > expected the voronoi
> > >  segmentations to subdivide the image until each voronoi region was
> > "homogenous", using the classical
> > >  definition of homogeneous from other split and merge segmentation
> > techniques.  So what I expected to
> > >  see was a partitioning of the entire image where each
> > voronoi region
> > was "well" approximated as
> > > constant intensity (with extensions to piecewise linear
> > > and piecewise quadratic intensity surfaces).
> > >
> > >  Instead, the algorithm labels each voronoi region as
> > either "interior",
> > "exterior", or "boundary" and
> > >  subdivides the "boundary" voronoi regions down to a specified
> > resolution.  The definition of
> > >  "interior" is not a homogeneity measure but rather a
> > "compatibility"
> > measure with a seed region
> > >  (where the sample mean and sample variance of the voronoi
> > region agree
> > with the estimates from the
> > > seed region using an ad-hoc criterion).
> > >
> >  > I am going to try to subclass the
> > VoronoiSegmentationImageFilterBase
> > class and construct an algorithm
> > >  to produce the partitioning or oversegmentation of the
> > scene that I am
> > interested in.  I think I can
> > >  reuse the voronoi engine and use my own TestHomogeneity()
> > method and
> > use a virtual function to
> > >  replace the "interior", "exterior", "boundary"
> > designations that only
> > allow the boundary regions to
> > >  be subdivided with code that will subdivide any region that is not
> > homogeneous enough.
> > >
> > >  This will give us two types of voronoi segmentation algorithms, one
> > that roughly segments a region
> > >  that intensity value "consistent" or "compatible" with a
> > seed region
> > and one that partitions the
> > > image into homogeneous regions.
> > >
> > > I am thinking of calling the new filter
> > VoronoiPartitioningImageFilter.
> > >
> > > Jim
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: Celina Imielinska [mailto:ci42@columbia.edu]
> > > > Sent: Monday, October 21, 2002 6:19 PM
> > > > To: Yinpeng Jin
> > > > Cc: Seungbum Koo; insight-users@public.kitware.com
> > > > Subject: Re: Re: [Insight-users] using
> > > > itkVoronoiSegmentationImageFilter
> > > > ?
> > > >
> > > >
> > > >
> > > >  Seungbum,
> > > >
> > > >   as Yinpeng said, the Voronoi Diagram classifier segments
> > > > globally all the
> > > > tissue in the image that is characterized by the
> > homogeneity operator
> > > > (derived from the fuzzy connectendness method). If you are
> > > > interested in
> > > > picking one connected component from all the segmented
> > > > regions, you may
> > > > use the DeformableMeshFilter (DM) to do the selection (and
> > > > smoothing/improvement of the final segmentation as well).
> > > >
> > > >  You can't use the DeformableMeshFilter without a prior,
> > > > since this is a
> > > > boundary-based segmentation method that has to be
> > initialized near the
> > > > solution. For example, you can use as a prior the Markov
> > Random Field
> > > > (MRF)/Gibbs Prior, the itkGibbsPriorFilter (or
> > > > itkRGBGibbsPriorFilter),
> > > > and follow with DM, then repeat iteratively MRF and DM, and
> > > > so on. There is
> > > > a new version of the DM method that can be explained, in
> > > > details, by Ting
> > > > Chen (chenting@graphics.cis.upenn.edu).
> > > >
> > > >  You may try also, a stand-alone, vectorial relative fuzzy
> > > > connectedness
> > > > method, the VectorFuzzyconnectednessImageFilter, to
> > segment a region.
> > > >
> > > >  The "Hybrid Segmentation Engine" consists of four
> > > > components: Deformable
> > > > Model (DM), Gibbs Prior/Markov Random Field (MRF), Voroni Diagram
> > > > Clssifier (VD), and Fuzzy Connectedness (FC). We have
> > explored some
> > > > hybrid "mixtures" derived from the engine: e.g. FC/VD/DM, MRF/DM,
> > > > vectorial relatice FC... but other combinations could be
> > > > tested as well.
> > > >
> > > >  Please let us know if need more detailed explanation.
> > > >
> > > >   good luck,
> > > >
> > > >  Celina Imielinska
> > > >
> > > > On Mon, 21 Oct 2002, Yinpeng Jin wrote:
> > > >
> > > > > VoronoiSegmenationImageFilter is a region-based classification,
> > > > > split-and-merge like algorithm.
> > > > > you are perfectly right, it picks up all the similar color
> > > > regions in whole
> > > > > image. It works well if you have multiple objects in
> > the image to
> > > > > segment, it was used because SimpleFuzzyConnectedness can
> > > > only pick up
> > > > > one connected component.
> > > > > there is another version of FuzzyConnectedness, which is
> > > > able to claim
> > > > > multiple objects (VectoriorFuzzyConnectedness)
> > > > > And to use Deformable Models is definitedly a good idea,
> > > > actually, all
> > > > > those three methods had been tested for combining together
> > > > to build a
> > > > > hybrid segmentation framework.
> > > > > I bet Celina, Jay and Dimitris can explain the idea
> > > > > better, for your reference, please look at following paper
> > > > in MICCAI 2001:
> > > > > C. Imielinska, D. Metaxas, J. Udupa, Y.Jin and T. Chen, "Hybrid
> > > > > Segmentation Methods of Anatomical Data." Proceedings
> > of The Fourth
> > > > > International Conference on Medical Image Computing and Computer
> > > > > Assisted Interventions (MICCAI 2001), pp. 1058-1066,
> > > > October 2001, Utrecht
> > > > > Netherlands.
> > > > >
> > > > >
> > > > >   ----- Original Message -----
> > > > >   From: Seungbum Koo
> > > > >   To: Yinpeng Jin
> > > > >   Cc: insight-users@public.kitware.com
> > > > >   Sent: Monday, October 21, 2002 4:51 PM
> > > > >   Subject: Re: Re: [Insight-users] using
> > > > itkVoronoiSegmentationImageFilter ?
> > > > >
> > > > >
> > > > >   Hi,
> > > > >   Thanks for the help. It worked and segmented but not as I
> > > > expected. I don't understand well about
> > > > VoronoiSegmentationImageFilter but it seems to segment all
> > > > similar color regions in whole image as the seed region. I
> > > > just wanted to find more exact boundary of that found using
> > > > FuzzyConnectednessScalarFilter.
> > > > >   Anyway I think the VoronoiSegmentationImageFilter worked
> > > > fine. What do you think about using DeformableMeshFilter
> > > > instead of VoronoiSegmentationImageFilter?
> > > > >
> > > > >   regards
> > > > >   Seungbum Koo
> > > > >
> > > > >   > Title : Re: [Insight-users] using
> > > > itkVoronoiSegmentationImageFilter ?
> > > > >   > Date : Sun, 20 Oct 2002 13:34:32 -0400
> > > > >   > From : "Yinpeng Jin"
> > > > >   > To : Seungbum Koo,
> > > > >   >
> > > > >   > if you use takeaprior, then you don't want to setMean
> > > > and setVar, those two parameters will be calculated from the
> > > > binary mask.
> > > > >   > and
> > > > >   > try to use
> > > > >   > m_voronoiFilter->SetMeanPercentError(PERCENT);
> > > > >   > m_voronoiFilter->SetVarPercentError(VARPERCENT);
> > > > >   > in stead of
> > > > >   > m_voronoiFilter->SetMeanTolerance(10);
> > > > >   > m_voronoiFilter->SetVarTolerance(20);
> > > > >   >
> > > > >   > they are trying to manipulate the same parameter, but
> > > > usually are more intuitive to figure.
> > > > >   > the MeanPercentError could usually be set between 0.1 to 0.3
> > > > >   > and the VarPercentError could be between 1 to 3. they
> > > > don't depends on your pixel intensity range, while the
> > > > MeanTolerance and VarTolerance usually do.
> > > > >   > Also, you can first output your m_binaryImage to see if
> > > > it is something reasonable. the
> > > > VoronoisegmentationImagefilter will need something at
> > least represents
> > > > >   > parts of your target object as the a prior.
> > > > >   > Try the above, and let me know what happens.
> > > > >   > Yinpeng.
> > > > >   >
> > > > >   >
> > > > >   >
> > > > >   > ----- Original Message -----
> > > > >   > From: Seungbum Koo
> > > > >   > To: insight-users@public.kitware.com
> > > > >   > Sent: Sunday, October 20, 2002 12:45 AM
> > > > >   > Subject: [Insight-users] using
> > > > itkVoronoiSegmentationImageFilter ?
> > > > >   >
> > > > >   >
> > > > >   > Hi,
> > > > >   >
> > > > >   > I'm trying to use itkVoronoiSegmentationImageFilter
> > > > combined with itkSimpleFuzzyConnectednessScalarImageFilter.
> > > > >   >
> > > > >   > I made a binary image from
> > > > itkSimpleFuzzyConnectednessScalarImageFilter but I couldn't
> > > > figure out how to set itkVoronoiSegmentationImageFilter
> > > > variables. Here is my source code.
> > > > >   >
> > > > >   >
> > =============================================================
> > > > >   > m_voronoiFilter->SetInput(m_rawImageSource->GetOutput());
> > > > >   > m_voronoiFilter->TakeAPrior(m_binaryImage);
> > > > >   > m_voronoiFilter->SetMean(520);
> > > > >   > m_voronoiFilter->SetVar(20);
> > > > >   > m_voronoiFilter->SetMeanTolerance(10);
> > > > >   > m_voronoiFilter->SetVarTolerance(20);
> > > > >   > // m_voronoiFilter->SetNumberOfSeeds(400); // ??
> > > > >   > m_voronoiFilter->SetSteps(5);
> > > > >   > m_voronoiFilter->Update();
> > > > >   >
> > =============================================================
> > > > >   >
> > > > >   > m_binaryImage is calculated from m_rawImageSource and
> > > > as I expected.
> > > > >   > But this code just makes a black image... all zeros.
> > > > >   >
> > > > >              Seungbum Koo
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >         "?i,(r) AIAI3Y, Daum" http://www.daum.net !o AEo>y3/42?A
> > > > 1<*a CN,?AI3Y !>
> > > > >
> > > > >              ou,??U! AEiCI?U! Daum,?1/2AAu
> > > > >               ,AAI,AAI 3/42?i ?e1/2AAO?   Daum??AIA<?a
> > > > >               DaumE,?oAC CE1/4oC?! ?A?ACA AO?iAC CyAA~
> > > > >
> > > > >
> > > > >
> > > >
> > > > _______________________________________________
> > > > Insight-users mailing list
> > > > Insight-users@public.kitware.com
> > > > http://public.kitware.com/mailman/listinfo/insight-users
> > > >
> > >
> >