LIFT: Learned Invariant Feature Transform 源码跑通环境搭建(Ubuntu下cpu)
源码地址:https://github.com/cvlab-epfl/LIFT
我的环境:Ubuntu16.04下CPU
python2.7+opencv3.2.0
很多博主都要求python2.7,我在服务器上用的3.7的确实有问题,所以用了自己电脑上Ubuntu16.04自带的2.7版本
需要安装的python库:numpy,scipy,parse,h5py
conda安装一下(pip安装也可),测试安装是否成功
conda install numpy
python
import numpy
1.安装flufl.lock (2.4.1)
建议手动安装,不要用pip命令安装,包下载地址:https://pypi.python.org/pypi/flufl.lock/2.4.1
点击download files,然后点击文件就可以下载了,下载后解压安装
先解压
tar -zxvf flufl.lock-2.4.1.tar.gz
进入解压后的文件夹,如果你是服务器下的虚拟环境,不要加sudo,会报错
sudo python setup.py install
2.安装Lasagne (0.2.dev1)
包下载地址:https://github.com/Lasagne/Lasagne
可以像上面一样,也可以命令下载(注意是命令下载不是安装)
git clone https://github.com/Lasagne/Lasagne
解压,然后进入解压完的文件夹进行安装
sudo python setup.py install
3.安装theano-0.9.0
包地址:https://pypi.python.org/pypi/Theano/0.9.0rc1
解压安装,命令和上面一样
4.配置theano
虽然我的服务器上有GPU但是我没有配置好,所以我写下CPU的配置,我参考的这位仁兄,亲测有效https://blog.csdn.net/weixin_44457020/article/details/89469487
想要配置GPU的可以参考下这个:
https://blog.csdn.net/qq_36355662/article/details/80114260
(1)打开这个文件
sudo gedit ~/.theanorc
(2)在文档里写入
[global]
floatX = float32
device = cpu
(3)修改run.sh,最后一行那个地方变成0
#!/bin/bash
# ------------------------------------------------------------
# Example script for running LIFT
# Open MP Settings
export OMP_NUM_THREADS=1
# Cuda Settings
export CUDA_VISIBLE_DEVICES=0
# Theano Flags
export THEANO_FLAGS="device=gpu0,${THEANO_FLAGS}"
# ------------------------------------------------------------
# LIFT code settings
# Number of keypoints
_LIFT_NUM_KEYPOINT=1000
# Whether to save debug image for keypoints
_LIFT_SAVE_PNG=1
# Whether the use Theano when keypoint testing. CuDNN is required when turned
# on
_LIFT_USE_THEANO=0 <<<<<<主要把它从1改成0
(4)修改compute_detector.py
该文件在python-code文件夹里
第245行
test_res_list += [np.pad(test_res,
int((param.model.nFilterSize - 1) / 2),
mode='edge')] <<<<修改后使用的
#mode='constant', <<<<原代码使用的
#constant_values=-np.inf)] <<<<<<原代码使用的,会报错-np.inf
5.运行源码
(1)进入c-code文件夹下编译
cd build
cmake ..
make
(2)运行程序
cd LIFT-master
./run.sh
然后就开始训练了,提取到的特征点在result文件夹里,我不会放图就不放了
上一篇: RESTful架构
下一篇: harris角点检测