關於SiftGPU,有時候我們需要更多的匹配對的數目
兩種方式:
1,增加提取的特徵點的數目
2,特徵點的數目給定後,增加要提取的匹配對數目
參考SiftGPU的討論:
https://groups.google.com/forum/#!msg/vsfm/8jfizyvu8gc/C9VE5fkoawcJ
默認情況下,我們使用標準數據集測試得到:
現在我們做一些改動:
void SiftGPU::PrintUsage()
{
std::cout
<<"SiftGPU Usage:\n"
<<"-h -help : Parameter information\n"
<<"-i <strings> : Filename(s) of the input image(s)\n"
<<"-il <string> : Filename of an image list file\n"
<<"-o <string> : Where to save SIFT features\n"
<<"-f <float> : Filter width factor; Width will be 2*factor+1 (default : 4.0)\n"
<<"-w <float> : Orientation sample window factor (default: 2.0)\n"
<<"-dw <float> * : Descriptor grid size factor (default : 3.0)\n"
<<"-fo <int> * : First octave to detect DOG keypoints(default : 0)\n"
<<"-no <int> : Maximum number of Octaves (default : no limit)\n"
<<"-d <int> : Number of DOG levels in an octave (default : 3)\n"
<<"-t <float> : DOG threshold (default : 0.02/3)\n"
<<"-e <float> : Edge Threshold (default : 10.0)\n"
<<"-m <int=2> : Multi Feature Orientations (default : 1)\n"
<<"-m2p : 2 Orientations packed as one float\n"
<<"-s <int=1> : Sub-Pixel, Sub-Scale Localization, Multi-Refinement(num)\n"
<<"-lcpu -lc <int> : CPU/GPU mixed Feature List Generation (defaut : 6)\n"
<<" Use GPU first, and use CPU when reduction size <= pow(2,num)\n"
<<" When <num> is missing or equals -1, no GPU will be used\n"
<<"-noprep : Upload raw data to GPU (default: RGB->LUM and down-sample on CPU)\n"
<<"-sd : Skip descriptor computation if specified\n"
<<"-unn * : Write unnormalized descriptor if specified\n"
<<"-b * : Write binary sift file if specified\n"
<<"-fs <int> : Block Size for freature storage <default : 4>\n"
<<"-cuda <int=0> : Use CUDA SiftGPU, and specifiy the device index\n"
<<"-tight : Automatically resize pyramid to fit new images tightly\n"
<<"-p <W>x<H> : Inititialize the pyramids to contain image of WxH (eg -p 1024x768)\n"
<<"-tc[1|2|3] <int> *: Threshold for limiting the overall number of features (3 methods)\n"
<<"-v <int> : Level of timing details. Same as calling Setverbose() function\n"
<<"-loweo : (0, 0) at center of top-left pixel (defaut: corner)\n"
<<"-maxd <int> * : Max working dimension (default : 2560 (unpacked) / 3200 (packed))\n"
<<"-nomc : Disabling auto-downsamping that try to fit GPU memory cap\n"
<<"-exit : Exit program after processing the input image\n"
<<"-unpack : Use the old unpacked implementation\n"
<<"-di : Use dynamic array indexing if available (defualt : no)\n"
<<" It could make computation faster on cards like GTX 280\n"
<<"-ofix * : use 0 as feature orientations.\n"
<<"-ofix-not * : disable -ofix.\n"
<<"-winpos <X>x<Y> * : Screen coordinate used in Win32 to select monitor/GPU.\n"
<<"-display <string>*: Display name used in Linux/Mac to select monitor/GPU.\n"
<<"\n"
<<"NOTE: parameters marked with * can be changed after initialization\n"
<<"\n";
}
有一篇未開源的論文:
論文中的地址,已經不能訪問:
http://services.eng.uts.edu.au/sdhuang/research.htm
趙博士的主頁:
https://www.uts.edu.au/staff/liang.zhao
找到趙博士的另外的工作:
https://openslam-org.github.io/ParallaxBA.html
代碼:
https://github.com/OpenSLAM-org/openslam_ParallaxBA
還有一些工作:LinearSFM
https://github.com/LiangZhaoPKUImperial/LinearSFM
還有一些代碼地址:
sift++代碼地址:
https://github.com/davidstutz/vedaldi2006-siftpp
siftGPU代碼地址:
https://github.com/pitzer/SiftGPU