The level set method (LSM) is a popular technique for image analysis and object identification. This paper describes an implementation of LSM using general-purpose graphic processing units (GPGPUs). Three GPGPU-centric optimizations have been applied to accelerate the computation of LSM.
LSM identifies object contours in an image by evolving a curve provided by the user through pixels of the image. Many existing LSM implementations use compute-intensive partial differential equations; this paper uses a simpler numerical solution. The image is first divided into four regions. Next, a user-provided curve is iteratively evolved through each region by calculating the curve’s relationship with the pixel intensity of the image until the algorithm has converged or a maximum number of iterations is reached. Section 4 describes details of the implementation on a NVIDIA GPGPU.
The paper describes three optimizations for LSM acceleration. The image is first divided into multiple tiles allowing contour evolution to proceed in parallel in each tile. Multiple objects, if present, are assigned to independent GPGPU kernels. Finally, memory accesses are coalesced before accessing the image data in order to maximize memory bandwidth. Section 5 includes an experimental evaluation of these optimizations using five benchmarks of varying complexity and image sizes. Results show one to two orders of improvement in execution time versus the OpenMP LSM implementation.
This is a short paper. It requires some familiarity with LSMs. I recommend accessing the references at the end for a detailed background on LSMs. Experts in computer vision and image recognition who wish to use hardware accelerators for LSM acceleration may benefit from reading it.