fastmatch
所属分类:模式识别(视觉/语音等)
开发工具:Visual C++
文件大小:225KB
下载次数:442
上传日期:2007-09-25 10:00:57
上 传 者:
wwzzgg
说明: 一种快速的图像匹配算法,能够识别复杂背景下的小目标
(A fast image matching algorithm, to identify the complexity of the context of the small target)
文件列表:
65520778SiftGPU-0[1].5.261 (0, 2007-09-25)
65520778SiftGPU-0[1].5.261\notice.txt (819, 2007-06-02)
65520778SiftGPU-0[1].5.261\source (0, 2007-06-02)
65520778SiftGPU-0[1].5.261\source\bin (0, 2007-08-01)
65520778SiftGPU-0[1].5.261\source\lib (0, 2007-06-02)
65520778SiftGPU-0[1].5.261\source\lib\cg.lib (91636, 2007-05-21)
65520778SiftGPU-0[1].5.261\source\lib\cgGL.lib (21254, 2007-05-21)
65520778SiftGPU-0[1].5.261\source\lib\DevIL.exp (17093, 2007-05-11)
65520778SiftGPU-0[1].5.261\source\lib\DevIL.lib (28050, 2007-05-11)
65520778SiftGPU-0[1].5.261\source\lib\glew32.lib (279300, 2007-05-11)
65520778SiftGPU-0[1].5.261\source\lib\glew32s.lib (690534, 2007-05-11)
65520778SiftGPU-0[1].5.261\source\lib\glut.def (2290, 2007-05-11)
65520778SiftGPU-0[1].5.261\source\lib\glut.lib (79654, 2007-05-11)
65520778SiftGPU-0[1].5.261\source\lib\glut32.lib (79898, 2007-05-11)
65520778SiftGPU-0[1].5.261\source\lib\imdebug.lib (1922, 2007-05-11)
65520778SiftGPU-0[1].5.261\source\lib\SIFTGPU.exp (1137, 2007-05-11)
65520778SiftGPU-0[1].5.261\source\src (0, 2007-07-09)
65520778SiftGPU-0[1].5.261\source\src\FrameBufferObject.cpp (2994, 2007-07-09)
65520778SiftGPU-0[1].5.261\source\src\FrameBufferObject.h (1646, 2007-06-02)
65520778SiftGPU-0[1].5.261\source\src\GlobalUtil.cpp (10477, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\src\GlobalUtil.h (3331, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\src\GLTexImage.cpp (28400, 2007-08-01)
65520778SiftGPU-0[1].5.261\source\src\GLTexImage.h (3470, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\src\gs_types.h (1304, 2007-06-02)
65520778SiftGPU-0[1].5.261\source\src\ProgramCG.cpp (78257, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\src\ProgramCG.h (4958, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\src\ProgramGLSL.cpp (36362, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\src\ProgramGLSL.h (4797, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\src\ProgramGPU.cpp (5183, 2007-08-01)
65520778SiftGPU-0[1].5.261\source\src\ProgramGPU.h (7481, 2007-08-01)
65520778SiftGPU-0[1].5.261\source\src\ShaderMan.cpp (9341, 2007-08-01)
65520778SiftGPU-0[1].5.261\source\src\ShaderMan.h (3694, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\src\SiftGPU.cpp (26177, 2007-08-01)
65520778SiftGPU-0[1].5.261\source\src\SiftGPU.h (7141, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\src\SiftPyramid.cpp (49443, 2007-08-01)
65520778SiftGPU-0[1].5.261\source\src\SiftPyramid.h (6464, 2007-07-31)
65520778SiftGPU-0[1].5.261\source\VC (0, 2007-08-01)
65520778SiftGPU-0[1].5.261\source\VC\SiftGPU.dsp (6374, 2007-06-02)
... ...
A GPU implementation of David Lowe's Scale Invariant Feature Transform
Changchang wu
http://cs.unc.edu/~ccwu
University of North Carolina at Chapel Hill
1. SIFT
SiftGPU is an implementation of SIFT for GPU. It does pyramid construction, keypoint
detection and descriptor generation on GPU. Subpixel/subscale localization is also
implemented in the latest version. Not only can SiftGPU process pixels/features paralelly
with GPU, but also this implementation reduces readback time by generating compact
feature list with GPU algorithms.
SiftGPU borrows a lot from Andrea Vedaldi's sift++ . Many parameters of sift++ ( for
example, number of octaves,number of DOG levels, edge threshold, etc) are available
in SiftGPU. Shader programs are dynamically generated according to those parameters.
SiftGPU is nice for large images. After processing the first image, all the texture
will be allocated, and some are well cached. Then processing new images with same
dimensions will be very efficient. We tried processing pgm image sequence of size
2048*1365 on nVidia 8800 GTX. It is slow in the first round, but it gets a speed
of about 4hz after!
2. Hardware
The entire functionality works fully only on hardware that supports cg profile fp40/vp40
or higher, for example, nvidia 7900, 8800. If your GPU does not support fp40/vp40,
orientation computation of SIFT will be simplified, edge elimination will be ignored,
and descriptor will be ignored.
There are also some GPU parameters to play with. You can try to tune them to get the
best performance for you GPU.
3. Environment
Both VC6 workspace and VS2005 solution are provided: VC\SiftGPU.dsw and VC\SIftGPU.sln.
Make sure you set necessary arguments when running the binaries in VC. Please use
Release build in VC to get better performance.
Linux makefile is now also provided.
4. Dependencies
SiftGPU uses the CG (1.5 or 2.0), DevIl Image library, GLEW and GLUT.
5. Notes
SiftGPU need to allocate textures for storage initially or when any image that cannot
fit in the allocated storage. It would be very effecient if you pre-resize all images
to a same dimension, and process them with one SiftGPU instance because memeory is
being resued.
When processing image sequence with varing sizes, you can try use the maximum size
to allocate storage for all the images , or you can try multiple pyramids
Loading some images (.e.g jpg) may take a lot of time on decompressing,
Please use binary pgm file instead of jpg to get better speed.
SiftGPU may get slightly different result on different GPUs due to the difference in
floating point precision.
SiftGPU might be slow if your graphic card does not have enough memory. This is because
virtual memory is automatically used when physical memory is running out.
6. Helps
Use -help to get parameter information. Check /doc/manual.doc for samples and explanations.
In the vc workspace, there is a project called SimpleSIF that gives an example of simple
SiftGPU usage. There are more examples of different ways of using SiftGPU in manual.doc.
The document is not very detailed yet, but a more extensive version will come up later.
Check /doc/manual.doc for help on the viewer.
History
0.5.261
Added a new feature for using existing memories for processing smaller images
Added new functions to let user control the allocation pyramid momory
Fixed a bug with sub-pixel localization (sorry for this)
0.5.256
Added linux makefile
Added a new feature for allocating seperate processing memories for multiple images.
0.5.250
New keypoint detection code capable of sub-pixel/sub-scale localization
Changed code for easy Linux porting. Thank Martin Schneider for his help on this
Changed some default values of the parameters.
Improved SIFT visualization.
0.5.236
Fixed an important bug in orientation computation
Successfully tested on many image matching experiments
Changed the command line -m to default 2 orientations
0.5.232
Fixed a sift output bug
Fixed a NaN bug in descriptor generation
Fixed a bug that some images are flipped
0.5.224
Fixed a memory leak bug on FBO
Added one more demo for processing ***0*480 image sequence
Smalled change to interface, so that image data can be specified like OpenGL textures
0.5.220
Added more examples to manual.
Added more comments about the siftgpu interface
Added one more input interface
Fixed bug of crash on image size change
0.5.208
First release
近期下载者:
相关文件:
收藏者: