26.12.2013 Views

Automatic Vertebra Detection in X-Ray Images - Faculdade de ...

Automatic Vertebra Detection in X-Ray Images - Faculdade de ...

Automatic Vertebra Detection in X-Ray Images - Faculdade de ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ever, vertebrae <strong>in</strong>tensity vary a lot: cervical vertebrae<br />

usually have low <strong>in</strong>tensity and lumbar vertebrae usually<br />

present very high <strong>in</strong>tensity. This makes it difficult<br />

to classify regions as vertebrae because we cannot <strong>de</strong>f<strong>in</strong>e<br />

pattern levels of <strong>in</strong>tensity. The <strong>in</strong>tensity of a vertebra<br />

<strong>de</strong>pends of its position and of the image acquisition<br />

equipment. For tackl<strong>in</strong>g this problem our algorithm<br />

uses a progressive threshold<strong>in</strong>g approach. The<br />

algorithm starts by count<strong>in</strong>g the number of pixels per<br />

row at a very low threshold. Then, the threshold value<br />

is <strong>in</strong>cremented at a slow rate and the count<strong>in</strong>g process<br />

is repeated. Figure 5 illustrates <strong>in</strong> the right si<strong>de</strong> the result<br />

of apply<strong>in</strong>g this technique, although we only <strong>in</strong>clu<strong>de</strong>d<br />

some threshold values for <strong>de</strong>monstration proposes.<br />

As we may observe, with low threshold levels<br />

we are able to isolate vertebrae with low <strong>in</strong>tensity<br />

(typically at the cervical) and with higher threshold<br />

levels we accomplish to <strong>de</strong>tect vertebrae with higher<br />

<strong>in</strong>tensity.<br />

Figure 5: Detect<strong>in</strong>g no<strong>de</strong>s along the sp<strong>in</strong>e (thresholds<br />

from left to right: 32, 48, 176, and 192)<br />

Nevertheless, this algorithm has two issues that<br />

must be solved <strong>in</strong> or<strong>de</strong>r to correctly divi<strong>de</strong> the sp<strong>in</strong>e<br />

<strong>in</strong>to vertebrae: (i) vertebrae may become shorter and<br />

shorter while <strong>in</strong>crement<strong>in</strong>g the threshold, and (ii) vertebrae<br />

may be divi<strong>de</strong>d <strong>in</strong> several smaller regions due<br />

to <strong>in</strong>tensity variations along vertebrae. For handl<strong>in</strong>g<br />

these problems we <strong>de</strong>ci<strong>de</strong>d to use a tree data structure<br />

to store the regions that the algorithm <strong>de</strong>tects.<br />

Every time a new region is found, it is ad<strong>de</strong>d to the<br />

tree as a child of the smallest region that entirely encloses<br />

the new region. In or<strong>de</strong>r to control the tree size<br />

and to overcome the problem (i), before <strong>in</strong>creas<strong>in</strong>g the<br />

threshold to search for new regions, we prune the tree<br />

by remov<strong>in</strong>g the leafs which have no sibl<strong>in</strong>gs. Leafs<br />

with no sibl<strong>in</strong>gs are not <strong>in</strong>terest<strong>in</strong>g because they do<br />

not divi<strong>de</strong> the parent region. At most, they reduce the<br />

size of the parent region which is not <strong>in</strong>terest<strong>in</strong>g because<br />

vertebrae should have maximum height <strong>in</strong> or<strong>de</strong>r<br />

to stay close to each other. By the end of the algorithm,<br />

the tree is fully constructed and its leafs should<br />

represent vertebrae, unless some vertebrae were overdivi<strong>de</strong>d.<br />

For <strong>de</strong>tect<strong>in</strong>g over-divi<strong>de</strong>d vertebrae we do<br />

two tests: (i) we check if the gaps between vertebrae<br />

are not too large, and (ii) we <strong>de</strong>term<strong>in</strong>e if the vertebra<br />

size is consistent with its adjacent vertebrae (e.g.<br />

if it is not too small compared to its largest adjacent<br />

vertebra). Whenever one of the previous situations is<br />

<strong>de</strong>tected, we test if the leaf’s parent is a better candidate<br />

for that vertebra. If that is the case, we remove all<br />

the leaf’s parent chil<strong>de</strong>s, transform<strong>in</strong>g the parent <strong>in</strong>to<br />

a leaf and therefore <strong>in</strong> a vertebra.<br />

2.3 Detect<strong>in</strong>g vertebrae limits <strong>in</strong> the X axis<br />

After <strong>de</strong>tect<strong>in</strong>g where the vertebrae are located along<br />

the sp<strong>in</strong>e, we must <strong>de</strong>tect where they start and end<br />

along the X axis. This operation may be more difficult<br />

than what it seems because part of the ribs may still<br />

be attached to vertebrae <strong>in</strong> the processed image. This<br />

happens when ribs also show high <strong>in</strong>tensity levels and<br />

the sp<strong>in</strong>e isolation method is not precise enough to get<br />

rid of them.<br />

For <strong>de</strong>tect<strong>in</strong>g vertebrae X limits we divi<strong>de</strong> them <strong>in</strong><br />

several clusters along its width (currently we divi<strong>de</strong> it<br />

<strong>in</strong> 15 clusters). Then, we rank the clusters accord<strong>in</strong>g<br />

to their <strong>in</strong>tensity levels. Intensity levels are calculated<br />

us<strong>in</strong>g an exponential scale to give more prepon<strong>de</strong>rance<br />

to very high levels. This allow us to dist<strong>in</strong>guish<br />

between clusters with high <strong>in</strong>tensity structures surroun<strong>de</strong>d<br />

by low <strong>in</strong>tensity pixels, and more homogeneous<br />

clusters with average <strong>in</strong>tensity levels. We then<br />

select the first three clusters with more <strong>in</strong>tensity and<br />

we elect them as candidates for be<strong>in</strong>g the X limits.<br />

One of these candidates will represent the start of the<br />

vertebra and the other will represent the end. Initially,<br />

the two more <strong>in</strong>tense clusters are selected. Then, for<br />

each vertebra, we compare its width and X centre with<br />

its nearest 4 vertebrae. If we <strong>de</strong>tect a consi<strong>de</strong>rable <strong>de</strong>viation<br />

of the vertebra centre or an unexpected change<br />

<strong>in</strong> width, we try different comb<strong>in</strong>ations of the three<br />

candidate clusters and we select the ones that best fit<br />

the conditions.<br />

F<strong>in</strong>ally, we optimise the results by f<strong>in</strong>d<strong>in</strong>g <strong>in</strong>si<strong>de</strong><br />

the elected clusters the largest concentration of bright<br />

pixels. Only then the process of <strong>de</strong>tect<strong>in</strong>g the X limits<br />

is completed. In Figure 6 we may see the no<strong>de</strong>s<br />

4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!