单目测距那些事儿(上) _ 从MobileEye谈起

单目测距那些事儿(上) | 从MobileEye谈起

全面专业的自动驾驶学习资料:链接

  1. 前言

在ADAS领域,有个功能叫自适应巡航控制(Adaptive Cruise Control, ACC)。 ACC是一种纵向距离控制,具体包括发现目标车辆、判断目标车辆所在路径、测量相对本车的距离和速度,然后进行相应的刹车等制动操作以保持安全驾驶距离。当没有发现目标车辆时,则保持预设的巡航速度。

对于测距而言,最直接的方法是采用毫米波雷达、激光雷达和双目相机。但是考虑到设备成本和计算成本,人们开始考虑能不能用单目相机来做距离控制。当然这种考虑不是空穴来风的,而是有两个直观的动机

  • 生物视觉角度:一方面,人类双眼虽然有立体测距功能,但仅在近距离比较准确,无法准确测量百米距离;另一方面,基于近大远小的原理,人类视觉就可以准确评估TTC (Time To Collision)。(换句话说,在ACC中测距可能不用太准,而近大远小的原理用单目也可实现,那单目测距还是很有希望的嘛)

  • 实践角度:雷达太贵,立体视觉不仅增加额外相机,而且计算量大,标定也是个问题。单目相机则成本很低,易于批量生产。

当然,挑战也是有的,主要两个:

  • 由于缺乏用于目标识别的深度信息,非常依赖基于模式识别的目标检测算法,那么当前的目标检测算法是否足够鲁棒?(目标识别不出来,就没法测距,后果很危险。)

  • 目标检测出来后,利用透视法则近大远小原理测距能否满足制动控制精度。

下面就先介绍MobileEye在2003年一篇论文,主要介绍了测量距离、相对速度的基本方法,以及误差分析。

2. MoibleEye 2003年的论文

论文:Vision-based ACC with a Single Camera: Bounds on Range and Range Rate Accuracy

2.1 测距

首先明确一点,对于单目测距,我们主要是有两个信息可以利用:图像中车辆的尺寸,图像中车辆的位置

而这篇论文主要是利用图像中车辆位置进行测距的(确切地说,是利用车与路面的接触点)。如下图,A,B,C三辆车在路面上,A车上p处有个相机。有两个假设

  • 道路是平面。

  • 相机光轴与路面平行。

image

道路上与本车(A)距离为Z的一点,投影到图像上高度为y。f为焦距,H为相机高度,则满足:

image

为了测距,首先需要检测前车与路面的接触点,然后就可以计算距离了:

image

也就是,根据焦距、相机高度,图像中接触点位置三个量,即可计算距离。

当然在现实中,上述两个假设常常不满足,会造成很大的误差。另外,接地点的估计也会引入误差。

2.2 测距误差分析

如果接地点存在n个像素误差,那么测距误差公式为:

image

所以,测距误差是随着距离而二次方地增长,而误差比例则随着距离线性增长。

在640x480分辨率的图像上,90m的测距误差比例为10%左右,45m的测距误差比例为5%左右。

除了距离,相对速度或许更重要,因为它告诉我们是否在保持一个恒定的距离。

2.3 相对速度

相对速度(range rate, or relative velocity)可以如下表示:

image

也就是测量两个时间的距离,用距离差除以时间差。但是,测距结果充满噪声,这样算出来的相对速度精度自然不高。所以,这里主要使用目标尺寸变化计算相对速度。令W是车辆实际宽度,w和w’是前后两张图像上的车辆宽度,那么满足:

image

(7)式可以参考下图:

image

然后,

image

也就是,根据t1时刻距离,t1和t2的检测尺寸,就可计算出相对速度。

2.4 相对速度误差分析

这一部分公式比较复杂,就不详细展开了。说几个结论:

  • 相对速度误差与相对速度是独立的。

  • 相对速度随着距离二次方增长。

  • 时间间隔越大,相对速度越准。

  • 相机视场角小(焦距大),会线性减小误差。

3 后记

一句话总结下ME的方法:用目标在图像中的位置测距,用目标尺寸变化来计算相对速度。 简单明了,实在是高!

正所谓:单目测距不是梦,无数豪杰往前冲。回首漫漫发展路,MobileEye启征程。

但是,上述方法基于两个很强的假设,在实际应用中存在很大问题,主要两点:

  • 相机光轴很难总是和路面平行的,一是安装固定有难度,二是车辆行驶中难免颠簸,相机角度肯定存在起伏。 -

  • 道路不是一直平坦的,很多道路存在坡度,这时候又该怎么办呢?

其实,也有不少论文针对上述问题做出了探索,我将在**单目测距那些事儿(下)**中对相关方法进行梳理,敬请期待!

全面专业的自动驾驶学习资料:链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/756499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vulnhub靶机渗透:DC-7打靶记录

前言 自信自强,来自于不怕苦、不怕难的积淀。宝剑锋从磨砺出,梅花香自苦寒来;任何美好理想,都离不开筚路蓝缕、手胼足胝的艰苦奋斗! 靶场介绍 DC-7是一个初中级的靶场,需要具备以下前置知识:…

0009、ts的类型断言

类型断言(Type Assertion)是 TypeScript 中的一种特性,允许开发者在某些情况下手动指定变量的类型。它的主要使用场景是在开发者明确知道某个值的类型,但 TypeScript 编译器无法自动推断出来时,用来告诉编译器该值的确切类型。 在 TypeScrip…

GPT能复制人类的决策和直觉吗?

GPT-3能否复制人类的决策和直觉? 近年来,像GPT-3这样的神经网络取得了显著进步,生成的文本几乎与人类写作内容难以区分。令人惊讶的是,GPT-3在解决数学问题和编程任务方面也表现出色。这一显著进步引发了一个问题:GPT…

ES6中删除对象属性的方法

ES6中删除对象属性的方法 文章目录 ES6中删除对象属性的方法1. delete方法删除(单个)1. 删除方法12. 删除方法2 2. Reflect.deleteProperty删除(单个)3. 解构赋值删除(批量) 1. delete方法删除(单个) delete 用于删除对象的某个属性,如果没有指向这个属性的引用,那它…

计算机缺失msvcp110.dll如何修复,多种修复方法教给你

当电脑系统中msvcp110.dll文件丢失时,可能会对计算机的正常运行产生一系列显著的影响。msvcp110.dll是Microsoft Visual C Redistributable Package的一部分,这个动态链接库文件对于许多基于Windows的应用程序至关重要,尤其是一些使用C编译器…

Java小练--接收用户输入的数字,判断是否为质数;输出1-100内的所有质数

首先要先了解质数的概念: 一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,也称为素数 (规定:1既不是质数,也不是余数) 使用两个方法来解决这个问题: 方法一:暴力迭代法 import java.util.Scan…

jenkins 连接harbor 推送镜像

x509: certificate relies on legacy Common Name field, use SANs instead docker 登录harbor https 报错

深入了解提示词工程:原理、实践与应用

一、引言 在人工智能领域,尤其是自然语言处理(NLP)任务中,大语言模型如GPT系列已经成为了重要的工具。然而,要充分发挥这些模型的潜力,我们需要掌握一种名为提示词工程(Prompt Engineering&…

什么是CPQ?CPQ报价管理软件面向制造企业快速报价解决方案

什么是CPQ? CPQ生产配置报价系统是面向生产加工企业,为企业市场部门提供快速报价的辅助系统,和配置报价系统不同的是生产报价系统成本的组成并不是标准的产品成本,其成本可能包含原材料成本、原材料损耗、制造成本、包装成本、运…

YOLOv9改进策略:卷积魔改 | AKConv(可改变核卷积),即插即用的卷积,效果秒杀DSConv | 2023年11月最新发表

💡💡💡本文改进内容: YOLOv9如何魔改卷积进一步提升检测精度?AKConv 通过不规则卷积运算完成高效特征提取的过程,为卷积采样形状带来更多探索选择。 AKConv可以作为即插即用的卷积运算来替代卷积运算来提高…

【单点知识】基于实例讲解PyTorch中的ImageFolder类

文章目录 0. 前言1. ImageFolder功能2 基本使用方法及参数解析2.1 基本调用方式2.2 构造参数说明2.3 属性2.4 方法 3. PyTorch实例说明3.1 实例数据集3.2 实例说明 0. 前言 按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的…

word excel ppt转pdf

1.excel转pdf package pers.wwz.study;import com.aspose.cells.PdfSaveOptions; import com.aspose.cells.Workbook;public class ExcelToPdf {public static void main(String[] args) throws Exception {// 加载Excel文件Workbook workbook new Workbook("D:\\tmp\\…

Git tag总结

文章目录 Git 标签标签(Tag)是什么创建标签轻量标签(Lightweight Tag)附注标签(Annotated Tag) 查看标签切换到标签基于标签创建新分支直接切换到标签 切换到标签的注意事项 Git 标签 标签(Ta…

市场复盘总结 20240319

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率中 17% 最常用的…

小程序开发平台哪个比较好?

当我们谈论小程序时,我们往往会联想到微信、支付宝、百度等大厂的生态。但你是否想过,除了这些知名平台,还有哪些优秀的小程序开发平台呢?在这篇文章中,我们将一探究竟。 小程序开发平台的优劣,通常取决于…

Unity发布webgl设置占满浏览器运行

Unity发布webgl设置占满浏览器运行 Unity发布webgl的时候index.html的模板文件 模板文件路径,根据自己的需求修改。 C:\Program Files\Unity\Hub\Editor\2021.1.18f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\WebGLTemplates\Default再桌面新建一个t…

Transformer的前世今生 day04(ELMO

ELMO 前情回顾 NNLM模型:主要任务是在预测下一个词,副产品是词向量Word2Vec模型:主要任务是生成词向量 CBOW:训练目标是根据上下文预测目标词Skip-gram:训练目标是根据目标词预测上下文词 ELMO模型的流程 针对Wor…

AcWing 3498. 日期差值(每日一题)

题目链接:3498. 日期差值 - AcWing题库 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。 输入格式 输入包含多组测试数据。 每组数据占两行,分别表示两个日期,形式为 YYYYMM…

项目投标文件两大必备检索工具

项目投标文件两大必备检索工具: 1.anytxt 文件内容检索工具【AnyTXT Searcher】 这款软件也是一款搜索工具,但是它与Everything不同的是,Everything是基于文件名搜索相关文件,而AnyTXT是基于文件内容搜索相关文件,两…