点云捕获过程
捕获API会在相机完成原始图像捕获之后,点云处理完成之前或之时返回。这取决于GPU(供应商和驱动程序)。因此,在捕获 API 返回后,点云处理可能仍在后台运行。
小技巧
采用 推荐的硬件 以最小化计算时间。
获取点云的API总是会立即返回一个点云对象。点云对象持有GPU内存中点云数据的句柄。此时点云处理也可能仍在后台运行。
我们需要调用API将点云从GPU内存复制到CPU内存。复制功能将阻塞并等到数据可用后再复制。当函数返回时,数据已经在CPU内存中并处于可使用的状态。
备注
即使使用带有集成GPU的CPU,数据也会被复制到同一主RAM上的不同区域。
当点云在CPU内存上可用时,我们即可在机器视觉应用程序中使用它。
关于性能的注意事项
Zivid SDK中对点云的相关操作,例如降采样、转换和法线,都是点云仍在GPU内存中时在GPU上进行计算的。此外,通过使用Zivid API在GPU上进行降采样,需要复制到CPU的数据也会更少。因此,出于性能的考量,使用Zivid SDK进行这些操作是有益的,而使用第三方库实现这些点云操作可能更耗时。通常在CPU上进行计算要慢得多,此外,GPU计算需要从CPU内存再次复制回GPU内存,因为Zivid SDK用户无法访问Zivid SDK使用的GPU内存。