Real-time optical coherence tomography (OCT) using a GPU

Optical coherence tomography (OCT) is a non-contact, non-invasive interferometric technique which allows micrometer resolution imaging of tissues. OCT can be classified into two categories: time domain OCT and Fourier domain OCT. In time domain OCT, the interference signal is measured in time while axially translating a reference mirror to generate a reflectivity profile (or A-scan) in depth. Fourier domain OCT eliminates the need for mechanical A-scans by recording the interference signal as a function of wavelength. Fourier domain OCT schemes have advantages of a better signal-to-noise ratio than time domain OCT schemes and have a signicantly improved imaging speed. 

OCT digital signal processing mechanisms based on current central processing units (CPU) are not capable of coping with such data processing speeds and limit the sample rate dramatically. Therefore, we propose to use a low-cost graphics processing unit (GPU) that can be placed into every modern PC to do all the digital signal processing that is required in FD-OCT. This results in real-time video rate (25fps) OCT imaging without the need for any extra processing hardware.

Fourier domain OCT of a human finger pad. A video was recorded at 25 frames per second using our GPU-based FD-OCT signal processing scheme. The image quality is sufficiently high to distinguish between different layers (Epidermis and Dermis) of the finger skin. One can also clearly recognize the sweat ducts spiralling down from the skin surface.

Fourier domain OCT of the circulatory system of a common worker ant cross section of its abdomen in vivo. Using double-sided tape the ant was positioned on its back (the ant survived the scan) during the measurement. The raw unprocessed interference data was stored in memory at 25 frames per second, after which we performed both CPU- and GPU-based digital signal post-processing on this data. We proceeded to sample the image sequence at the maximum possible displaying rate of both methods to look at the difference in viewing quality between them. This means that the GPU-processed images were sampled at 25 fps, but the CPU-processed images had to be downsampled to 7.5 fps to represent the effective displaying rate. Where the GPU-method was able to process all of the available 180 frames in the image sequence in 7.20 seconds, the CPU-method was limited to processing only 7.5/25*180 = 54 frames in the same time period. The CPU-processed image sequence was filled up with copies between the frames so that both CPU- and GPU-based methods could be compared to each other in a one 25 fps video. One can recognize a smoother, more fluid image transition on the GPU side than on the CPU side.