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