ENGR4620/6620: HOMEWORK 3

COMPUTED TOMOGRAPHY

In this homework, you will examine some tomography reconstruction methods with respect to image quality and noise, and you will identify some problems in the raw data (sinogram) and correct them.

For this homework, you will need Crystal Image. You have several options to run Crystal Image: (1) Remote desktop access to the CENGR Redhat Server (2) If you have a Linux computer, you can install it by downloading the software from the home page, (3) you can use the bootable liveDVD that comes with Advanced Biomedical Image Analysis (Note: Outdated operating system), or (4) you can install a virtual machine on your computer with VMWare or VirtualBox and permanently install the image inside your hard disk -- I'll be happy to provide the VM file.

In all cases, you will need the tomography module. Instructions how to install the module and how to set up Crystal Image are at the end of this page. Unless, that is, you use the Driftmier computers, which are already fully configured.

Task 1: Analysis of point-spread functions. The point-spread function (PSF) is the response of an imaging system to a point object. In CT, a thin wire that is centered within the rotating gantry would ideally produce a central white spot that abruptly drops off to zero outside of the wire region. The different reconstruction methods, however, have a different (and non-ideal) PSF.

First, prove experimentally that the backprojection without filter has a 1/r point-spread function, that is, the reconstructed image value drops off inversely proportional to the distance from the point object. Download the sinogram here (right-click the link and save the file on your hard disk). Load this file with cimage and perform a backprojection (Special → Tomography → Reconstruction), then choose "Backproject only" from the option menu. Do not change any other settings.

Hint: The best way to provide the required proof is by curve fitting. If you can show that the reciprocal intensity values fit a straight line with good correlation, you have provided sufficient evidence.
Another hint: You can force a completely straight line by using Edit → Clickstack to fine-tune the position of your mouse clicks. Good values for the points are (305, 255) and (255, 255).

With the same method, determine which backprojection filter kernel (Shepp-Logan or Ram-Lak) has the better step response. For this purpose, determine - by using the profiles - at what distance from the center the image values drop to 50 percent of the maximum (FWHM - full width at half maximum) or drop off to some lower percentage of the maximum, for example, to 10%. Step response in this case refers to the steepness of the bright-dark transition.

NOTE: The difference of the drop-off from the center between the two kernels is minimal. Ensure (e.g., by using the clickstack method) that you really hit the center. Also note that the "point" itself is about 5-6 pixels wide, and you need to cut off those initial pixels from the plateau. Alternatively, use image math: Take the first reconstruction and "push" it into the background. Perform the second reconstruction and subtract it from the first image. Use the plus/minus color map to visualize. Once again, a profile gives you quantitative data. The magnifier can be helpful, too. Overall, you can expect a difference of the dropoff steepness of less than 10%.

(conceptual question: If you subtract the Shepp-Logan reconstruction from an idealized reconstruction with infinitely steep dropoff, how would the difference look like?)

Task 2: Analysis of the influence of the number of projections. Obtain the Shepp-Logan head phantom (Special → Generate → Shepp- Logan Head Phantom). Select enhanced contrast to make the features more visible. Create projections (sinograms) with angular increments of 1, 2, 5, 10, and 20 degrees (360, 180, 72, and 36 projections, respectively). Reconstruct these sinograms with the Shepp-Logan backprojection. Determine the root mean squared error ($E_{RMS}$) to the original image. The root mean squared error between two images A and B is computed by computing the pixel-by pixel squared difference of two images and computing the mean value of the squared-difference image: $$ E_{RMS} = \sqrt{ \frac{\sum_{x,y} \left( I_A(x,y) - I_B(x,y) \right) ^2}{N^2} } $$ where $N^2$ is the total number of pixels in one of the images.

In cimage, Computing the RMSE with image math functions is tedious, so here is a macro that computes the RMSE between your displayed image and the head phantom (right-click and save this link, then use Macros → Load Macro to load it and Macros → rmse to execute). Plot the RMSE as a function of the number of projections and provide a short explanation or interpretation of the results that you obtained.

Hint: Correct RMSE values in this example would typically be near 0.1 - 0.5.

Hint: The macro (it is really a plain-text file) contains an Easter egg.

Task 3: Examine noise immunity of different reconstruction methods. This sinogram is a sinogram made from the Shepp-Logan head phantom, but it also contains significant detector noise. Reconstruct the image with the Shepp-Logan kernel and with the Ram-Lak kernel, and also use reconstruction in the Fourier domain (Radon reconstruction). Determine the amount of noise in all three reconstructed images and the RMSE with the original phantom. To determine the noise component, use the mouse to drag a region of interest (ROI) and use Measure → Statistics. You may use the standard deviation as an indicator of the noise component. Note: Try to match the ROI's as accurately as possible. Since noise is clearly dominant, you may also measure the SD of the entire reconstructed image. Do the values of SD and RMSE support the idea that the Shepp-Logan kernel has a better noise immunity than the Ram-Lak kernel?

Note: Help → Image Info tells you the ROI coordinates. Another hint: It is possible (depending on the region you select), that the difference in SD is fairly small, but you should typically see more than 10% difference.

Task 4: Problems with the acquisition system. The third sinogram provided (click here to download) is flawed by two different types of artifacts that are typical for problems in the detector system. Identify them and make suggestions how to correct those.

Hint: One artifact occurs three times. The other one is difficult to detect; it may become easier once you fixed the first one. cimage functions you could try are cycling in the x direction in Edit → Trim Image; or Process → Binary → Center features. However, you still have to explain what happened and why it did what it did.

Hint: This is a simulated image. Beam hardening, which is not part of the simulation, does not play a role in this task.

Due date and turnin

Homework is due on 10-05-2017 on eLC.

Maximum score is 30 points, 8 points each for Tasks 1 to 3, and 6 points for Task 4.

Late turnin penalty: For each late day, you lose 1 point from your total score.

Early turnin bonus: If your homework is done before the due date, you may present your work for a brief evaluation. If I find significant errors, I will point those out and return the homework to you for revision. You may turn in a revised version by the due date.


Linux VM on student lab computers

The Linux VM (virtual machine) can be accessed from almost any Driftmier desktop. There are two possible versions of the virtual machine, depending on how IT has set it up for this year.

Virtual machine on Windows desktop: In your normal Windows desktop, click the start menu and choose "All Programs". You'll find an entry labeled "Kubuntu". This entry starts a virtual machine with the Kubuntu desktop.

In the virtual machine, click the "K" start menu, and you'll find cimage under "Science and Math".

Virtual machine through Web app: Access the virtual machine with Citrix Storefront through a "suitable" browser. Unfortunately, it appears as if "suitable browser" means MS Internet Explorer (my apologies). There appears to be a workaround for Firefox, and if you insist on Firefox, contact me so I can help you.

In Internet Explorer, open this URL:
mylab.engr.uga.edu
then click on the huge "start using MyLab" icon. The Citrix Storefront will load and ask you for your credentials -- enter your MyID and password. Next, you will be presented with a screen that has the icon "Red Hat Linux Virtual Lab". Click on it. (this is where non-Explorer browsers fail - send a flame e-mail to Citrix for that)

Click on the icon, and the Red Hat desktop will open (note: This can take a while). When the Red Hat desktop has fully loaded, you will see a menu bar at the top. A drop-down menu allows access to software. You find Crystal Image under "others".

Installing Crystal Image On Your Own Computers

  1. DVD and jump drive users: You will need to download the tomography module every time you boot from the LiveDVD. Copy the module (tomography.dso) - as root - into /usr/local/cimage/dso
  2. Real Linux users: After installing cimage, you will need to separately download the tomography module once and copy it (as root) into /usr/local/cimage/dso
  3. Virtualbox users: You can run virtual Linux on your Windows or Mac computer. First, install Virtualbox. If you want a shortcut, contact me and I'll provide you with a disk image that you can use directly. Otherwise, install your favorite Linux distro (my recommendation: Kubuntu). Proceed as in Item 2 above.
Start cimage (start menu → run command, then type cimage. Or start cimage from a command-line console). Verify that the Special menu shows the entries Generate and Tomography.

For full functionality, go to File → Settings and set the Undo function to "Undo on Disk". Enter "/var/tmp" as Temp path for undo, and set the path + name for the 3D viewer to /usr/local/cimage/bin/cimage_sv. Save the settings with OK. These settings provide you with a large undo stack and activate the OpenGL rendering functionality. Note: For this homework, we'll likely need none of these.

Try Special → Generate → Shepp-Logan Head Phantom to see if you ge an image.

For 32-bit systems (LiveDVD) download the 32-bit tomography module.
For 64-bit systems (Ubuntu 64-bit) download the 64-bit tomography module. Install the 64-bit version of cimage from here.