Feature Detection

One of the major functionalities available through CUVI Lib is a rich set of feature detection algorithms. Detecting interesting parts of an image is an important step in most computer vision applications. It serves as the first low-level processing step in applications like image segmentation, object recognition and tracking. Most commonly, feature detectors evaluate every pixel of an image to determine presence or absence of a feature, therefore, tend to be a computationally expensive operation. With CUVI Lib several detectors have been made available that include Hough Lines/Circles/Ellipses, Harris Corners and KLT Features. These are in addition to the edges detectors already available in NPP.

Corner Detectors

Corner features are image features characterized by their high intensity changes in the horizontal and vertical directions. For instance, if a square object is present in the image then its four corners are very good interest points. Corner features are extensively used in several computer vision applications such as shape analysis, motion detection, 3D reconstruction and camera calibration.

The two most commonly used corner detectors to-date are the Harris and Kanade-Lucas-Tomasi (KLT) corner detectors both of which are now available in CUVI Lib with real time computational speeds for practical image sizes.

Local Blob Detectors

Very soon a set of robust local feature detectors and descriptors is also going to be added to CUVI Lib that include SIFT (Scale Invariant Feature Transform), SURF (Speeded Up Robust Features) and MSERs (Maximally Stable Extremal Regions). Robust local features and descriptors find successful applications in image processing tasks like camera calibration and object recognition. These descriptors are designed to be invariant to illumination changes, image scale and rotation and can be robustly matched over a substantial range of affine distortion and change in 3D viewpoint. CUVI Lib provides real time implementation of these features for practical image sizes which will prove highly valuable for computer vision application engineers and programmers.

Benchmark

This is a speed comparison between CUVILib and OpenCV. We have chosen KLT because it is one of the most advanced and compute extensive algorithms of computer vision. Our implementation on GPUs is magnitudes faster than that of OpenCV. The videos are saved at the actual processing frame rate.

CUVI 33fps (Video Size: 720p) OpenCV 2.5fps (Video Size: 720p)

For KLT in particular, we guarantee a minimum of 3 times faster results as compared to OpenCV on a low end graphics card like 9800GT. However you will experience massive speedups (8x and more) on higher end graphics card like GTX 470.

benchmark-opencv-cuvi