🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主
🍻本文由virobotics(仪酷智能)原创首发
🥳欢迎大家关注✌点赞👍收藏⭐留言📝
前言
Hello,大家好,我是virobotics(仪酷智能),一个深耕于LabVIEW和人工智能领域的开发工程师。
今天给大家分享在LabVIEW中实现深度相机与三维定位相关理论知识。
双目深度测量原理
🤗 一个小实验
🤔理想双目模型(上)
下图所示为点P在理想双目相机模型中的成像原理。
粗体蓝线代表两个相机图像传感器上的靶面(成像平面);
B为基线,即两个相机中心点之间的距离;
FL与FR分别为左右相机的焦距,理想FL=FR=F;
CL与CR分别为左右相机的光心的横坐标(指到靶面左边缘的实际距离,下同),理想CL=CR;
XL与XR分别为点P在左右相机靶面上成像点的横坐标;
设点P到双目相机基线的距离(深度)为Z,根据相似三角形定理,可得:
整理后为:Z = B*F/(XL - XR)
🤔理想双目模型(下)
深度计算公式:Z = B*F/(XL - XR)
其中(XL – XR)称为视差,即空间中相同一点在左右相机的靶面上成像点的横坐标之差。可以看出,视差与深度成反比。
注意上述的视差是个实际尺寸,而不是像素横坐标之差,但是在相同的分辨率下,二者成正比。
视差 = 像素横坐标之差 * 像元尺寸
像元尺寸就是单个像素在靶面上的实际尺寸,所以:
像元尺寸 = 靶面尺寸/分辨率
综上,像素横坐标之差 也与深度成反比。我们可以通过固定点的标定实验,直接确定 像素横坐标之差 与深度之间的系数,从而为将来计算深度提供方便。
以左目中心为坐标原点,
则P点空间坐标估算为:
Z = B*F/(XL - XR)
X = Z*(XL - CL)/F
Y = Z*(YL - CL)/F
(YL-CL代表投射点与左中心的纵坐标之差,下图中未画出,但原理类似)
😎分析小实验
由双目相机的深度计算公式可知,视差与深度成反比。也就是说,远处物体的视差小,近处物体的视差大。所以,当从左眼换到右眼时,月亮在画面中的横坐标几乎没变化,而手指的横坐标却有较大的移动,因而无法继续维持“手捏月亮”的视觉效果。
四、项目源码
如需源码,请查看:https://blog.csdn.net/virobotics/article/details/132013507
更多内容,可关注微信公众号:VIRobotics
总结
以上就是今天要给大家分享的内容,希望对大家有用。如有笔误,还请各位及时指正。后续还会继续给各位朋友分享其他案例,欢迎大家关注博主。我是virobotics(仪酷智能),我们下篇文章见~
**如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏