Hessian-Affine extractor and the SIFT descriptor

前情提要:在利用著名图像检索库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/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/netpbm/lib

配置完成以后注意如果运行上面的脚本出现symbol link error等情况,可能是和系统中自带的netpbm中的命令冲突,我这里把/usr/bin下面的冲突命令删除了。也可以在脚本中显示的指明用的是哪个命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值