Autonomous Space Robotics Lab

Speeded Up SURF

UTIAS ASRL

asrl::GpuSurfDetectorInternal Class Reference

The private implementation of the GPU surf detector. More...

#include <GpuSurfDetectorInternal.hpp>

List of all members.

Public Member Functions

 GpuSurfDetectorInternal (GpuSurfConfiguration config)
virtual ~GpuSurfDetectorInternal ()
void buildIntegralImage (cv::Mat &image)
void detectKeypoints ()
void detectKeypoints (float threshold)
void findOrientation ()
void findOrientationFast ()
void computeDescriptors ()
void computeUprightDescriptors ()
void getKeypoints (std::vector< cv::KeyPoint > &outKeypoints)
void setKeypoints (std::vector< cv::KeyPoint > const &inKeypoints)
void initDetector (int width, int height)
void saveIntegralImage (std::string const &basename)
void getDescriptors (std::vector< float > &outDescriptors)
int descriptorSize ()

Public Attributes

bool m_initialized
 Has the detector been initialized?
boost::shared_ptr
< GpuIntegralImageProcessor
m_intProcessor
 A class that processes integral images.
boost::shared_ptr
< GpuIntegralImage
m_intImg
 An integral image.
GpuSurfOctave m_octaves [ASRL_SURF_MAX_INTERVALS]
 A list of octaves to be processed.
float m_dxx_width
 A value derived from the mask parameters used to speed up calculation of the masks.
float m_dxx_height
 A value derived from the mask parameters used to speed up calculation of the masks.
GpuSurfFeatures m_features
 A class to hold the features on the GPU.
GpuSurfConfiguration m_config
 The configuration values used to initialize this detector.
cudaDeviceProp m_deviceProp
 The properties of the device.
CudaSynchronizedMemory< int4 > m_maxmin
 A temporary buffer for the max/min points.
CudaSynchronizedMemory< float > m_interest
 a buffer to store the results of the interest operator calculation

Detailed Description

The private implementation of the GPU surf detector.

Definition at line 62 of file GpuSurfDetectorInternal.hpp.


Constructor & Destructor Documentation

asrl::GpuSurfDetectorInternal::GpuSurfDetectorInternal ( GpuSurfConfiguration  config  ) 

Constructs a detector based on configuration parameters

Parameters:
config The set of configuration parameters.

Definition at line 46 of file GpuSurfDetectorInternal.cpp.

asrl::GpuSurfDetectorInternal::~GpuSurfDetectorInternal (  )  [virtual]

The destructor.

Definition at line 72 of file GpuSurfDetectorInternal.cpp.


Member Function Documentation

void asrl::GpuSurfDetectorInternal::buildIntegralImage ( cv::Mat &  image  ) 

The first step in the surf pipeline. This builds an integral image from the image argument Only densly packed images images of type CV_8UC1 are supported.

Parameters:
image The image used to create the integral image.

Definition at line 77 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::computeDescriptors (  ) 

This computes a descriptor for each keypoint on the GPU

Definition at line 148 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::computeUprightDescriptors (  ) 

This computes an upright (not rotation invariant) descriptor for each keypoint on the GPU

Definition at line 160 of file GpuSurfDetectorInternal.cpp.

int asrl::GpuSurfDetectorInternal::descriptorSize (  ) 

The descriptor size

Returns:

Definition at line 196 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::detectKeypoints ( float  threshold  ) 

The second step in the SURF pipeline. This detects keypoints using the fast hessian algorithm

Parameters:
threshold the threshold to use in the detector

Definition at line 111 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::detectKeypoints (  ) 

The second step in the SURF pipeline. This detects keypoints using the fast hessian algorithm This function uses the threshold stored in the configuration.

Definition at line 106 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::findOrientation (  ) 

This computes an orientation for all keypoints currently on the GPU

Definition at line 128 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::findOrientationFast (  ) 

This computes an orientation for all keypoints currently on the GPU This computation is slightly faster than the one described in the SURF paper

Definition at line 138 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::getDescriptors ( std::vector< float > &  outDescriptors  ) 

This downloads the keypoint descriptors from the GPU and packs them into the vector

Parameters:
outKeypoints The vector of keypoint descriptors found.

Definition at line 180 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::getKeypoints ( std::vector< cv::KeyPoint > &  outKeypoints  ) 

This downloads the keypoints from the GPU and packs them into the vector

Parameters:
outKeypoints The vector of keypoints found.

Definition at line 165 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::initDetector ( int  width,
int  height 
)

This function initializes the detector for an image of a certian hight and width. Internal buffers are allocated and constants are pushed to the GPU.

Parameters:
width The width of the image to process
height The height of the image to process

Definition at line 202 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::saveIntegralImage ( std::string const &  basename  ) 

This saves the integral image to disk

Parameters:
basename The base fileame. The integral image will be saved as basename-iimg.bin

Definition at line 90 of file GpuSurfDetectorInternal.cpp.

void asrl::GpuSurfDetectorInternal::setKeypoints ( std::vector< cv::KeyPoint > const &  inKeypoints  ) 

This pushes keypoints on to the GPU.

Parameters:
inKeypoints The keypoints to be pushed on to the GPU

Definition at line 175 of file GpuSurfDetectorInternal.cpp.


Member Data Documentation

The configuration values used to initialize this detector.

Definition at line 189 of file GpuSurfDetectorInternal.hpp.

The properties of the device.

Definition at line 192 of file GpuSurfDetectorInternal.hpp.

A value derived from the mask parameters used to speed up calculation of the masks.

Definition at line 183 of file GpuSurfDetectorInternal.hpp.

A value derived from the mask parameters used to speed up calculation of the masks.

Definition at line 181 of file GpuSurfDetectorInternal.hpp.

A class to hold the features on the GPU.

Definition at line 186 of file GpuSurfDetectorInternal.hpp.

Has the detector been initialized?

Definition at line 171 of file GpuSurfDetectorInternal.hpp.

a buffer to store the results of the interest operator calculation

Definition at line 198 of file GpuSurfDetectorInternal.hpp.

An integral image.

Definition at line 176 of file GpuSurfDetectorInternal.hpp.

A class that processes integral images.

Definition at line 174 of file GpuSurfDetectorInternal.hpp.

A temporary buffer for the max/min points.

Definition at line 195 of file GpuSurfDetectorInternal.hpp.

A list of octaves to be processed.

Definition at line 179 of file GpuSurfDetectorInternal.hpp.


The documentation for this class was generated from the following files:

Generated on Fri Apr 30 20:06:20 2010 for gpusurf by doxygen 1.6.2