首发于微信公众号「3D视觉工坊」——3D视觉技术的6个问答
前言自从加入学习圈「3D视觉技术」以来,与小伙伴们一起讨论交流了近200多个学术问题,每每遇到一些令我难以回答的问题,我都会为自己学识有限而深感焦虑。好在圈里有很多热心的小伙伴总能在我「危难」之时,替我补充回答,并且每每补充回答总是让我惊叹不已。在此深表感谢。
今从中挑选六个3D视觉技术的问答,但愿也能让更多小伙伴受益,一起学习,多多交流,更进一步~
六个问答-
问答1:
我们一般用的镜头是定焦镜头,那么我们在镜头上调焦,让模糊的的图像变清晰,这是什么过程?不是说是定焦吗,怎么又叫调焦?
这个过程其实属于光学学科研究的范畴,不过我们既然使用相机,其实这块了解下蛮好的。调焦的焦,是焦点的焦,是指通过“调焦”,即改变像距v,满足成像公式1/u+1/v=1/f,以便在底片上结成清晰成像。下面简单讲讲变焦与调焦的区别:理想凸透镜成像公式:1/u+1//u=1/f,其中u是物距,v是像距,f是焦距。变焦——是指改变镜头的焦距f,也就是改变视角,只有变焦镜头的焦距才能改变,定焦镜头的焦距是固定的。调焦或叫对焦、聚焦——指改变像距v,也就是改变镜头光心到底片平面的距离。变焦是改变镜头的焦距即改变镜头的视角,其原理是在镜头的镜片中加一族活动透镜。调焦是调整像的虚实,即改变透镜和成像面的距离,达到使影像清晰的目的。以上回答不知道能不能帮助到你理解问题,欢迎再继续交流~
-
问答2:
棋盘格和圆形标定板,哪个标定精度高?
推荐参考论文:《Accurate Camera Calibration using Iterative Refinement of Control Points》
-
问答3:
pcl里面的ppf点对特征的代码,参数调了一上午没效果。输出变换矩阵一直是单位阵…请问有这方面经验吗?
对于这个问题,我了解的不多,我们优秀的圈友给出了如下补充回答:
同学你好,pcl里的ppf我没有用过,但我参照OpenCV的第三方贡献包[surface_matching]( https://github.com/opencv/opencv_contrib/tree/master/modules/surface_matching )里的ppf实现和原版论文[《Model globally, match locally:Efficient and robust 3D object recognition》]( http://far.in.tum.de/pub/drost2010CVPR/drost2010CVPR.pdf ),自己实现过。所以我提几点,希望对同学你有帮助:
PPF算法分为两个阶段,建模和匹配。点对特征的原版实现是4个,设两点分别为n1和n2,两点之间的线段为d,则其点对特征为(d的长度, n1与d的夹角, n2与d的夹角, n1与n2的夹角)。故点对特征依赖点的位置和点上附着的法线方向。
所以个人认为有几点需要注意的:
①确认点云的法线方向,估计是你截图里的ppf_estimator.setInputNormals()的输入。因为点云的法线大多为估算所得,但估算所得的法线的方向是不确定的,可能朝上、可能朝下。一个解决方法是设置一个参考点,通过参考点到点云上点的夹角是锐角还是钝角,决定法线方向朝上还是朝下。
②计算ppf特征前下采样的粒度。一般取模板点云直径的5%或10%。离散化的好处主要是加快速度。但需注意的是模板点云和场景点云的下采样粒度需一致。
-
问答4:
我想问一下,有没有binpicking中关于遮挡目标的识别检测和定位的方法汇总呀
关于这个问题,我们优秀的圈友给出了高赞回答,如下:
原文链接:ObjectDetection and PoseEstimation - LittleBear!!!(https://littlebearsama.github.io/2019/05/28/ObjectDetection-and-PoseEstimation/#more)
0 关于目标识别和位姿估计:目前物体6自由度位姿估计(6-Dof pose estimation)有哪些主流方法?(参考:https://www.zhihu.com/question/63159179/answer/257832184)
关于遮挡目标:
patchlinemod(https://zhuanlan.zhihu.com/p/45538349)
博主“没趣啊”用LCHF实现了,并且开源了代码。LCHF简单来说就是把训练图像拆成小块拿去匹配来应对遮挡,中间用了个forest加速。
1)基于三维视觉的物体位姿估计的算法评估(综述) 2017 在“Recovering 6D Object Pose: Multi-modal Analyses on Challenges”中:2018 在“BOP: Benchmark for 6D Object Pose Estimation”中:对各种方法进行了估计还有测试。2019 在“RGB-D image-based Object Detection: from Traditional Methods to Deep Learning Techniques”中:从传统识别方法到深度学习技术
bin-picking中传统方法:linemod,ppf比较可靠
2)针对刚性物体的基于三维视觉的识别与位姿估计的方法主要分为五类:基于模板匹配;基于三维局部特征;基于PPF;基于机器学习;基于深度学习。
3)补充博客上没有的 基于深度学习(三种方法):新出的meshrcnn可以关注一下(深度学习我不是很了解)
a.基于2D投影的深度学习网络 多视图处理神经网络在处理3D图像的分割和分类任务中的中心思想是:用多张不同角度2D图像的表面特征,直接处理相应的2D图片信息从而进行3D物体识别和探测,这样就可以直接利用二维图像上成熟的CNN技术。
代表方法:MVCNN,Snapnet,DeePr3SS
缺点:容易受到物体之间互相遮挡损失一些表面信息,投影变换过程
b.基于三维数据立体栅格化 把原始点云转换为立体网格(vexel)然后采用改进的三维卷积神经网络进行处理。代表方法:3D-CNN,VAE,VoxNet 缺点:需要转化为体素模型,设置不同的立体网格分辨率能不同程度的保留原始场景的细节信息,这个转换需要消耗大量的计算资源和时间,而且难以处理较复杂结构的大场景对象物体。
c.基于点的神经网络框架(point-based技术)
-
直接处理输入的点云数据,通过构建网络模型提取场景点云的三维空间结构特征。
-
有效处理大规模非结构化并且无序的点云数据,从中提取出各类地物目标信息 3. 通过大量标记点云数据样本的训练得到具有更高精度的语义分割模型 代表方法:PointNet,PointNet++,PointCNN,PointSIFT,Superpoint Graph
-
问答5:
前辈你好,我采用多频外差法三维重建生成的点云表面总是有皱皱巴巴的噪声,我改用了格雷码解相后仍然存在相同的问题。硬件方面我怀疑摩尔纹可能会有一些影响,软件方面我采用的方法是对左右绝对相位图使用中值滤波去除高频噪声+双边滤波进行平滑,然后使用极线约束进行双线性插值匹配。最终得到的视差图几乎无高频噪声,但是有低频的缓慢的起伏。请问我这种处理方式是否正确呢,引起低频噪声的原因可能是什么呢,谢谢!
可以做个傅里叶变换,高通滤波,然后傅里叶反变换即可。如果噪声是低频,特征是高频的话,直接筛选掉。空域有时候不好用,可以到频域会变得较为简单。对了,关于多频外差方法,我们圈里也有一位成员之前使用过,可以加我微信,我推荐你们认识,可以多多交流。
-
问答6:
请问一下目前国内外有哪些处理点云数据的软件?
关于点云的处理软件,此处我推荐三款,你可以择优选用:1、cloudCompare; 2、Meshlab; 3. Geometric。此外,还有其它见附图。参考:《点云库PCL从入门到精通》
上述内容,如有侵犯版权,请联系作者,会自行删文。
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题