Skip to main content

Master Thesis: A NOVEL METHOD FOR THE QUANTIFICATION OF CORONARY ARTERY STENOSIS: A 2D QCA SYSTEM



Abstract of the thesis as follows:

According to reports published by WHO, vascular diseases are leading cause of death and it is very widespread in both developing and developed countries. Therefore, diagnosis of coronary artery diseases plays an important role on health of the whole world. Although there exist many different imaging modalities used for coronary artery imaging like CTA, DSA and MRI, the most commonly used imaging modality in clinics is XRA. Using XRA images, interventional cardiologists give a decision about the treatment planning by investigating anatomic characteristics of stenotic coronary artery. Most of the clinicians do not have QCA tools to quantify the degree of stenosis automatically and they have to inspect the stenosis visually depending on their experience. Since visual inspection of a stenosis depends on the experience of the clinicians, clinicians are not able to agree on the severity of the same stenosis. This phenomenon is called as subjective interpretation and causes wrong decisions about the treatment planning. We propose a remedy to this phenomenon with a novel semi-automatic 2D QCA system which quantifies the stenosis severity by using the anatomical properties of the stenotic region. QCA system we have proposed is based on the deformable splines and their optimization using dynamic programming. Finally, 2D lesion characteristics are compared with the FFR which is a gold standard technique on the determination of functional severity of a stenosis. In this way, correlation between 2D lesion characteristics and functional severity of a stenosis is investigated.
Keywords: Gabor Filter, Perona-Malik Anisotropic Diffusion, B-Spline Snakes, Dynamic Programming, Quantitative Coronary Angiography (QCA)

As a final product, a MATLAB-based semi-automatic software tool was created for both researchers and clinicians.



PROPOSED ALGORITHM


1- Contrast Limited Adaptive Histogram Equalization (CLAHE)

Since images obtained from X-ray angiography generally suffer from poor and variable contrast problem (as shown in Figure 4.2), CLAHE is a good and popular remedy for contrast enhancement compared to standard histogram equalization method.

Advantage of CLAHE over usual adaptive histogram equalization (AHE) method is that it does not over amplify the noise as AHE does.



2- Perona-Malik Anisotropic Diffusion (PMAD)
Anisotropic diffusion was firstly proposed by Perona-Malik [1] and they presented this approach as an analogy to the heat equation. Heat equation is known as the partial differential equation, which describes distribution and diffusion of heat in an environment over time. As time passes, warmer part of an object gets gradually colder and colder part of the object gets warmer till all parts of the object reach the same temperature. Perona and Malik formulated the smoothing problem in the scope of heat equation aiming that heat diffusion is restricted into a specific area. Unlike the traditional smoothing techniques (i.e. Gaussian filter) which smooths the whole image including edges, anisotropic diffusion smooths the image, while preserving edges. This was the main difference and contribution of Perona and Malik.



3- Edge Detection
In this step of the algorithm, there are two possible ways of extracting edge features of vessel structures namely, Gabor filter and Canny edge detector as shown in below Figure. User is free to choose either of the two methods depending upon the advantages and disadvantages. Result of this step is the edge feature image which will be used in the spline fitting part as an external energy function.


  • Gabor Filter
Gabor filter is very popular in image processing and computer vision research areas since it is very useful in localizing edge and line features of an image in both frequency and spatial domain. This filter takes its name from Gabor who is the first one proposing 1D Gabor function in 1946 as a multiplication of a Gaussisan function with a sinusoid.

2D Gabor filters, however, were firstly introduced by Daugman in 1980 in his study whose subject is orientation and spatial-frequency selective properties of neuron cells in the visual cortex of the brain [2].


If 2D Gabor filters are directly used, they will have a slight DC response for regions having uniform luminance (DC) [3]. However, our purpose is to have a non-zero filter response for only edge features of the image. Then we need to used Zero Mean 2D Gabor filters. While odd part (sinusoid) of the Gabor function gives no response to uniform luminance region, even part (cosinusoid) of the Gabor function gives non-zero response which is undesired. Since this non-zero DC response would be detrimental to enhancement of small vessels and sharp edges of large vessels, it must be removed [4].    

  • Canny Edge Detector

As an alternative method to Gabor filter, Canny edge detector could be used as an external energy function for spline optimization scheme. Canny edge detector is an alternative of three steps of the other branch of edge detection part of the algorithm. While output of the Gabor filter is floating point numbers, output of the Canny edge detector is a binary image. Therefore, Canny edge detector has discrete edge responses and is prone to discretization errors. However, Canny edge detector is slightly faster than the Gabor filter; since application of many differently oriented Gabor filters takes more time compared to Canny.

While Canny performs well in coarse vessel structures, it under performs in the fine vessels compared to Gabor filter


4- Spline Fitting

In this step of the algorithm, image obtained in the edge detection part is used as external energy function and CLAHE-enhanced image is used when splines or initialized as a visual aid to the user. There are two possible ways of fitting B-splines to the vessel borders. User is free to choose either of these two methods. First method is initializing splines manually and optimizing them using dynamic programming. The other method is fitting splines by using only a few control points put by the user which is called as Semi-automatic Spline Initialization and Fitting.


  • Manual B-Spline Initialization and Dynamic Programming
Dynamic programming is a method for handling complex problems by dividing them into simpler sub problems (divide and conquer approach). Advantage of solving sub problems is to reduce the number of calculations and hence increase the performance of the algorithm.
Since dynamic programming provides good optimization results and allows more efficient algorithms, its use is widespread in many research areas in any form and variety.  
Dynamic programming is used to minimize the total energy of the B-spline and hence optimize it. 

  • Fast Semi-Automatic Spline Fitting

This method is alternative to the method in which splines are manually initialized and then optimized by dynamic programming. Although dynamic programming having a lower algorithmic complexity is developed, it is still time consuming due to its iterative nature. 

In semi-automatic spline fitting method, user does not have to initialize splines by putting control points one by one. Instead, a few control points put before and after the stenotic region and traversing inside of the vessel are enough. The method can be summarized as follows: Firstly two control points are put into the inner region of the vessel, and then linearly spaced control points are generated between two control points. Afterwards, each of these control points searches for the maximum energy point (i.e. edge point) in a direction perpendicular to the line formed by linearly-spaced control points as shown in below Figure 4.35. This search is bidirectional and both right and left spline control points are found. After control points are detected, right and left splines are easily formed by using these control points.

5- Detection and Quantification of Stenosis

  • Detection of Stenosis

In order to quantify the stenosis using 2D projection of a 3D vessel lumen, we need some quantitative parameters indicating the 2D anatomy of the vessel. These parameters are mean diameter and minimum diameter. While mean diameter is calculated in the non-stenotic part of the vessel, minimum diameter is measured in the stenotic part. Therefore, we need to separate non-stenotic region from the stenotic one. Detection of a stenosis includes the start and end point of stenosis.  

Detection of a stenosis is achieved by using trace profile graph. The first steepest slope (i.e. first derivative) is a sign for the start point of the stenosis. The second steepest slope is a sign for end point of the stenosis. In this way, stenotic region is detected.


  • Quantification of Stenosis
After two splines are optimized and deformed so that they take the whole shape of the vessel, stenosis of the artery must be detected quantitatively. Quantification of severity of stenosis in this section will be based on geometrical features of the vessel like mean diameter, minimum diameter, mean cross section and minimum cross section of the artery. Using these geometrical features of the vessel, stenosis is quantified as a percentage


where Lr   is the minimal diameter in stenotic region, Lm   is the mean diameter in non-stenotic region, Ar   is the minimum cross sectional area in stenotic region, Am  is the mean cross sectional area of the non-stenotic region. Ar and Am   values are computed under the assumption that vessels have circular cross sections. 




Main disadvantage about the above stenosis measurements are that they extremely depend on the viewpoint of the imaging. In other words, percent length or area stenosis of an artery may differ from one viewing angle to another. To be able to assess the severity of the steonsis anatomically (i.e. geometrically), we need to determine both Lr and Lm values. We will use simple analytical geometry approach to determine these two values.

You can reach whole text of this master thesis at here:



REFERENCES
[1] P. Perona, J. Malik, "Scale-space and edge detection using anisotropic diffusion," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.12, no.7, pp.629,639, Jul 1990
[2] J. Yang, L. Liu, T. Jiang, Y. Fan, “A modified Gabor filter design method for fingerprint image enhancement”, Pattern Recognition Letters, Volume 24, Issue 12, August 2003, Pages 1805-1817
[3] J.-C. Lee C.-H. Lee C.-B. Hsu P.-Y. Kuei K.-C. Chang,  “Dorsal hand vein recognition based on 2D Gabor filters”, The Imaging Science Journal, Volume 62, Issue 3, pp. 127-138, March 2014
[4] Klein, A.K.; Lee, F.; Amini, A.A., "Quantitative coronary angiography with deformable spline models" , IEEE Transactions on Medical Imaging, vol.16, no.5, pp.468,482, Oct. 1997








Comments

Popular posts from this blog

How to Fill out a Cheque?

In this post, I will demonstrate how to fill out a cheque properly. You can have a cheque book either from your bank or any store. If you find these two suggestions expensive, you could also design and print out your own cheque. In Figure 1, a sample cheque is displayed and in Figure 2, some regions of the sample cheque are highlighted. Figure 1: Sample unfilled cheque. Figure 2: Some regions are highlighted in sample cheque. 1- Name and Address of Payer: Name and  address of the person who is the owner of this cheque and is filling out the cheque should be written in this region. 2- Date: For any official document, date is a mandatory field and hence you should write current date in this region. 3- Payee Name: Payee could be either a person or an organization (Store, Restaurant, Company, School etc.) You should write the name of the payee here explicitly. 4- Amount of Payment (Numeric): Exact amount of the payment should be w

Star Wars ASCIImation with Python - Windows

In this post, we'll watch a Star Wars movie in ASCII format. The only thing we need for this demo is Python-installed PC and internet connection. Figure : Screenshots from Python Command line while Star Wars is being streamed All credits gained in this demo will go to " blinkenlights.nl " [2] website, which broadcasts this ASCII movie using Telnet protocol on Port 23, and Python which makes socket implementation very easy for us. No authentication is needed for this broadcast. Anyone who is able to create a TCP socket and listens  blinkenlights.nl  on port 23 would be able to get this stream and display on their Python command line. CODE My main source for Python source code is [1]. What  code below does is simply importing Python "socket" library, create a socket, use " towel.blinkenlights.nl " address variable to create connection, receive data from socket and display it. While typing (copy/paste) code, be careful about indentatio

Internet of Things (IoT) with MicroPython

VIDEO LIVE DEMO Please check the link for Live DEMOs  SLIDES REFERENCES    [1] http://micropython.org/    [2] WebREPL: http://micropython.org/webrepl/    [3] Programming with MicroPython, Nicholas H. TollerWay    [4] http://dpgeorge.net/    [5] https://github.com/micropython/micropython    [6] https://www.youtube.com/watch?v=EvGhPmPPzko&t=1488s    [7] https://forum.micropython.org/viewtopic.php?t=744    ABBREAVIATIONS   REPL : Read Evaluate Print Loop