This implementation of GPU-Surf is open-source (license MIT) and should be cross-platform (currently tested on Windows only). It is based on Ogre3D to get DirectX/OpenGL abstraction.
This is a partial implementation of Surf algorithm (feature detector implemented but feature descriptor missing).
This implementation is based on the paper: N. Cornelis, L. Van Gool: Fast Scale Invariant Feature Detection and Matching on Programmable Graphics Hardware.
Original image | Corner detection |
Result using my implementation |
Development status :
There are 3 versions of GPUSurf on the svn:
- GPUSurfDemo3: only working with DX9 (obsolete).
- GPUSurfDemo: using Ogre::Cuda and Ogre::Compositor for GPGPU (will become obsolete).
- GPUSurfFeatureDetector: using Ogre::Cuda and Ogre::GPGPU.
Currently there are no version working properly with OpenGL because the function “cudaGraphicsSubResourceGetMappedArray” return an error when I try to access a mipmap level higher than 0. I think that there is an issue with the way Ogre3D create OpenGL texture with mipmap, but I have to investigate a bit more… Moreover I have translated all pixel shader from HLSL to GLSL but GLSL shaders need to be optimized.
Links :
Binary Demo : GPUSurfDemo1.zip
Source Code : svn on code.google
Documentation : GPUSurf.pdf
License : MIT
Trackbacks /
Pingbacks