《3D Registration with Maximal Cliques 基于极大团的三维配准 》复现

本文介绍了如何复现CVPR2023的一篇关于3D注册的优秀学生论文,使用了PCL和igraph库,以及OpenMP进行并行编程。作者分享了在Windows环境下配置环境、安装igraph和处理编译错误的过程。

《3D Registration with Maximal Cliques》CVPR2023最佳学生论文,读过后,感觉效果不错,来尝试简单复现一下!!!

有问题,欢迎留言、进群讨论或私聊:【群号:392784757】

环境配置

复现环境:windows + cmake 3.27 + vs2019

论文代码:https://github.com/zhangxy0517/3D-Registration-with-Maximal-Cliques 下载到本地

根据要求,代码中使用的核心库有 PCL>=1.10.1 igraph-0.9.9, OpenMP

igraph是一个用于分析和可视化复杂网络的库。它提供了用于创建、操作和分析图形结构的工具,包括图论中常见的算法和指标。这个库在计算社交网络、生物网络、通信网络等领域中非常有用。你可以使用 igraph 来执行各种操作,例如计算节点之间的距离、查找关键节点、检测社区结构、生成随机图形等等。

OpenMP(Open Multi-Processing)是一种用于并行编程的API(Application Programming Interface),它允许程序员利用共享内存架构上的多处理器系统来加速程序的执行。OpenMP旨在简化并行编程,使得程序员能够通过在其现有代码中添加一些指令或注释来利用多处理器系统。

OpenMP库提供了一组指令集,程序员可以使用这些指令来指定哪些部分的代码应该并行执行,以及如何将计算任务分配给多个处理器核心。通常情况下,程序员可以使用OpenMP来并行化循环、执行任务级并行化等。

OpenMP 支持 C、C++和Fortran等。

OpenMP 相关链接

  1. https://www.imangodoc.com/TE66KHzr.html 中文指南
  2. https://www.openmp.org/ 官网

其中,OpenMP 在Windows系统中,一般已经包含在编译器中,无需配置

PCL配置

略(网络上能搜索到详细教程)

igraph 配置

论文中采用 0.9.9 版本

igraph-0.9.9 主页: https://igraph.org/c/html/0.9.9/

igraph github地址:https://github.com/igraph/igraph

release页面下载 .tar.gz 压缩包,其中后缀名其他的不要下载,会报错,见 下面报错1

igraph bundles a number of libraries for convenience. However, it is preferable to use external versions of these libraries, which may improve performance.

根据安装要求,还可以安装其他,可进一步提升性能的外部库 这里我们使用默认

When building the development version of igraph, bison, flex and git are also required. Released versions do not require these tools.

根据提示,当我们构建开发版本时,还需要安装 bison flex 和 git,(发布版本不需要,到现在也没搞明白发布版本在哪里,应该是指直接从包管理工具下载,但没有windows平台的)

因此,我们还需安装 bison flex (git 默认大家已安装)

Bison 是一个用于生成语法分析器的自由工具,它是 GNU 工具集中的一部分,通常与 Lex 或 Flex 一起使用。Bison 接受一个上下文无关文法描述作为输入,并生成一个 C 或 C++ 语言的解析器。这个解析器能够分析输入的符号串,识别其中的语法结构,并根据给定的文法执行相应的操作。

Flex 是一个用于生成词法分析器的工具,它是 Lex 的替代品。Flex 接受一个包含正则表达式和对应动作的规则文件作为输入,并生成一个 C 或 C++ 语言的词法分析器。这个词法分析器能够识别输入的符号串中的词法单元,并执行相应的操作。

安装参照:Windows下安装Flex和Bison及环境配置 https://blog.youkuaiyun.com/weixin_46013401/article/details/114397006

flex bison安装完成,我们即可开始安装igraph

image-20240222203218438

进入文件夹,在文件夹路径下打开终端,依次执行命令

cmake -B build 
cmake --build build --config=Release --target=install

默认情况下会安装到 C:\Program Files (x86) 路径下

注意事项

  1. 这里不建议切换修改路径,可能后续构建MAC项目会找不到,或者需要手动在cmake-gui 填入,建议默认即可
  2. 执行第二条命令时,可能会提示权限不够,无论你使用哪里的终端,都重新启动选择管理员执行

此时 我们igraph 就安装好了

MAC 工程构建

选择官方代码中的windows 目录,将其拷贝到建立工程的文件夹

image-20240222204506295

进入到文件夹下,然后终端执行cmake命令构建vs工程,或使用cmake-gui 进行构建

cmake -B build # 一句即可完成

cmake-gui,点击configure命令 确认配置 vs2109 x64,查找依赖的库即 PCL igraph,再次点击configure

image-20240222205211624

点击 generate,即构建完成

vs 打开 选择 Release/Debug x64 进行编译 ,可能会出现报错error2、error3,根据下文方法进行修改

把官方代码中用到的Demo测试点云文件夹拷贝到 和exe 同级目录下,然后执行

MAC.exe --Demo

复现结果

第一阶段
image-20240222201340679

第二阶段

image-20240222201450816

输出结果

image-20240222201711849

论文给出的Demo示意过程gif

demo

基本一致,收工!

相关报错

  1. 未正确下载 .tar.gz 可能会报错
Cannot find out the version number of this package; IGRAPH_VERSION is missing.
--
-- The official igraph tarballs should contain this file, therefore you are
-- most likely trying to compile a development version yourself. The development
-- versions need Git to be able to determine the version number of igraph.
--
-- It seems like you do have Git but it failed to determine the package version number.
--
-- Git was found at: /bin/git
-- The version number detection failed with: HEAD-HASH-NOTFOUND
  1. fatal error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译

参照:fatal error C1128: 节数超过对象文件格式限制: 请使用 /bigobj 进行编译

  1. error: 初始化”: 无法从“boost::shared_ptrpcl::PointIndices”转换为“std::shared_ptrpcl::PointIndices”

修改 boost::shared_ptr 为 std::shared_ptr

【有问题,欢迎留言、进群讨论或私聊,群:392784757】

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值