Point Cloud Library (PCL) 是一个独立、大型、开源的 2D/3D 图像和点云处理 C++ 库。爆肝半个月,我把 PCL 库编译为 WebAssembly 运行在浏览器中,并提供了易于使用的 JavaScript 接口
GitHub 仓库: https://github.com/luoxuhai/pcl.js 欢迎 star 🌟
现在可以在浏览器里处理点云数据了,点云处理有以下应用场景:无人驾驶、机器人、人机交互、逆向工程与其他工业自动化、测绘、建筑信息模型化。
🎈 一个示例, 去除点云数据中的异常值:
1
thinkershare 2022-09-10 14:32:28 +08:00
这个玩意难用的要死, 每次在 Python 中调用它都搞得我非常烦躁, 也非常消耗性能, 你竟然有闲心将它移植到浏览器里面, 不知道点云 100w 以后, 会不会直接卡死浏览器.
|
2
darkce OP @thinkershare 性能这快还没测试过,要看具体调用的算法,点云数据量大的情况下,有的算法在 c++ 里运行也特别慢😂
|
3
thinkershare 2022-09-10 15:09:07 +08:00
@darkce 没有硬件加速,反正是非常难搞. 我用 3090 的机器测试大的自动驾驶场景, 动不动卡死. 我感觉这个库的 python 封装没人维护了. C++学的太烂, 一直没时间和精力去研究怎么使用原生 C++去搞. 不过 PCL 那么多接口, 你手动将每个包装了一层 JavaScript 的代理吗? 感觉 C++和 JS 的接口差异形式实在太大了.
|
4
darkce OP @thinkershare 目前只绑定了部分接口,多包装几层消除差异🥺
|
5
nightwitch 2022-09-10 15:46:33 +08:00 via Android
pcl 感觉不好用..不如 open3D 好用。。之前有几个 pybinding 但是都处于难编译年久失修的状态了
|
6
jones2000 2022-09-10 17:10:50 +08:00
不能直接移植到 js 上吗, 必要用 WebAssembly 吗?毕竟会 js 的人比较多。
|
7
thinkershare 2022-09-10 17:52:29 +08:00
@jones2000 这个玩意移植到 JS 没有任何太大意义, 因为它本身就对内存要求极为严苛, JS 天然就不适合最高密度的计算. 否则就不会诞生 WebSssembly 了, 而且移植到 JS 的工作量将是非常巨大, 不是 1-2 个人短时间能完成的.
|
8
darkce OP @jones2000 只是需要加载 webassembly 资源,使用起来和直接用 js 库没有区别
|
9
ChenYFan 2022-09-12 16:36:58 +08:00
wasm 理论上可以移植所有二进制程序,但是真的会去移植的都是大佬
|