毕设项目名为:视觉定位算法的研究与比较。
打算把学习的流程记录一下,目前打算无论什么报错都事无巨细的记录一下,最后可能总结一个可行的方案。
该项目以一个已经成熟的开源算法为基础,该开源算法可在github下载。源码名叫hierarchical localization toolbox。是一个视觉定位工具箱,具体的代码都还没有看,也没有跑起来。目前只是顺利进行完开题答辩,大致了解了这个东西是干什么的。
今天就先配环境。
要求的是pytorch1.1以上,pytorchvision0.3以上,opencv-python,pycolmap。
应用anaconda管理项目,conda info --envs
查看现有环境,activate camara
切换到我的环境camara
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
安装pytorch11.3版本
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
安装opencv-python
https://gitee.com/hanyunlong12/pycolmap
先下载pycolmap的源码(比github稳定)
终于知道怎么样导入项目了:只要安装路径下有setup.py文件就可以自动安装。
安装之前需要安装CMake,pip install CMake
即可
又出现报错如图所示,估计是有些环境变量没有设置好。他需要的是gcc和g++编译器的位置。可以将MinGW的bin目录加入到环境变量的path中。我是直接从命令行配置的cmake -DCMAKE_CXX_COMPILER=/pathto/g++ -DCMAKE_C_COMPILER=/pathto/gcc /pathto/source
虽然出现了报错,但是再运行编译指令的时候总算是不报环境变量的错了。
在pycolamp编译之前,一定要确保自己的colmap是完好的。虽然我下载的colmap点击bat文件可以直接运行,但我猜想可能还有一些库没有装好。所以不行。
最后发现,原因竟然是因为没有安装VS2017。。。我实在是搞不懂为什么一定要安装VS2017!安装好之后才能启用CMake,指定源文件,目录下必须有CMakeList.txt才能开始编译。
最终,尝试了无数种方法都无法正确地指定编译器,我觉着是不是他妈我的编译器出问题了?于是我下了一个CLion想编译一个程序看看行不行,结果出乎我的意料,竟然可以编译!我又尝试了命令行编译,也可以找到编译器,我真的纳了大闷了。不管了,索性我直接用CLion来编译。
这个玩意真就跟套娃一样,
首先是要gflags,
然后把gflag编译好的东西也要套进glogs里面才能编译,
这些东西加上LAPACK要套到ceres里才能编译,再套到colmap里,最后套到pycolmap里。这一套操作看似很费功夫,但比起指定编译器怎么也指定不了的这种感觉,简直不要爽太多。
然而到最后编译colmap的时候,又出问题了,他报的错误是
如图所示,它显示ceres编译的最终目录下没有ceresconfig.cmake文件。其他项目编译的时候都没有问题,唯独这个有问题。当时想了很久也没有想到解决方案,怀疑会不会是编译器的问题,看到网上大部分编译都是在VS下编译的,我就下了一个VS尝试一下。
VS上cmake的流程和CLion上大同小异。
在这里点击“打开CMake编辑器”就能够比较可视化地指定路径,照猫画虎我编译好了gflag,glogs,eigen3,ceres然而到colmap的时候又出问题了,编译出来的东西依然没有ceresconfig.cmake文件。上网上搜索了一下,大概是因为eigen3.3和ceres有冲突,于是将eigen调到了3.2,ceres调整到了1.14,花费了不少工夫,结果依然是cmake不出来。真的绝望了。
暂时告一段落,看看后面有没有别的方法。