配置RAPter参考了RAPter on Ubuntu
配置OpenCV
但是他的教程安装openCV有点问题,他用脚本装的最新的openCV,四点几的版本不适用,安装别的教程装上openCV。
- OpenCV源码下载网址Releases - OpenCV
- 卸载并安装openCV可参考 ubuntu下彻底卸载opencv的方法 (我并没有卸载,因为检测不到。
命令:pkg-config --modversion opencv)
Ubuntu16.04卸载opencv2.4.9并安装opencv3.2.0+contrib
Ubuntu16.04卸载opencv 3.0.0,安装opencv3.4.2 + contrib
- 遇到的bug源码编译opencv卡在IPPICV: Download: ippicv_2017u3_lnx_intel64_general_20170822.tgz解决办法
- 我并没有像教程里写的去配置环境变量,测试是用的自带的摄像头sample
配置PCL
参考上篇博客
编译RAPter
rapter下的cmakelist.txt改一下路径,路径参考另篇关于cmake的博客。
编译完rapter,可以编译一下可视化模块visualization里面的cmake,同样修改一下PCL的路径。
运行RAPter
ln -s panasonic_0.1_n.ply cloud.ply
python RAPter/scripts/rapter.py -s 0.2 --al 15 --pw 1.0 -t 4 --cl cloud.ply
第一行是创建软链接,第二行在rapter.py路径下面运行。因为会创建很多csv文件,所以建议新创建一个scene文件夹里跑数据。(该作者提供的ply不能用,使用自己的ply建筑物数据)
可视化
-- 编译完visualization后,生成bin文件夹下面的rapterVIS,放在scripts同级目录下。运行rapter时,会可视化每次迭代的结果。
-- 另外单独可视化的方法是,是用show.py的脚本。注意后面两个文件必须放在script文件夹下面。
show.py -s 0.01 -p primitives.csv -a points_primitives.csv
python /home/lzw/workspace/RAPter/RAPter/scripts/show.py -s 0.01 -p patches.csv -a points_primitives.csv
编译对比算法:
编译ransac和pearl,只需要把rapter文件夹里的cmakelist.txt中的OFF全部改成ON,它的exe默认编译在build\release\bin下面,所以创建build01、build02,最后还是在build文件夹里生成。
SET( WITH_PEARL ON CACHE BINARY "Compile pearl executable.")
SET( WITH_RSAC ON CACHE BINARY "Compile ransac executable.")
SET( WITH_CORRESP ON CACHE BINARY "Correspondance miniprogram compilation.")
SET( WITH_GLOBFIT ON CACHE BINARY "GlobFit (Li'11) comparison.")
SET( WITH_EVAL ON CACHE BINARY "Evaluation code")
SET( WITH_REFIT ON CACHE BINARY "Constrained refit project")
SET( WITH_GCO ON CACHE BINARY "Compile alpha-expansion library by Veksler and Delong, needed by PEARL, RSAC and REFIT projects.")
patch.csv就是primitives.csv
Ransac:
# run schnabel
../ransac --schnabel3D --cloud cloud.ply -p patches.csv -a points_primitives.csv --scale 0.025 --minsup 600
../show.py -s 0.02 --cloud schnabel_minsup10.cloud.ply -p schnabel_minsup10.primitives.csv -a schnabel_minsup10.points_primitives.csv
PEARL:
../pearl --3D --scale 0.04 --pw 2000 --cmp 500 --prims segments.csv
../pearl --scale 0.01 --cloud cloud.ply --prims patches.csv --assoc points_primitives.csv --pw 1000 --cmp 1000
../show.py -s 0.04 -a points_primitives.pearl.csv -p primitives.pearl.csv