【转载翻译】Open3D和PCL的一些比较
本文最后更新于 213 天前,其中的信息可能已经有所发展或是发生改变。

本人在逛Github时,发现一个解答Open3D和PCL对比的小文章,还挺有参考价值的

原文:https://github.com/LaplaceKorea/investigate_open3d_vs_pcl/blob/main/README.rst#whats-the-support-for-gpus-look-like-in-open3d-and-pcl

要注意的是这篇文章写在三年前,很多内容已经过时,注意辨别,文章使用的一些方法可以参考使用,自行验证最新的Open3D和PCL两者之间的情况。

Open3D在ROS社区的使用情况

这里有一个添加于ros/rosdistro#28352的rosdep密钥:python3-open3d-pip。 但是这个密钥不能在目前已发布的包中使用,它的存在说明了有人正在未发布的ROS包中使用它。

这里又有一个perception_open3d库被发布到 Melodic 和 Noetic(ROS 1)中:ROS perception/reception_open3d,其最初可在 ntnu arl/open3d_ros 上获得。

这里又又有一个在ROS World 2020 Lightning上被交流的包,这个包依赖于Open3d,但在其package.xml 中没有列出rosdep密钥。相反,它的文档写着必须手动安装Open3D。其repo提供了一个转换包和一个示例包,它可以将open3d::t::geometry::PointCloud open3d::geometry::PointCloudsensor_msgs::PointCloud2直之间来回转换。

还有一个狡猾的开发分支支持open3d::geometry::PointCloudsensor_msgs::PointCloud2的来回转换,但尚未发布。

另外要注意的一个一个改进是为libopen3d-devpython3-open3dlibopen3d0d创建rosdep密钥。在Ubuntu的下一个LTS版本之前,这些软件包将无法在Rolling中使用。而Debian上游版本是0.9.0,在Ubuntu脱离Debian之前,花一些时间更新Debian版本可能是个好主意。

这里又又又有一个Python包可以将Open3D类型转换为PointCloud消息(不知是否仅限ROS Melodic ?):SeungBack/Open3D ROS helper

Open3D和PCL两者相比的发展程度

首先,简而言之,PCL和Open3D几乎是在差不多的开发速度上进行的。

使用下列命令查看库,并查看截至目前的可用提交数目

git log --since '2020/08/30' --dense --oneline | wc -l

得到默认分支下不同时间跨度的提交次数为:

3 年 1 年 6 个月 3 个月
PCL 2906 569 304 110
Open3D 1717 690 344 153

它们在提交次数上几乎相似,而Open3D的提交次数在较近时间点提交的更多。

查看提交作者的数量

git log --since '2021/05/31' --dense --pretty=%an | sort | uniq | wc -l

得到在默认分支下不同时间跨度的贡献者数量:

3 年 1 年 6 个月 3 个月
PCL 160 58 41 24
Open3D 106 50 27 19

他们的贡献者数量几乎也很相似,但PCL的贡献者更多。

Open3D和PCL在运行时间上的区别

本文使用 benchmark文件夹下的代码可以进行这个问题的验证。本次验证使用了Debian Bullseye上Debian软件包中的Open3D 0.9.0 和 PCL 1.11.1。

cd benchmark
mkdir build
cd build
cmake ..
make
ln -s ../bunny.pcd
./iterative_closest_point
./voxel_downsample

因为这两个库应该具有相同的输出,所以同样使用体素下采样更合理。而结果是Open3D似乎要快得多。

$ ./voxel_downsample
2021-09-09T12:03:14-07:00
Running ./voxel_downsample
Run on (24 X 4950.19 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x12)
  L1 Instruction 32 KiB (x12)
  L2 Unified 512 KiB (x12)
  L3 Unified 32768 KiB (x2)
Load Average: 0.27, 0.38, 0.36
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_open3d       12449 ns        12431 ns        56480
BM_pcl          49400 ns        49332 ns        14117

因为这两个库具有不同的收敛标准,所以直接比较ICP会有些不合理。就结果而言,PCL似乎具有旋转和平移阈值,而Open3D具有相对适应度和RMSE阈值。所以下面的数据可能没有用。

$ ./iterative_closest_point
2021-09-09T12:08:04-07:00
Running ./iterative_closest_point
Run on (24 X 4950.19 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x12)
  L1 Instruction 32 KiB (x12)
  L2 Unified 512 KiB (x12)
  L3 Unified 32768 KiB (x2)
Load Average: 0.22, 0.32, 0.34
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_open3d     2002711 ns      1971130 ns          350
BM_pcl       15637302 ns     15633577 ns           45
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇