欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LIFT: Learned Invariant Feature Transform 源码跑通环境搭建(Ubuntu下cpu)

程序员文章站 2024-03-25 19:43:10
...

源码地址: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角点检测