[Insight-users] Flux driven medial curve - Multi thread

Sergio Vera sergio.vera at alma3d.com
Wed Apr 3 03:56:06 EDT 2013


My 2 cents:

MCF is a AOF driven Iterative thinning. All of the paral·lel thinning
methods that I've seen so far seem to be quite complex: when you remove a
simple voxel the local topology may change, and this can be very
problematic if you have several workers chewing at the same object. Removal
of voxels should be properly relayed to other workers or different they may
end up having different views on the simplicity of a specific voxel.
And there is the fact that a solution like this one might not be as fast as
possible.

However, I think that if you can ensure that different workers do not
overlap their 3x3x3 working area things may be parallelized: you take
voxels based on their (AOF) value on the priority list. if you can take n
voxels, and check that they are distant enough, then perhaps you can assign
it to n different worker threads to check for their simplicity. When you
remove any voxel, all of its neighbours should re-enter the AOF priority
list (if I remember correctly), so many workers need to write to the
AOF-list simultaneously (your AOF list structure must be thread safe), and
I don't know if this scheme might have a bottleneck of performance in the
acces of this AOF queue.

At first thought this seems to me the less effort modification to the AOF
driven thinning. It might be worth a try. I think that this, hoewver,
diverges from the classic ITK multithreading paradigm.

Best regards




On Mon, Mar 25, 2013 at 4:10 AM, Sergio Aguirre <sergio.aguirre at gmail.com>wrote:

> Hi everyone.
>
> I am exploring an algorithm published in the Insight Journal titled "Flux
> Driven Medial Curve Extraction" -
> http://www.insight-journal.org/browse/publication/165
>
> Basically its a nice algorithm to extract centerlines of binary images
> through a distance map.
>
> I have successfully compiled and used it on ITK 4.3.1 by doing some slight
> modifications. The algorithm has 2 classes of which I am interested in
> multi-threading
>
> itk::AverageOutwardFluxImageFilter (AOF)
> itk::MedialCurveImageFilter (MCF)
>
> Regarding the AOF, I was able to translate into a multi-threaded
> algorithm.
>
> However, the MCF proves to be more challenging since it has to cycle
> structures in the GenerateData call a FOR with the iterators and afterwards
> a WHILE cycle with no iterators. Furthermore, there are several protected
> methods that are called in both cycles that iterate through the image as
> well.
>
> Would this filter need a total re-do to be able to multi-thread it? Has
> anyone attempted to use it in that way?
>
> I would appreciate any insights.
>
> Thank you,
> Sergio
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>


-- 
Sergio Vera

 Alma IT Systems
 C/ Vilana, 4B, 4º 1ª
 08022 Barcelona
 T. (+34) 932 380 592
 www.alma3d.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20130403/aa544729/attachment.htm>


More information about the Insight-users mailing list