LabVIEW实现深度相机与三维定位实战(二)

简介: LabVIEW实现深度相机与三维定位实战(二)

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主

🍻本文由virobotics(仪酷智能)原创首发

🥳欢迎大家关注✌点赞👍收藏⭐留言📝

前言

Hello,大家好,我是virobotics(仪酷智能),一个深耕于LabVIEW和人工智能领域的开发工程师。

今天给大家分享在LabVIEW中实现深度相机与三维定位相关理论知识。


双目深度测量原理

🤗 一个小实验

image.png
image.png

🤔理想双目模型(上)

下图所示为点P在理想双目相机模型中的成像原理。
image.png

粗体蓝线代表两个相机图像传感器上的靶面(成像平面)
B为基线,即两个相机中心点之间的距离;
FL与FR分别为左右相机的焦距,理想FL=FR=F;
CL与CR分别为左右相机的光心的横坐标(指到靶面左边缘的实际距离,下同),理想CL=CR;
XL与XR分别为点P在左右相机靶面上成像点的横坐标
设点P到双目相机基线的距离(深度)为Z,根据相似三角形定理,可得:

image.png

整理后为: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代表投射点与左中心的纵坐标之差,下图中未画出,但原理类似)

image.png

😎分析小实验

由双目相机的深度计算公式可知,视差与深度成反比。也就是说,远处物体的视差小,近处物体的视差大。所以,当从左眼换到右眼时,月亮在画面中的横坐标几乎没变化,而手指的横坐标却有较大的移动,因而无法继续维持“手捏月亮”的视觉效果。

image.png


四、项目源码

如需源码,请查看:https://blog.csdn.net/virobotics/article/details/132013507

更多内容,可关注微信公众号:VIRobotics


总结

以上就是今天要给大家分享的内容,希望对大家有用。如有笔误,还请各位及时指正。后续还会继续给各位朋友分享其他案例,欢迎大家关注博主。我是virobotics(仪酷智能),我们下篇文章见~

**如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏

目录
打赏
0
0
0
0
66
分享
相关文章
LabVIEW与3D相机开发高精度表面检测系统
LabVIEW与3D相机开发高精度表面检测系统
99 2
【一步步开发AI运动小程序】六、人体骨骼图绘制
随着AI技术的发展,阿里体育等公司推出的AI运动APP如“乐动力”、“天天跳绳”等,使云上运动会、线上健身等概念广受欢迎。本文将引导您从零开始,利用“云智AI运动识别小程序插件”,在小程序中实现类似功能,包括人体骨骼图的绘制原理及其实现代码,确保骨骼图与人体图像精准重合。下篇将继续介绍运动分析方法。
在yolov5项目中如何使用自带摄像机不用网络摄像机进行实时检测?
这篇文章讨论了在yolov5项目中,如何避免使用网络摄像机而改用自带的本地摄像机进行实时目标检测,并提供了解决摄像头打开错误的具体步骤和代码示例。
在yolov5项目中如何使用自带摄像机不用网络摄像机进行实时检测?
三维可视化神器带来无限可能,原来三维场景也可以如此轻松实现
三维可视化神器带来无限可能,原来三维场景也可以如此轻松实现
149 1
三维可视化神器带来无限可能,原来三维场景也可以如此轻松实现
粒子辐照环境中相机镜头防护及LabVIEW图像处理注意事项
粒子辐照环境中相机镜头防护及LabVIEW图像处理注意事项
74 1
LabVIEW图像采集处理项目中相机选择与应用
LabVIEW图像采集处理项目中相机选择与应用
69 0
|
9月前
|
LabVIEW开发机械手圆周插补轨迹控制
LabVIEW开发机械手圆周插补轨迹控制
58 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等