【单目测距和双目测距比较】

2023-05-16

单目测距和双目测距比较

  • 单/双目方案的优势与难点
    • 单目测距
    • 双目测距
  • 双目测距实现步骤
    • 实现过程

单/双目方案的优势与难点

单目测距

**优点:**单目的优势在于成本较低,对计算资源的要求不高,系统结构相对简单。
缺点:在于必须不断更新和维护一个庞大的样本数据库,才能保证系统达到较高的识别率;无法对非标准障碍物进行判断;距离并非真正意义上的测量,准确度较低。

单目摄像头的大致测距原理,是先通过图像匹配进行目标识别(各种车型、行人、物体等),再通过目标在图像中的大小去估算目标距离。

双目测距

优点一是激光雷达等方案相比成本较低;二是没有识别率的限制,因为从原理上无需先进行识别再进行测算,而是对所有障碍物直接进行测量;三是精度比单目高,直接利用视差计算距离;四是无需维护样本数据库,因为对于双目没有样本的概念。
原理
双目检测的方式就是通过对两幅图像视差的计算,直接对前方景物(图像所拍摄到的范围)进行距离测量,而无需判断前方出现的是什么类型的障碍物。
在这里插入图片描述
图中的人和椰子树,人在前,椰子树在后,最下方是双目相机中的成像。可以看出右侧相机成像中人在树的左侧,左侧相机成像中人在树的右侧,这是因为双目的角度不一样。再通过对比两幅图像就可以知道人眼观察树的时候视差小。而观察人时视差大,因为树的距离远,人的距离近。这就是双目三角测距的原理。双目系统对目标物体距离感知是一种绝对的测量,而非估算。

双目系统的一个难点在于计算量非常大,对计算单元的性能要求非常高,这使得双目系统的产品化、小型化的难度较大。所以在芯片或FPGA上解决双目的计算问题难度比较大。国际上使用双目的研究机构或厂商,绝大多数是使用服务器来进行图像处理与计算的;也有部分将算法进行简化后,使用FPGA进行处理。目前,中科慧眼在芯片上的计算效率已经达到15fps,在FPGA+ARM架构上的计算效率达到了40fps。

另一个难点在于双目的配准效果。通过双目摄像头的图像配准可以计算生成表示距离的二维图像。下图是中科慧眼双目方案对实际场景信息采集与计算得到的距离的对应关系,不同饱和度颜色代表不同距离,从暖色调至冷色调为距离由近及远。在计算过程中,需要对噪点与空洞做很好的抑制。从右图可以看出,色调(距离)是平滑过渡,没有跳变。
在这里插入图片描述

双目测距实现步骤

主要分为4个步骤:相机标定+双目校正+双目匹配+计算深度信息:

  • 相机标定:需要对双目相机进行标定,得到两个相机的内外参数、单应矩阵。
  • 双目校正:根据标定结果对原始图像进行校正,校正后的两张图像位于同一平面且互相平行。
  • 双目匹配:对校正后的两张图像进行像素点匹配。
  • 计算深度图:根据匹配结果计算每个像素的深度,从而获得深度图。

实现过程

(1) 采集标定板的左右视图

  • 采集数据前,请调节相机焦距,尽可能保证视图中标定板清洗可见
  • 采集棋盘格图像时,标定板一般占视图1/2到1/3左右
  • 一般采集15~30张左右

参数说明:

“”“
参数width指的是棋盘格宽方向黑白格子相交点个数
参数height指的是棋盘格长方向黑白格子相交点个数
参数left_video是左路相机ID,一般就是相机连接主板的USB接口号
参数right_video是右路相机ID,一般就是相机连接主板的USB接口号
PS:如果你的双目相机是单USB连接线的双目摄像头(左右摄像头被拼接在同一个视频中显示),则设置left_video=相机ID,而right_video=-1,
参数detect建议设置True,这样可实时检测棋盘格,方面调整角度
按键盘s或者c保存左右视图图片
”“”
width=8                
height=11
left_video=0
right_video=-1
save_dir="data/camera"
detect=True
 
python get_stereo_images.py \
    --left_video $left_video \
    --right_video $right_video \
    --width $width  \
    --height $height  \
    --save_dir $save_dir \
    --detect $detect \

参考:
链接: http://www.cheyun.com/content/10424.
链接: https://blog.csdn.net/guyuealian/article/details/121870887.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【单目测距和双目测距比较】 的相关文章

  • leetcode刷题(七)——移动零

    给定一个数组 nums xff0c 编写一个函数将所有 0 移动到数组的末尾 xff0c 同时保持非零元素的相对顺序 请注意 xff0c 必须在不复制数组的情况下原地对数组进行操作 示例 1 输入 nums 61 0 1 0 3 12 输出
  • STM32 HAL库 串口接收不定长数据(帧头)

    写的比较垃圾 xff0c 将就着用 欢迎各位大佬指导 xff0c 我这里要用串口中断接收两种帧头的数据 xff0c 1 以0x0D 0x0A为帧头的数据 2 xff0c 以0x55 0xA5为帧头的数据 两数据包帧头不同 大小不同 其中定义
  • freeRTOS系列教程之【第一章】FreeRTOS概述与体验

    文章目录 教程目录1 1 FreeRTOS目录结构1 1 FreeRTOS目录结构1 2 核心文件1 3 移植时涉及的文件1 4 头文件相关 1 4 1 头文件目录1 4 2 头文件 1 5 内存管理1 6 Demo1 7 数据类型和编程规
  • 【RTOS的最通俗理解】行业大佬用一篇文章带你快速理解RTOS

    文章目录 单片机 RTOS 架构 1 RTOS的概念 1 1 用人来类比单片机程序和RTOS 1 1 1 我无法一心多用1 2 2 我可以一心多用 1 2 程序简单示例 2 架构的概念 2 1 用人来类比电子产品2 2 要深入理解RTOS就
  • 开源网络模拟器ns-3 架构与实践

  • 四、freeRTOS_同步互斥与通信概述

    目录 1 同步与互斥的概念 2 同步的例子 xff1a 有缺陷 3 互斥的例子 xff1a 有缺陷 4 通信的例子 xff1a 有缺陷 5 FreeRTOS的解决方案 对应程序 xff1a 12 freertos example sync
  • 五、freeRTOS_队列的使用

    目录 1 队列的理论讲解 1 1 常规操作 2 队列的常规使用 3 队列集 1 队列的理论讲解 1 1 常规操作 队列的简化操如入下图所示 xff0c 从此图可知 xff1a 队列可以包含若干个数据 xff1a 队列中有若干项 xff0c
  • 从零开始的leetcode刷题(使用python)Day1

    从零开始用python刷leetcode xff0c 随手记录一些tips 1 哈希表 xff08 leetcode第一题两数之和 xff09 哈希表也叫作散列表 xff0c 数据结构提供了键 xff08 key xff09 和值 xff0
  • [深度学习] 神经网络中的 batch 和 epoch

    参考文章为 神经网络中Batch和Epoch之间的区别是什么 xff1f Sample Sample是单个数据 即有意义的数据的最小单位 训练数据集由许多Sample组成 batch batch是一个人为设定的超参数 batch的意思是 批
  • Windows开启ftp服务-使用Xlight FTP Server

    适用于windows系统 xff0c 使用Xlight FTP Server软件 下载地址 xff1a 点击此处下载 1 将下面的软件 xff0c 安装在电脑上 2 开启ftp服务 点击程序主界面左上角 xff0c 默认端口号为21 xff
  • 控制理论中的常用定义与定理

    以下内容摘自 应用非线性控制 对于自治系统 xff08 在本书中与定常系统等价 xff09 一句话总结 xff1a 初始状态的足够小能够保证系统状态范数的任意小 不变集理论可以在V导为半负定时推导出渐进稳定的结论 xff0c 但只适用于自治
  • centos8服务器安装nginx

    安装nginx 安装依赖包 yum span class token parameter variable y span span class token function install span gcc zlib zlib devel
  • 部署hexo遇到报错ERROR Deployer not found: git的解决办法

    部署hexo遇到报错ERROR Deployer not found git的解决办法 今天部署hexo的时候遇到一个报错 hexo c span class token operator amp amp span hexo g span
  • npm install hexo-renderer-sass时报错解决办法

    npm install hexo renderer sass时报错 在安装配置hexo博客的时候 xff0c 有的主题需要安装 span class token function npm span span class token func
  • 实用工具网站推荐

    速写板 可以随时开一个web网页进行书面草稿的网站
  • kaggle 免费gpu,optuna学习,python中*的用法

    kaggle import optuna def obj trial x 61 trial suggest float 34 x 34 7 7 y 61 trial suggest float 34 y 34 7 7 return x 1
  • BFS题单总结

    BFS题单汇总 此文章用来记录遇到的经典的从某个点到达某个边界或者指定点的BFS题目 xff0c 将持续更新 1926 迷宫中离入口最近的出口 span class token keyword class span span class t
  • Java/C++输入输出特定格式模板总结

    Java输出每个数字占5个空格 xff0c 此输出模式见洛谷1443题 span class token class name System span span class token punctuation span out span c
  • DFS题单以及模板汇总

    此文章是为了记录自己学习DFS算法以及记录写过的DFS题单汇总 xff0c 持续补充 P1605 迷宫 迷宫 题目描述 给定一个 N M N times M N M 方格的迷宫 xff0c 迷宫里有
  • MacOS 用typora和picGo配置腾讯云COS图床

    MacOS 用typora和picGo配置腾讯云COS图床 首先去PicGo最新下载网址 xff0c 点击PicGo 2 3 0 dmg下载后安装 安装好了之后双击之后没有看到对应的启动icon xff0c 实际上是在上面的标题栏的右侧 x

随机推荐