[Insight-users] using itkVoronoiSegmentationImageFilter ?

Celina Imielinska ci42@columbia.edu
Tue, 22 Oct 2002 11:06:38 -0400 (EDT)


 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
> >
>