facebook Surround360编译与环境配置

2017.8.15更新:http://download.csdn.net/download/fan2273/9929582

Surround360拼接流程测试与简单分析(附官方数据集效果图)


最近在研究实时全景视频拼接算法,了解到facebook开源了自己的Surround360,便打算下下来研究一下。

这边基本的配置流程,主要参考了CSDN上的两位博主的博客:

http://blog.csdn.net/sunyolanda_cs/article/details/52448399

http://blog.csdn.net/sunyolanda_cs/article/details/52448606

Surround360配置流程请按上面第一篇博客走!

依赖项装完后,不要急着编译,请阅读本博客下面的部分,安装folly和ceres!

(上述博客未安装这两个依赖项)

CSDN上比较不错的一篇Surround360分析:

http://blog.csdn.net/electech6/article/details/53618965

看着好像配起来很容易,但其实坑巨多,我大致前后花了两天时间,才把基本的环境搭好(还没算编译Surround360的时间)。

这边再给出一份可能有用的Surround360配置的博客:

http://blog.csdn.net/cfqcfqcfqcfqcfq/article/details/54645431

感谢以上博主的经验分享。

接下来,我就主要说一下我遇到的问题。

问题主要情况:

1.ffmpeg的相关项配置

2.folly库及依赖的boost配置

3.googletest配置

4.ceres安装


过程中出现的主要报错问题:

1.libfolly.so(recipe for target 'libfolly.la' failed)

这里是因为boost库没有在编译folly前安装的原因(亦有可能是版本不对,或未安装完全)

2.undefined reference to `boost::re_detail_106400…………

boost库配置错误的原因,动态链接库缺失或者混乱

3.logging_example(make时的error)

其实也是因为boost库配置错误,导致编译成功后,googletest无法运行

4.执行make check,发生error

离开时的路径为folly/test/gtest/,看似是googletest错误,网上一些经验指出是googlemock没有安装,但因为google升级,mock和test已经合并成googletest一个库了。同时,由于folly在编译过程中,无需预先安装,只要gtest在指定目录下就可以。

5.make Surround360失败,显示error 1 FIND_PACKAGE(Ceres REQUIRED) : don't find CeresConfig.cmake

这个时候需要安装ceres库,可以git clone,或者直接下载tar包。这里给出官网的安装教程。

http://www.ceres-solver.org/installation.html#section-customizing

按照其中的安装步骤便可完成安装。


解决方法与排错思路:

1.ffmpeg的配置

基本参照前面给出的博客,可以完成配置。

因为ffmpeg有一部分依赖包需要手动编译安装,主要容易出错的基本是这部分。

当最后安装ffmpeg出现报错信息的时候,可以比较容易定位到具体哪个库没有安装上。

2.folly库安装

folly库是facebook一套开源库,具体的不多说,这里给出git地址:

https://github.com/facebook/folly

推荐直接用git clone命令获得folly。

这里给出标准的安装步骤(基于官方README文档)。

官方文档附于git目录下,简明易懂,但比较容易跳过一些内容导致依赖库出问题,建议参照仔细阅读。

同时,建议阅读以下文档后,不要急于安装,先往后翻一下本人的话。

以下所有的folly目录路径,实质为git后获得的folly/folly子目录。

1).folly需要gcc 4.9+以上版本,以及boost支持C++14版本

2).下载googletest:https://github.com/google/googletest/archive/release-1.8.0.tar.gz

解压到folly/test的子目录gtest中

参考以下命令:

    (cd folly/test && \
     rm -rf gtest && \
     wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz && \
     tar zxf release-1.8.0.tar.gz && \
     rm -f release-1.8.0.tar.gz && \
     mv googletest-release-1.8.0 gtest)
3).Ubuntu12

该发布版已经成就,需要更新,但在folly/build/deps_ubuntu_12.04.sh提供了安装支持,需要升级所有需要的包。

4).Ubuntu13-14以上

需要以下的包(可以直接通过拷贝命令安装):

sudo apt-get install \
    g++ \
    automake \
    autoconf \
    autoconf-archive \
    libtool \
    libboost-all-dev \
    libevent-dev \
    libdouble-conversion-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    liblz4-dev \
    liblzma-dev \
    libsnappy-dev \
    make \
    zlib1g-dev \
    binutils-dev \
    libjemalloc-dev \
    libssl-dev \
    pkg-config
如果需要先进调试功能,需要安装以下模块:

sudo apt-get install \
    libunwind8-dev \
    libelf-dev \
    libdwarf-dev
Ubuntu14及以上,在13中提出的包清单都需要安装,同时还包括:

sudo apt-get install \
    libiberty-dev
确定包安装完后,请执行:

  autoreconf -ivf
  ./configure
  make
  make check
  sudo make install
以上,是官方文档的编译安装步骤。

接下来,给出本人一些经验和教训…………

1.首先,README中Ubuntu13给出的那些依赖库,很重要!尤其是boost!

请确定自己使用了apt-get install命令安装了正确的boost版本。

网上有许多博客给出的是下载源码编译安装,以及直接拷贝库的一些安装方法。不要使用!!谨记!!

首先,boost现在的发布版为1.64,folly需要的是1.55+版本,apt-get install安装的为1.58版本,可以使用apt-cache search boost查看选择可安装版本。

安装boost后,请使用ldconfig -v | grep boost查看一下链接库的清单:

2.其次,确认一下gtest的目录正确

folly*/folly/test/gtest/目录下,应该有两个文件夹及数个文件:

3.按README执行安装:

make完后会出现make[x]数个,然后离开目录,如果没有error,请接着执行make check。

整个过程大概需要10分钟左右。

make check的结果:

4.接着make install应该就可以了


3.ceres库安装

基本参照官网给出的文档流程就可以了:

http://www.ceres-solver.org/installation.html#section-customizing

注意,git clone的地址可能会拒绝连接,请手动下载tar包,版本是1.12或以上就可以了。

官网给出的安装步骤:

# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev
# BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse and CXSparse (optional)
# - If you want to build Ceres as a *static* library (the default)
#   you can use the SuiteSparse package in the main Ubuntu package
#   repository:
sudo apt-get install libsuitesparse-dev
# - However, if you want to build Ceres as a *shared* library, you must
#   add the following PPA:
sudo add-apt-repository ppa:bzindovic/suitesparse-bugfix-1319687
sudo apt-get update
sudo apt-get install libsuitesparse-dev

以上部分,一般之前都配置好了,但以防万一还是建议大家走一遍

tar zxf ceres-solver-1.12.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-1.12.0
make -j3
make test
# Optionally install Ceres, it can also be exported using CMake which
# allows Ceres to be used without requiring installation, see the documentation
# for the EXPORT_BUILD_DIR option for more information.
make install
make test时会有一段需要等待较长时间,不是卡死。

100% tests passed, 0 tests failed out of 68

Total Test time (real) = 121.56 sec

这里基本没什么问题,install成功!

注意,请使用sudo make install,否则make install会出一个error,提示可能需要管理员特权。


配置完了以上需要的库和包后,我们回到Surround360,准备开始编译。

首先,进入Surround360*/surround360_render/

执行cmake -DCMAKE_BUILD_TYPE=Release

如果你认真阅读了上面的folly和ceres安装,这里应该不会有问题(如有问题,请根据提示查找库及包安装)。

一般来说,按前文配置完后,这边是正常通过。


接着,执行make指令:

7%我这里又报错了:fatal error:opencv2/calib3d.hpp

想到肯定是前面开了多个终端下载库的时候,下了没有安装。于是,圆润的滚回去安装opencv

12% fatal error:Eigen/Core,没有那个文件或目录

Eigen库没有安装,去官网下一个tar包:http://eigen.tuxfamily.org/index.php?title=Main_Page

这里给出基于install文档的安装步骤:

1.解压目录,得到的文件夹应为eigen-eigen-*

2.进入该文件夹,新建一个目录(比如build_dir)

3.cd进入该目录后,执行cmake(上一级source目录),因此可以为cmake ../或者是cmake /……/eigen-eigen-*

-- Configuring done
-- Generating done
-- Build files have been written to: /home/ethan/eigen-eigen-5a0156e40feb/build_dir

4.make install

同上,出现

 Maybe need  administrative privileges.

使用sudo make install

make Surround360过程中,遇上报错,重新安装了需要的库之后,在编译时请注意!

务必!!重新执行一次cmake -DCMAKE_BUILD_TYPE=Release!然后再make!!(make clean之后)

最后,祝大家都能一次编译通过!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值