Hessian-Affine extractor and the SIFT descriptor
来源:互联网 发布:倩女幽魂手游 mac登陆 编辑:程序博客网 时间:2024/06/02 19:26
前情提要:在利用著名图像检索库yael测试vlad和fisher vector算法时发现使用INRIA实验室提供的提取好的holidays 数据集和对应的特征点能够达到论文中说的精度。但是当利用Opencv提取的sift特征点进行测试,发现效果很差。经过分析发现,opencv提取的sift特征点和siftgeo中的特征点数据类型不同。所以选择采用和INRIA实验室相同的方法来提取特征。
脚本如下:
10 infile=test.jpg 11 tmpfile=${infile/jpg/pgm} 12 outfile=${infile/jpg/siftgeo} 13 14 #Rescaling and intensity normalization 15 cmd_pgm_1=$(echo djpeg $infile) 16 cmd_pgm_2=$(echo ppmtopgm) 17 cmd_pgm_3=$(echo pnmnorm -bpercent=0.01 -wpercent=0.01 -maxexpand=400) 18 cmd_pgm_4=$(echo pamscale -pixels $[1024*768]) 19 20 echo "time $cmd_pgm_1 |$cmd_pgm_2|$cmd_pgm_3|$cmd_pgm_4>$tmpfile" 21 22 time $cmd_pgm_1|$cmd_pgm_2|$cmd_pgm_3|$cmd_pgm_4>$tmpfile 23 24 #Compute descriptors 25 CMD_PATH=/superdb/jl/extract_sift 26 COMPUTE_DESCRIPTORS_CMD=compute_descriptors 27 cmd_compute=$(echo time \ 28 ${CMD_PATH}/${COMPUTE_DESCRIPTORS_CMD}\ 29 -i $tmpfile\ 30 -o4 $outfile\ 31 -hesaff\ 32 -sift) 33 34 echo $cmd_compute 35 $cmd_compute
结果如下:
下面来说一下具体的配置过程和使用方法:
1、http://lear.inrialpes.fr/~jegou/data.php 打开该网页下载具体的提取compute_descriptors可行性程序。由于我的是ubuntu系统我下载的是这个:
注意:这里下载这个新版本后面就不需要安装ImageMagick了。
2、下载djpeg 并且安装
http://libjpeg.sourceforge.net/
安装步骤:
./configure
make
sudo make install
注意这里可能会遇到 ./configure: /bin/sh^M: bad interpreter: No such file or directory 问题
解决方法如下: vim configure :set fileformat=unix
3、下载和安装netpbm
https://sourceforge.net/projects/netpbm/files/archive_of_old_release_system/
这里可以下载不同的版本。
安装步骤:
cd $netpbm
mkdir netpbmbuild #这是为了保护源代码的干净,名字随你便
cd netpbmbuild
../configure
make
make package
cd ..
installnetpbm
注意:
(1)在../configure时候要根据提示指定lbjpeg的路劲
(2)如果make的时候出现我make的时候
报这个错误,libpm.c:25:21: fatal error: compile.h: No such file or directory include “compile.h”是因为前面的文件没有权限因此没能生成compile.h。仔细阅读错误提示。
全部安装完以后就会在/usr/local/netpbm下生成一下bin lib等文件。这时候要配置一下系统环境变量我是在.bashrc文件下配置的。
export PATH=$PATH:/usr/local/netpbm/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/netpbm/lib
配置完成以后注意如果运行上面的脚本出现symbol link error等情况,可能是和系统中自带的netpbm中的命令冲突,我这里把/usr/bin下面的冲突命令删除了。也可以在脚本中显示的指明用的是哪个命令。
- Hessian-Affine extractor and the SIFT descriptor
- Affine Function And Linear Function
- convex optimization --- affine and convex sets
- Bag-of-Features Descriptor on SIFT ORB SURF (BoF-SIFT)
- SIFT —— 图像特征提取(feature extractor)
- https and hessian
- HOG descriptor computation and visualization
- SIFT and SURF
- Descriptor Matching with Convolutional Neural Networks: a Comparison to SIFT
- OpenCV之特征检测器(Feature Detector),描述子提取器(Descriptor Extractor)和描述子匹配器(Descriptor Matcher)
- Descriptor
- 16.4 Python descriptor-function and method
- Understand the linux kernel-ch3-Process descriptor
- Understanding the linux kernel-ch3-Process descriptor
- accept() returns the same socket descriptor
- the descriptor is not a socket
- affine transformation
- Affine Transformation
- 【转载】互联网高级测试工程师至少具备的能力
- Access restriction:The type JPEGCodec is not accessible due to restriction on re
- coding interview guide-仅用递归函数和栈操作逆序一个栈-c++实现
- 提交应用到iTunes Connect时构建版本“正在处理”后直接消失
- 解决:pydev 在 eclipse 中安装后不显示
- Hessian-Affine extractor and the SIFT descriptor
- Map遍历的几种方法
- RTP协议详解
- Fragment 文章 待整理
- jquery实现动态创建页面元素(ul,li列表实例)
- SQL 触发器的作用,好处和坏处
- 判断是否为C++合法标识符
- Android Design Support Library
- oAuth