赞
踩
系列一:单相机(单目)散斑结构光-三维重建(3D-reconstruction):综述、原理、计算过程(一)_单目结构光三维重建 c++-CSDN博客
系列二:
单相机(单目)散斑结构光-三维重建(3D-reconstruction):示例源码(二)-CSDN博客
CSDN2024424239331
先上个嵌入式运行效果,不同精度计算方案,帧率约10~60fps可调,提供芯片级解决方案一条龙服务:
本章节简单讲述散斑结构光在应用中的几个实际问题:
系列二中的代码使用CPU,单张图耗时以分钟记。优化有两个方向:1、算法优化。2、硬件加速。
1、3D恢复算法优化:
主要耗时瓶颈是遍历计算匹配代价(这一点其实与双目是一样的)。主要优化手段有:
a、匹配代价可使用积分图的方法,如ZNCC也可以使用积分图进行优化;
b、在空间上,或时序上使用粗细搜索,是计算匹配代价中常用的方法,即以上一次(时序)或周围(空间)散斑点的匹配结果为粗搜索(coarse-search),在初值附近再进行细搜索(fine-search)。
2、硬件加速:
a、PC端使用GPU,这就不展开了,GPU已经非常强大,跑到100fps也没问题。且匹配代价的遍历并行计算非常适合GPU。
b、嵌入式端CPU计算使用neon等加速手段,强如3588,算法优化后跑深度图的360P全图也只能到约3~5fps。
c、>5fps,芯片级加速,国内除奥比外,仅有极少数SOC供应商有该能力。
说白了,在嵌入式端像奥比一样想跑大分辨率的实时,没得芯片是不行滴。
使用散斑结构光,偏低精度应用居多(毫米级),故通常对精度没有特别苛刻的需求。通常对其重建精度的描述分为相对精度、绝对精度。
相对精度:
拍摄一个平坦的平面,由于散斑的空间分布及算法的窗口作用,重建得到的往往是一块带有离散点或不平坦的平面,噪声就描述了相对精度。通常与算法本身、算法参数、散斑质量等都有关系。这个精度通常与距离的平方成反比,与焦距、基线成正比。故散斑结构光在远距离的精度会大幅缩水,基本只能达到cm级。
绝对精度:
将物体摆在1米处,通过深度计算解算出其在1.01米,则绝对误差在1%。该项误差与参考图标定,基线的精度等都有关系。通常在3%以内,精确标定误差基本可控制在0.5%以内。注意,这个误差在不同距离是会变化的。
通常部分带有RGB模组的方案,会将彩色图像贴到点云上。通过RGB模组与IR模组的双目标定,即可完成该步骤,有较多资料,不再赘述。
对结构光模组来说,在实际应用中,最为致命的是结构的变动导致标定参数的变化。由于单目结构光没有类似双目中极线矫正的步骤,而是靠结构来保证参考图、场景图的同名点位于同一行号附近。即使有,轻微的结构变动,也会导致原搜索行号,无法对齐。
而通常为了节省计算量,散斑结构光搜索同名点仅会搜索附近少量的行,通常不超过+-5行。轻微的角度变动,就可能导致无法找到同名点,进而无法输出深度图。通常考虑添加自校正模块解决该类问题,结构上也可通过分体式等方式尽量避免结构变形问题
通常包含去噪、伪彩图、空洞补充等算法。点云相关,一般使用PCL库进行处理。也有较多的资料,不再赘述。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。