精华内容
下载资源
问答
  • 最详细的双目摄像头测距离(深度)的原理

    万次阅读 多人点赞 2019-05-23 21:30:31
    关于双目摄像头测距原理,最近在看关于双目摄像机成像的项目,找关于双目摄像头标定的c++代码,但是发现自己对双目摄像机的成像原理不清楚,所以看代码和看天书一样。这篇就写给零基础接触双目摄像机成像原理的小...

    关于双目摄像头测距原理,最近在看关于双目摄像机成像的项目,找关于双目摄像头标定的c++代码,但是发现自己对双目摄像机的成像原理不清楚,所以看代码和看天书一样。这篇就写给零基础接触双目摄像机成像原理的小伙伴,等看完这篇之后再去找类似的c++、python标定代码,就简单很多。
    当然,之后也会介绍,关于几个坐标系(世界坐标系、像素坐标系、图片坐标系)的转化。

    **视差的概念:**是指从两个不同位置观察同一个物体时,此物体在视野中的位置变化与差异。从两个观察点看目标,两条视线之间的夹角叫做这两个点的视差角,两点之间的距离称作视差基线。

    为什么单目摄像机不能测深度?
    下图从物理原理上展示了为什么单目相机不能测量深度值而双目可以。我们看到红色线条上三个不同远近的黑色的点在下方相机上投影在同一个位置,因此单目相机无法分辨成的像到底是远的那个还是近的那个。
    在这里插入图片描述
    双目立体视觉深度相机测距流程:
    (1)需要对双目相机进行标定,得到两个相机的内外参数、单应矩阵。
    (2) 根据标定结果对原始图像进行校正,校正后的两张图像位于同一平面且互相平行。
    (3)对校正后的两张图像进行像素点匹配。
    (4)根据匹配结果计算每个像素的深度,从而获得深度图

    理想双目相机成像模型:
    首先我们从理想的情况开始分析:假设左右两个相机位于同一平面(光轴平行),且相机参数(焦距f)一致。那么深度值的推到原理和公式如下:
    在这里插入图片描述

    根据上述推导,空间点p离相机的距离(深度)z=f*b/d,可以发现如果要计算深度z,必须要知道:
    (1)相机焦距f,左右相机基线b。这些参数可以通过先验信息或者相机标定得到。
    (2)视差b。需要知道左相机的每个像素点(Xl, Yl)和右相机中对应点(Xr,Yr)的对应关系。这是双目视觉的核心问题。
    极限约束
    那么问题来了,对于左图中的一个像素点,如何确定该点在右图中的位置,可以通过极限约束。
    什么是极线呢?如下图所示,C1,C2是两个相机,p是空间中一点,P和两个相机中心点C1、C2形成了三维空间中的一个平面PC1C2,称为极平面。极平面和两幅图像相交于两条直线,这两条直线为极线。p在相机C1中的成像点是P1,在相机C2中的成像点是P2,但p的位置事先是未知的。
    我们的目标是:对于左图中的P1点,寻找它在右图中的对应点P2,这样就能确定P点的空间位置,也就是我们想要的空间物体和相机的距离。

    所谓极线约束,就是指当同一个空间点在两幅图像上分别成像时,已知左图投影点P1,那么对应右图投影点P2一定在相对于P1的极线上,这样可以极大的缩小匹配范围。

    在这里插入图片描述
    细心的朋友会发现上述过程考虑的情况(两相机共面且光轴平行,参数相同)非常理想,相机C1、C2如果不在同一直线上怎么办?

    非理想双目相机成像模型
    事实上,这种情况非常常见,因为有些场景下两个相机需要独立固定,很难保证光心C1、C2完全水平,即使是固定在同一基板上也会因为装配的原因导致光心不水平。
    在这里插入图片描述
    有办法哟!
    在这里插入图片描述
    我们先来看看这种情况下拍摄的两张左右图片,左图中三个十字标志的点,在右图中对应的极线是右图中的三条白线,也就是对应的搜索区域。我们看到这三条线并不是水平的,如果进行逐点搜索效率非常低。
    怎么办呢?
    把不理想的转化为理想情况就好了。这就是图像矫正技术。
    图像校正技术是通过分别对两张图片用单应矩阵变换得到的,目的就是把两个不同方向的图下个平面重新投影到同一平面且光周相互平行,下图中的黄色平面,这样就可以用前面理想情况下的模型了,两个相机的极线也变成水平的了。
    在这里插入图片描述
    在这里插入图片描述
    经过校正后,从上图中我们可以看到越近的物体视差越小,越近的物体视差越大,和我们的常识一致。
    上面讲到的对于左图的一个点,沿着它在右图水平极线方向寻找和它最匹配的像素点,说起来简单,但实际操作起来并不容易。
    (1)实际上要保证两个相机完全共面且参数一致是非常困难的,而且在计算中会产生误差积累,因此对于左图中的一个点,其右图的对应点不一定恰好在极线上。应该是在极线附近,所以搜索范围需要适当放宽。
    (2)单个像素点进行比较鲁棒性很差,很容易受到光照变化和视角不同的影响。
    (3)基于滑动窗口的图像匹配
    上述问题的解决办法是:使用滑动窗口。对于左图中一个像素点(左图中的红色方框中心),在右图中从左到右用一个尺寸滑动窗口内的像素和它计算相似程度,相似度的度量有很多方法,比如误差平方法,ssd。ssd越小的位置对应的像素点就是最佳匹配结果。
    在这里插入图片描述
    具体操作中还有很多实际问题,比如滑动窗口的尺寸。
    基于能量优化的图像匹配
    目前比较主流的方法都是基于能量优化的方法来实现匹配。能量优化通常会定义一个能量函数。比如对于两张图中像素点的匹配问题来说,我们定义的能量函数如下图公式1.
    (1)在左图中所有的像素点和右图中对应的像素点越近似越好,反映在图像里就是灰度值越接近越好,也就是下图公式2的描述。
    (2)在 同一张图片里,两个相邻的像素点视差(深度值)也应该相近。也就是下图公式3的描述。
    在这里插入图片描述
    上述公式1代表的能量函数就是著名的马尔科夫随机场(Markov Random Field)模型。通过对能量函数最小化,我们最后得到了一个最佳的匹配结果。有了左右图的每个像素的匹配结果,根据前面的深度计算公式就可以得到每个像素点的深度值,最终得到一幅深度图。

    原文转自https://zhuanlan.zhihu.com/p/32199990

    展开全文
  • 以“立体视觉技术提供商”身份参展本届工博会的MYNTAI小觅智能,携其小觅深度摄像头旗下深度系列新品小觅双目摄像头深度高精版惊喜亮相。 自创立之初便专注于双目立体视觉技术的MYNTAI小觅智能,一直以来都紧随市场...

    今天,第二十一届中国国际工业博览会,在上海国家会展中心正式拉开帷幕。以“立体视觉技术提供商”身份参展本届工博会的MYNTAI小觅智能,携其小觅深度摄像头旗下深度系列新品小觅双目摄像头深度高精版惊喜亮相。
    自创立之初便专注于双目立体视觉技术的MYNTAI小觅智能,一直以来都紧随市场动向,产品的更新迭代往往精准狙击需求缺口。此次发布的新品小觅双目摄像头深度高精版,就是小觅智能针对市场缺口交出的又一份答卷。
    在这里插入图片描述
    小觅双目摄像头深度高精版,依然沿用“视觉+结构光+惯性导航”的核心融合方案,内置深度计算芯片,可直接输出深度信息,并标配IR主动光、IMU、硬件级帧同步、全局快门、自动曝光等领先硬件方案。
    不同的是,在此基础上,小觅双目摄像头深度高精版专为高精度场景进行了优化设计,实测下精度最高可达毫米级别。镜头配备高强度防尘玻璃,减少灰尘的同时更可以最大程度降低震动对摄像头的影响。在相机侧边配置Type-C 接口的设计,有效提升了相机的易用性,螺孔的设计也更方便对线材进行固定。外观上,深度高精版则采用8cm基线,更加小巧玲珑,可适用于更多搭载设备。
    对产品注重细节、精益求精的同时,小觅智能还贴心为每一款双目视觉产品配备详尽的 SDK 文档与完善的技术支持。小觅双目摄像头深度高精版不仅可为定位导航类应用的研发带来更多场景可能,更可适用于对精度有较高要求的行业领域。比如:
    用于立体测量领域,可帮助快速测量箱体体积,实现包裹箱体的自动分拣分类,监测物流暴力分拣,协助物流公司对仓储实现智能化管理,节约人力和仓储空间。
    用于三维重建领域,可帮助快速获取环境三维信息,并建立特定空间的三维模型,广泛应用于商业、医疗和工业等领域。
    此外,还可用于实现人脸识别功能,利用双目视觉定位的三位立体定位特性,通过三维立体人脸识别技术,提供更高效率、更高准确性的成熟的人脸识别方案,从而帮助快速识别个人特征信息,实现与照片的身份比对。
    在这里插入图片描述
    近年来,双目视觉在AI领域还出于一个快速兴起的阶段,但随着人工智能市场的持续发酵,立体视觉技术市场的发展必将迎来飞速发展的拐点。
    未来,MYNTAI小觅智能将继续深耕立体视觉领域,不断完善小觅双目结构光(又称主动双目)惯导相机的方案,让其可以在室内室外复杂的环境中,获得更远的工作距离、更高的精度和更低的成本,从而帮助更多视觉应用方案的快速产品化和落地。真正实现“为人工智能时代应用装上一双眼睛,让机器能更好的感知三维空间、并学会定位和行走。”的美好愿景。

    展开全文
  • 1,按照标准sdk 源码环境安装流程, git clone ... git clone https://github.com/slightech/MYNT-EYE-D-SDK.git 深度版 环境搭配好后,make init 正常 安装了基本的环境包,make install 正常 ...

    1,按照标准sdk 源码环境安装流程,

     git clone https://github.com/slightech/MYNT-EYE-S-SDK.git    标准版

     git clone https://github.com/slightech/MYNT-EYE-D-SDK.git   深度版

    环境搭配好后,make init 正常 安装了基本的环境包,make install 正常

    make sample 时

    缺少/usr/bin/ld: cannot find -lvtkproj4  报错

    属于点云pcl 的问题

    尝试

    sudo apt-get install libpcl-dev pcl-tools

    官网的解决方法:

    http://support.myntai.com/hc/kb/article/1226610/ 

    2,在深度版环境下  make init  安装了很多库  make samples 问题 正常

    运行 get_image 报错USB 2.0

    Note:: You are using the USB 2.0 interface. Current resolution or frame rate is not supported And you can refer to Resolution Support List in the documentation.

    terminate called after throwing an instance of 'std::runtime_error*'
    Aborted (core dumped)

    寻找插头 找到安装到USB3.0的插口下,保证环境系统下正常的USB3.0驱动安装

     

     

     

    展开全文
  • 文章目录:1 RealSense D435摄像头介绍1.1 D435外观及内部构造1.2 D435的参数规格1.3 D435应用2 RealSense D435摄像头的使用2.1 使用D435读取摄像头RGB和深度图3 使用D435做目标检测和距离测量 1 RealSense D435...

    1 RealSense D435摄像头介绍

    英特尔® 实感™ D435 在我们推出的所有摄像头中视场最大,深度传感器上配置全局快门,是快速移动应用的理想选择。

    1.1 D435外观及内部构造

    1、外观
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    2、内部构造

    在这里插入图片描述

    1.2 D435的参数规格

    1、使用场景和范围

    • 使用环境:室内 / 室外
    • 最大范围:约10米

    2、深度

    • 深度视场(FOV):87°±3° × 58°±1° × 95°±3°
    • 最小深度距离:0.105米
    • 深度输出分辨率和帧率:高达 1280 × 720 的主动立体深度分辨率。高达 90 帧/秒。

    3、RGB

    • RGB 传感器分辨率:1920 × 1080
    • RGB 帧率:30
    • RGB 传感器 FOV (H × V × D):69.4° × 42.5° × 77° (±3°)

    1.3 D435应用

    英特尔® 实感™ 深度摄像头 D435 是一款立体追踪解决方案,可为各种应用提供高质量深度。它的宽视场非常适合机器人增强现实虚拟现实等应用,在这些应用中,尽可能扩大场景视角至关重要。这款外形小巧的摄像头拍摄范围高达 10 米,可轻松集成到任何解决方案中,而且配置齐全,采用英特尔实感 SDK 2.0,并提供跨平台支持。

    在这里插入图片描述

    2 RealSense D435摄像头的使用

    2.1 使用D435读取摄像头RGB和深度图

    安装python库包pyrealsense2

    pip install pyrealsense2

    更多pyrealsense2的python教程参考

    import pyrealsense2 as rs
    import numpy as np
    import cv2
    
    # Configure depth and color streams
    pipeline = rs.pipeline()
    config = rs.config()
    # config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
    # config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
    
    config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
    config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
    
    # Start streaming
    pipeline.start(config)
    
    try:
        while True:
    
            # Wait for a coherent pair of frames: depth and color
            frames = pipeline.wait_for_frames()
            # 深度图
            depth_frame = frames.get_depth_frame()
            # 正常读取的视频流
            color_frame = frames.get_color_frame()
            if not depth_frame or not color_frame:
                continue
    
            # Convert images to numpy arrays
            depth_image = np.asanyarray(depth_frame.get_data())
            color_image = np.asanyarray(color_frame.get_data())
            # print(f"depth_image shape: {depth_image.shape} color_image shape: {color_image.shape}")
            print(f"depth_image value: {depth_image}")   # 里面0值很多,还有很多1900左右的值      300mm 单位是毫米=30厘米=0.3米
            # depth_image shape: (480, 640) color_image shape: (480, 640, 3)
            # 深度图是单通道  颜色图是三通道的
    
            # Apply colormap on depth image (image must be converted to 8-bit per pixel first)
            # 在深度图像上应用colormap(图像必须先转换为每像素8位)
            depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
    
            # Stack both images horizontally
            images = np.hstack((color_image, depth_colormap))
    
            # Show images
            cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
            cv2.imshow('RealSense', images)
            cv2.waitKey(1)
    
    finally:
    
        # Stop streaming
        pipeline.stop()
    

    3 使用D435做目标检测和距离测量

    先简单说明我如何做检测到目标的距离检测的:

    • 1)首先使用目标检测方法,检测要检测的目标
    • 2)检测到目标之后,获取目标bbox的中心坐标
    • 3)使用D435获取深度画面的深度信息
    • 4)保证检测画面和深度画面的分辨率是对应的
    • 5)根据bbox的中心坐标,去深度去中取出对应的深度信息,然后绘制出来即可!

    下面是我检测人之后,并获取人距离摄像头的距离,结果如下:

    在这里插入图片描述

    (由于CSDN限制上传图片大小,我就裁剪了很短的一段gif,大家凑合看)

    检测的问题,如果目标bbox的中心点,没有object上,这样获取到的距离就是背景上,这样就是不准确的,目前想到的方式就是通过分割的方式,然后获取分割目标区域的重心,这样获取有改善,没有尝试!

    参考 : https://blog.csdn.net/glb562000520/article/details/17264151 # ToF相机介绍
    参考:https://baike.baidu.com/item/%E7%A7%92/2924586
    参考:https://blog.csdn.net/zhouyy858/article/details/102658020 # 超声波雷达
    参考:https://blog.csdn.net/zhouyy858/article/details/100360829 # 目标跟踪

    欢迎大家关注笔者,你的关注是我持续更博的最大动力


    原创文章,转载告知,盗版必究

    微信:suihailiang0816
    QQ:931762054
    wx公众号:仰望星空的小随
    展开全文
  • 目录 一.目的 1.想知道:鱼眼镜头 ...1.深度了解深度摄像头 三.注意 四.操作:备份 一.目的 1.想知道:鱼眼镜头 1.将其转载,避免作者删除,就没有了 二.参考 1.深度了解深度摄像头 ...
  • python 双目深度检测

    2020-04-12 17:37:25
    使用的是opencv双目深度检测 可返回实时距离,空间任意点距离检测,希望能给大家带来一些帮助。如有疑问欢迎讨论谢谢
  • 文章目录ROS 生成深度图简介双目摄像头测距与 OpenCV 简介双目测距原理准备双目测距准备ROS 的摄像头仿真ROS 获取仿真摄像头的固定属性数据生成深度图设置相机属性参数生成深度图使用 python 获取话题的图像数据把...
  • 深度信 息 。 随着 微电 子技 术的飞速发展 , 人们对成像分辨率的追 求也越来越高 。   在 这种 高 分辨率 图像 数据下 , 传统 的基于软件数字 图像处理速度 已经 无法满足需   求 。 本课题采用 ...
  • 要想获取深度图,就必须得做好一些基本工作,首先参考博客:vs2015 + opencv3 双目摄像头标定(C++实现),获得左右摄像头的内参和外参(cameraMatrixL、distCoeffL、cameraMatrixR和distCoeffR),以及R旋转矢量 T...
  • 2019年1月15日, 小觅智能发布了其双目深度相机系列旗下全新产品小觅双目摄像头标准彩色版(简称标准彩色版,下同)。 小觅双目摄像头 标准彩色版(MYNT EYE S Color)依然沿用“双目+IMU”的惯性导航核心硬件方案...
  • 双目标定测定距离流程 获取左右相机内外参数 相机内参:(1/dx, 1/dy, Cx, Cy, f)表征了相机的内部结构参数 dx和dy是相机单个感光单元芯片的长度和宽度,是一个物理参数,Cx,Cy分别代表相机感光芯片的中心点在x和y...
  • 运行实例:NiWrapper.Net\Samples\bin\x86_Debug\NiViewer.Net.exe 可以调用深度镜头,color镜头,红外镜头,得到视频流 包含C#源程序 实现:C#是调用C++编译后的dll
  • 4.两颗微软HD-3000摄像头 5.i7、集显、16g、sata ps:如果你下载了我之前的代码:http://download.csdn.net/detail/hysteric314/9514872, 那这个你就不需要下载了,只需要改一下之前的代码 方法: 注释掉stdafx.h...
  • 单目、双目深度相机比较

    万次阅读 2019-01-10 21:11:11
    单目,双目深度相机比较 1.mono 优点: 结构简单,成本低 缺点: 在单张图片里,无法确定一个物体的真实大小。它可能是一个很大但很远的物体,也可能是一个很近很小的物体。通过相机的运动形成视差,可以测量...
  • 但是 这个工程代码是视频中代码的修改版 修改内容:屏蔽了用cvblobslib实现的功能,但是主要功能标定以及测距都可以实现,而且不用安装那反人类的cvblobslib...1,两个普通摄像头 2.opencv2.4.9 3.windows10 4.vs2013
  • 双目摄像头简单的活体识别,通过调用红外摄像头,采用三帧差分法,能做简单的活体验证,红外摄像头硬件属性就可以判断出示手机视频,这个主要针对打印的图片,通过修改if (mu3/mu ),通过修改0.35这个参数微调,基本...
  • 该代码可以标定双目摄像头内外参,实现深度测距
  • 近年来,在AR/VR以及自动驾驶、无人机、机器人等人工智能领域,对深度视觉的需求十分突出...按技术分类,深度摄像头可分为以下三类主流技术:结构光、双目视觉和TOF飞行时间法。 结构光 结构光是目前最主流、应用...
  • 2,视频中两个摄像头之间的距离是6cm,你可以根据你摄像头的型号,来选择合适的距离来达到最好的效果。 3,在进行测距之前,首先需要对摄像头进行标定,那么如何标定呢? 在stdafx.h中把"#define CALIBRATION 0"改成...
  • 双目视觉图片,左右双摄得到的图像,来获取图片的深度信息。从而用于构建3d图片。
  •  双目视觉算法可以很好运行的前提条件是左右两幅图像是同一时间采集的,即感光芯片曝光的时间段是相同的,目前市面上也有很多同步同帧的双目摄像头,一般价格都挺贵,之前用MYNTEYE 小觅摄像头测试得到的深度图像还...
  • 一文读懂深度结构光和双目原理,并给出了结构光视觉和双目视觉的对比分析(他人博客网页截图:深度相机原理揭秘--结构光(iPhone X 齐刘海原理))
  • 事实上,近年来马斯克爱用的摄像头方案已有了新的进展,引起了主机厂和Tier 1极大的关注和采用,它就是立体视觉(StereoVision)技术,也有人叫它3D感测或双目摄像头,当然还有多目摄像头。今天就来聊聊这个双目...
  • 引言:市场对深度视觉技术需求趋于井喷,但可以提供产品和方案的公司寥寥无几,本文分析了国内三家各具特点的深度摄像头公司,对三种主流深度摄像头方案进行了详细对比,以期帮助应用公司更好选择适合方案。...
  • MYNTEYE小觅双目摄像头深度版+VINS测试

    万次阅读 多人点赞 2018-12-07 10:14:37
    小觅双目深度版性能分析 今年(18年)11月9号小觅智能科技的深度版双目相机上市,于是我在12月初花了2999软妹币购买了120度视角的相机。 其中我比较感兴趣的是 双目+惯导+结构光 的多传感器融合,这样跑单目,双目...
  • intel realsense d435深度摄像头使用

    千次阅读 2019-06-03 23:23:06
    intel realsense d435深度摄像头基本环境配置 基本参考官网给的教程来就ok的 ,这里还是发一下我最初配置d435的记录 官网链接: https://github.com/intel-ros/realsense 环境:Ubuntu16.04 + Intel realsense d435 ...
  • 1.双目匹配(双RGB摄像头+可选的照明系统) 三角测量原理即目标点在左右两幅视图中成像的横坐标之间存在的差异(视差Disparity),与目标点到成像平面的距离成反比例的关系:Z = ft/d;得到深度信息。 双目匹配采用三角测量...
  • 双目摄像头测距算法

    千次阅读 2020-03-11 17:43:49
    双目摄像头测距算法 输入输出接口 Input: (1)左右两个摄像头采集的实时图像视频分辨率(整型int) (2)左右两个摄像头采集的实时图像视频格式 (RGB,YUV,MP4等) (3)摄像头标定参数(中心位置(x,y)和5个...
  • 定位使用双目摄像头进行定位 先使用matlab对双目摄像头进行标定 参考 opencv立体校正函数 stereoRectify() Matlab R2018a 使用自带stereoCameraCalibrator进行相机标定(参数的确定) 双目测距理论及其python实现! ...
  • 需求说明:安卓开发 ...引言:市场对深度视觉技术需求趋于井喷,但可以提供产品和方案的公司寥寥无几,本文分析了国内三家各具特点的深度摄像头公司,对三种主流深度摄像头方案进行了详细对比,以期帮助应用公司

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,914
精华内容 1,165
关键字:

双目深度摄像头