Presentation is loading. Please wait.

Presentation is loading. Please wait.

By: Mrs. S. Allin Christe, Mr.M.Vignesh, Dr.A.Kandaswamy

Similar presentations


Presentation on theme: "By: Mrs. S. Allin Christe, Mr.M.Vignesh, Dr.A.Kandaswamy"— Presentation transcript:

1 By: Mrs. S. Allin Christe, Mr.M.Vignesh, Dr.A.Kandaswamy
AN EFFICIENT FPGA IMPLEMENTATION OF MRI IMAGE FILTERING AND TUMOUR CHARACTERIZATION USING XILINX SYSTEM GENERATOR (2011) By: Mrs. S. Allin Christe, Mr.M.Vignesh, Dr.A.Kandaswamy Paper Review by: Richard Chao

2 Outline Introduction Xilinx System Generator Edge Detection
Methods and Algorithm Proposed Design Hardware Implementation Results Critiques Questions Outline 4/22/2019 School of Engineering

3 Introduction Realtime FPGA applications:
Modern Image Processing Medical Imaging Image Compression Wireless Communications Usually written in high language code C (Slows down implementation) Xilinx System Blocks to convert Block Models directly to VHDL Introduction 4/22/2019 School of Engineering

4 Xilinx System Generator (XSG)
Simulink is the development environment Usage of Xilinx blocks makes it a model based design XSG abstracts arithmetic which means it is able to perform fixed point math with precision-arbitrary. Easy to move from design to *.bit file to implement on FPGA XSG produces VHDL code, UCF, Simulation and testbench vectors Xilinx System Generator (XSG) 4/22/2019 School of Engineering

5 An edge is a point or sharp change is in an image in a region where pixel locations have abrupt luminance changes Main steps of edge detection Smoothing: Reduce Noise in an image Enhancement: Enhance quality of the edges Detection: since many points in the image will have a non-zero gradient, but shouldn't be considered an edge Localization: Find the edges and their direction Brightness values are discrete so approximation using a derivative function can be used (edge detection) Edge Detection (1)Smoothing: suppress as much noise as possible, without destroying the true edges. (2) Enhancement: apply a filter to enhance the quality of the edges in the image (sharpening). (3) Detection: determine which edge pixels should be discarded as noise and which should be retained (usually, thresholding provides the criterion used for detection). (4) Localization: determine the exact location of an edge (sub-pixel resolution might be required for some applications, that is, estimate the location of an edge to better than the spacing between pixels). Edge thinning and linking are usually required in this step. 4/22/2019 School of Engineering

6 Using Derivaitives to find Edges
First Order derivatives find maximas and minimas (Change in intensity) Second order derivatives detect the zero- crossing Using Derivaitives to find Edges 4/22/2019 School of Engineering

7 XSG Design Flow A gradient is basically a vector field that points in the direction of the greatest rate of change. 4/22/2019 School of Engineering

8 Roberts Cross Operator
Approximate the gradient of an image through discrete differentiation Sum of the squares of the differences between diagonally adjacent pixels implemented by two 2x2 vector: The magnitude of gradient and direction are given as: This method is very sensitive to noise however Roberts Cross Operator The Roberts cross operator is a very simple computational filter that that are designed to respond to a maximum of 45 degrees edges. The gradient is to find the strength of the edge, and the direction is to determine the orientation of the edge. However, since the masks are so small, it makes it very susceptible to noise 4/22/2019 School of Engineering

9 The Prewitt operator is based on the idea of central difference (approximation of derivative)
It is based on convolving the image with a small, separable integer valued filter in horizontal and vertical direction as shown in equation The Magnitude and Direction are calculated the same as the Roberts Cross. Prewitt’s operator still very vulnerable to noise even though it has a larger mask Prewitt Operator Next is the prewitt operator. This filter is a 3x3 mash done in both vertical and horizontal direction again, but it is based off the idea of central differences, an approximation of where the edge starts and stops. This filter very susceptible to noise as well. 4/22/2019 School of Engineering

10 Like the Prewitt Operator, this method also uses the idea of central difference to find the edge but improves on the noise cancellation. However, the drawback with the Sobel operator is that it does not handle curved edges very well. Sobel Operator The sobel operator tries to fix this problem of noise. However, they both produce a very similar result to one another, and they are both produce very good edges. The downside of the sobel operator is that it does not produce well defined edges that are rounded. 4/22/2019 School of Engineering

11 The Scharr Operator attempts to fix the angular detection by computing the weighted mean squared angular error in the Fourier domain: Scharr Operator The scharr operator attemps to fix the angular error! The filer does a decent job when dealing with rounded edges 4/22/2019 School of Engineering

12 Highlights regions of rapid intensity change (Second order, finds maximums and minimums of gradients, or slope of the change) Usually image has been smoothed first to reduce the sensitivity of noise The Laplacian operator is then performed on the image, which is given as: Laplacian of Gaussian 4/22/2019 School of Engineering

13 Gaussian Blur, Edge Sharpening and Thresholding
Gaussian Blur is used to smooth the image and reduce the noise in the image. The equation is given as: Edge Sharpening is performed to strengthen the output image which usually connects edges to produce a sharper image. The filter is given as: Thresholding is done to convert grayscale images into binary for faster computation of the filters Gaussian Blur, Edge Sharpening and Thresholding 4/22/2019 School of Engineering

14 Proposed Design in XSG Image will go through three phase
Image Pre-processing blocks Edge detection using XSG Image post-processing blocks For the design of the filters to meet hardware requirements, the images must be pre-processed prior to the edge detection components. 2D Images of M x N size must be made into 1D for the hardware Proposed Design in XSG The paper proposed a three phase design that to perform the edge detection. Firstly, the image will need to be pre processed so that the hardware is able to handle the data, then the image will be processed, and lastly, the image will be put back into a human readable form 4/22/2019 School of Engineering

15 Image Pre-processing blocks
Input images can be either RGB or grayscale. Images need to be converted to 1D before edge detection The frame conversion block provides the unbuffer block frames that can be made in scalar samples to output to the XSG at very high sample rates Image Pre-processing blocks The image preprocessing block simply takes any RGB or grayscale image and converts it from 2D M by N matrix and into a 1D MN by 1 array. The frame conversion block translate the data in such a way that the buffer block is able to continuously read the data in. 4/22/2019 School of Engineering

16 Edge Detection with XSG
Processes input images for edge detection Xilinx fixed point conversion is done by using Gateway In blocks Edge detection is performed using MAC FIR within the DAFIR blocks to perform sum-of-products operation to compute the convolution sum of the input 9x9 kernel Edge Detection with XSG Next is the edge detection phase. The Gateway in blocks allow the FPGA to perform fixed point precision arbitrary numbers due to the way that Xilinx has created the block. The DAFIR blocks are the ones performing convolution sum (approximation of derivative) to the input. 4/22/2019 School of Engineering

17 Image post-processing blocks
This phase needs to convert the 1D image back to a 2D human readable image Image post-processing blocks The last phase of the implementation is to convert the headware 1D image back into 2D. 4/22/2019 School of Engineering

18 The systems also tries to outline several types of tumors that it extracts from the images it processes (Region of Interest) Uses several statistics such as mean, variance, and standard deviation are used to differentiate the different type of tumors it finds Regions of Interest The research team also proposed another phase in addition to the edge detection which is to find regions of interest in three different types of tumors. 4/22/2019 School of Engineering

19 Hardware Implementation
All the blocks listed above needs to be converted into VHDL where it can be synthesized onto an FPGA Using the System Generator Block, a *.bit file is generated and sent through the JTAG to be programmed on the FPGA Spartan 3E starter kit is used (XC3S500E-FG320) for hardware level simulations. Hardware Implementation The hardware implementation was made onto a Spartan 3E starter board. This is the system gernator block property dialog to setup Simulink to be able to write to the FPGA. The great thing about using the XSG is that it is able to be configured to all Xilxinx FPGAs, which makes this a very powerful platform. 4/22/2019 School of Engineering

20 Complete XSG block diagram with Edge Detection, Blur , Thresholding, and Sharpening
4/22/2019 School of Engineering

21 4/22/2019 School of Engineering

22 Results 4/22/2019 School of Engineering

23 Results 4/22/2019 School of Engineering

24 Results 4/22/2019 School of Engineering

25 The results used less resources than Zhang’s implementation because he implemented a separate X and Y filter where as this paper performed all the filters in a single stage. XSG generated 4547 lines of VHDL -> DSP applications are very complex and not logic based, as they include a lot of floating/fixed point operations. XSG helps minimize design implementation time Results Luckly for us, our school has access to the IEEE conference papers are I was able to find out that Zhang’s implementation of the vechicle edge detetion was also written in Simulink, but his proposed design used a lot of redundant blocks to perform the edge detection. This paper cuts down on the amount of blocks by about half. 4/22/2019 School of Engineering

26 Example of the ROI extracted extraction from the image
ROI Extracted Images 4/22/2019 School of Engineering

27 ROI Accuracy 4/22/2019 School of Engineering

28 ROI Accuracy 4/22/2019 School of Engineering

29 Critique Paper was well written and easy to follow
Lots of diagrams showing the effects of each filter Good documentation on the XSG implementation Multiple references per topic they described in the paper Does not tell us what filter they ended up using when finding ROI in the MRI images Does not include the time it takes for the images to be processed Critique 4/22/2019 School of Engineering

30 Conclusion XSG offers model based design for processing
All filters are designed by blocks, MATLB code even supported as well Generates necessary files for implementation in an Xilinx FPGAs Able to perform optimization in speed, area, robustness, parallelism Proposed design can be used on ALL Xilinx FPGA, if System Generator Block is configured properly Offers fast and efficient real-time image processing Conclusion 4/22/2019 School of Engineering

31 References http://homepages.inf.ed.ac.uk/rbf/HIPR2/roberts.htm
References 4/22/2019 School of Engineering

32 Question 4/22/2019 School of Engineering


Download ppt "By: Mrs. S. Allin Christe, Mr.M.Vignesh, Dr.A.Kandaswamy"

Similar presentations


Ads by Google