2.1.1 摄像头

摄像头

更多内容,请关注:
github:https://github.com/gotonote/Autopilot-Notes.git

摄像头是目前自动驾驶车中应用和研究最广泛的传感器,其采集图像的过程最接近人类视觉系统。基于图像的物体检测和识别技术已经相当成熟,随着近几年深度学习的发展,基于深度学习的视觉感知算法已大量应用于实际生活和生产中,在某些任务上甚至已经超越人类水平。在自动驾驶车上,一般会安装多个摄像头,兼顾不同的视角和任务。

一、原理

图1. 摄像头

摄像头模组利用透镜成像的原理,光线透过相机镜头后,被感光元器件捕获,通过感光芯片及相关电路来记录和传输图像信号的,如图1所示。

二、分类

(一)按摄像头的个数,分为单目摄像头、双目摄像头和多目摄像头。

1.单目摄像头

由单个相机组成,结构简单,成本低、便于标定和识别,但无法测量准确的距离。

2.双目摄像头

双目摄像头由两个摄像头组成,由于两个摄像头之间的基线距离已知,可以估算出空间距离,但配置与标定复杂,计算量相对单目相机大,通常需要GPU/FPGA加速。

3.多目摄像头

三个或以上摄像头,不同焦距摄像头的集合(解决频繁变焦,不同距离识别清晰度)。

(二) 按照摄像头的焦距,分为长焦摄像头和短焦摄像头。

1. 长焦摄像头

长焦摄像头看的距离远,在拍摄远处的景象的时候更加清晰。在自动驾驶车中,长焦摄像头用于感知远处的交通状况、红绿灯等。

2.短焦摄像头

短焦摄像头主要用于感知近处的物体,视野范围比长焦宽。障碍物识别、车道线检测和场景分割等多个任务都需要用到短焦摄像头,往往车上会集成多个短焦摄像头,覆盖整个车的视野范围。

(三)按照类型划分,除了最常见的摄像头之外,还有事件摄像头、全景摄像头、深度摄像头和红外摄像头等新型相机。

1. 事件摄像头(Event Camera)
图2. 事件摄像头

事件摄像头中的每个像素独立响应亮度的变化,通过捕捉亮度变化成像,因此对运动物体捕捉效果非常好,并且不受曝光时间限制,成像速度非常快。普通摄像头在高速运动状态下会出现运动模糊,而事件相机则很好的解决了这个问题。目前事件摄像头的主要限制是像素大小和图像分辨率,例如DAVIS240型号的事件摄像头像素大小只有18.5x18.5µm,分辨率为240x180。如图2所示,分别是普通摄像头和事件摄像头拍摄到晚上有行人在汽车前奔跑的画面,可以看到普通摄像头出现了明显的曝光不足和运动模糊,而事件摄像头则很清晰。

2.全景摄像头(Omnidirectional Camera)
图3. 全景摄像头

全景相机有360°的采集视野,解决了单个相机视野范围不足的问题。全景相机通过2枚或者4枚鱼眼镜头进行拍摄,然后把拍摄好的照片拼接起来,组成全景照片。全景照片技术已经非常成熟,已经应用在VR看房等场景,对导航,定位和地图制图都很有帮助。如图3所示全景照片的边缘畸变非常严重,需要算法处理之后才能正常显示。

3.深度摄像头(Range Camera)
图4. 深度摄像头

深度摄像头能够获取环境的深度和颜色信息,目前有3种深度测距方法:结构光测距、飞行时间法和双目视觉测距。深度相机能够探测的距离非常有限,因此主要还是应用在室内场景的三维重建,如图4所示。

4.红外摄像头(Infrared Camera)
图5. 红外摄像头

如图5所示,红外摄像头通过热成像原理对行人进行检测,目前在自动驾驶中还没有大规模应用。

(三) 参数指标

摄像头主要有以下5个参数指标。

1.像素:

摄像头像素越高,分辨率也越高,图像也就越清晰。

2.焦距:

焦距足够大,在拍摄比较远的物体时才足够清晰。

3.视场角:

视场角决定了摄像头能够看到的视野范围,广角的镜头所拍摄的视野范围更大。

4.帧率:

帧率越高,表示单位时间内拍摄的照片越多,拍摄速度越快。

5.信噪比:

信噪比越高表明产生的杂波信号越少,图像信号质量越好,单位为DB。

(四)应用

图6. 特斯拉自动驾驶方案

摄像头的成本低、成像像素高、刷新频率快,因此被大量应用于智能车。摄像头可以获取颜色信息,可以用于红绿灯检测、交通标志识别、场景分割等。相比于激光雷达或毫米波雷达,摄像头可以获取更远距离的信息,更早的感知环境状况,因此摄像头常应用于智能驾驶的环境感知任务中。为了获取足够的视野自动驾驶车一般会配备多个摄像头,为保证多个摄像头的拍摄时间一致,摄像头有一个触发器(Trigger),用于控制信号同时触发多个摄像头,如图7为特斯拉自动驾驶方案。

摄像头作为被动型感光设备,对光照的变化十分敏感。在强光、黑夜、雨雪、大雾等能见度低或在快速移动的情况下,获取的画质质量大幅降低。

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

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

相关文章

【TC3xx芯片】TC3xx芯片SMU模块详解

目录 前言 正文 1.SMU功能概述 1.1 SMU架构 1.2 SMU_core 1.3 SMU_stdby 2. SMU功能详述 2.1 SMU_core 2.1.1 Reset类型 2.1.2 接口(Interfaces)概述 2.1.2.1 SMU_core到SCU的接口 2.1.2.2 SMU_core到IR的接口 2.1.2.3 SMU_core到Ports(Err…

5.8 BCC工具之mysqld_query.py解读

一,mysqld_query简介 我们首先来看USDT,USDT即Userland Statically Defined Tracing,它是一种静态定义的跟踪技术,用于在用户空间应用程序中添加自定义的跟踪点。USDT利用DTrace(动态跟踪)框架,允许开发者在代码中定义跟踪点,并在需要时启用它们。这样,开发人员可以在…

私立医院患者大数据分析平台建设方案

一、项目目标 1、数据质量,统计数字不仅是真实可信,而且要及时,便于及时判断企业经营情况,同时通过内外部数据的对标,发现企业经营问题。 2、提供指标的监控预警,为决策提供支持,减少杂乱无用报表的生产。 3、提升数据处理效率,提高报表的可用性,让数据标准化,提高…

英文论文(sci)解读复现【NO.18】基于DS-YOLOv8的目标检测方法用于遥感图像

此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文&a…

代码随想录算法训练营第三十四天|860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

860.柠檬水找零 链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 细节: 1. 首先根据题意就是只有5.的成本,然后就开始找钱,找钱也是10.和5. 2. 直接根据10 和 5 进行变量定义,然后去循环…

队列的实现及注意事项

主要介绍以C为主的队列的实现 头文件 #include<queue> 定义 //queue<类型>变量名;//如&#xff1a;queue<int> que; //定义int型的队列 queue<node> que; //定义自定义结构体类型队列 成员函数 //变量名.成员方法&#xff08;成员函数&…

面试经典150题——螺旋矩阵

"The harder the conflict, the more glorious the triumph." - Thomas Paine 1. 题目描述 2. 题目分析与解析 2.1 思路一 看到题目&#xff0c;先仔细观察矩阵&#xff0c;题目要求我们给出顺时针遍历的结果即可&#xff0c;我们根据矩阵可以看出&#xff0c;首…

使用浅层神经网络进行模式识别

目录 定义问题 使用神经网络模式识别进行模式识别 使用命令行函数进行模式识别 选择数据 选择训练算法 创建网络 划分数据 训练网络 测试网络 查看网络 分析结果 后续步骤 除了函数拟合,神经网络也擅长识别模式。 例如,假设要根据细胞大小、肿块厚度、有…

Android 12.0 MTK Camera2 设置默认拍照尺寸功能实现

1.前言 在12.0的系统rom定制化开发中,在mtk平台的camera2关于拍照的一些功能修改中,在一些平台默认需要设置最大的分辨率 来作为拍照的分辨率,所以就需要了解拍照尺寸设置流程,然后来实现相关的功能 如图: 2.MTK Camera2 设置默认拍照尺寸功能实现的核心类 \vendor\me…

【区块链技术开发语言】在ubuntu18 系统环境下命令操作配置以太坊go-ethereum环境

一、概述 项目简介: 以太坊是一个基于区块链技术的分布式平台,用于构建去中心化应用程序(DApps)。go-ethereum 是以太坊官方开发团队维护的 Go 语言实现的以太坊客户端,也被称为 Geth。它提供了一个完整的以太坊节点,用于参与以太坊网络,执行智能合约,进行交易等。 前提…

.NET Core MongoDB数据仓储和工作单元模式实操

前言 上一章节我们主要讲解了MongoDB数据仓储和工作单元模式的封装&#xff0c;这一章节主要讲的是MongoDB用户管理相关操作实操。如&#xff1a;获取所有用户信息、获取用户分页数据、通过用户ID获取对应用户信息、添加用户信息、事务添加用户信息、用户信息修改、用户信息删除…

Matplotlib plt.scatter:从入门到精通,只需一篇文章!

Matplotlib plt.scatter&#xff1a;从入门到精通&#xff0c;只需一篇文章&#xff01;&#x1f680; 利用Matplotlib进行数据可视化示例 &#x1f335;文章目录&#x1f335; 一、plt.scatter入门&#xff1a;轻松迈出第一步 &#x1f463;二、进阶探索&#xff1a;plt.scatt…

Makefile 中的 clean 目标 Target 到底应该怎么写

如下 .PHONY: clean clean: -rm -f *.o a.out test *.so解释&#xff1a; .PHONY&#xff1a;表示伪目标&#xff0c;即&#xff0c;不需要检查依赖的时间戳&#xff0c;每次运行 make clean 都要执行 clean 目标下的命令 负号(-)&#xff1a;表示当这行命令出错时&#xff…

使用Docker Compose搭建Redis主从复制

在Docker中搭建Redis主从架构非常方便&#xff0c;下面是一个示例&#xff0c;演示一下如何使用Docker Compose搭建一个Redis主从复制环境。首先&#xff0c;确保我们本地环境已经安装了Docker和Docker Compose。 我这里使用OrbStack替代了Docker desktop。 1. 创建一个名为r…

机器人能否返回原点

657. 机器人能否返回原点 在二维平面上&#xff0c;有一个机器人从原点 (0, 0) 开始。给出它的移动顺序&#xff0c;判断这个机器人在完成移动后是否在 (0, 0) 处结束。 移动顺序由字符串 moves 表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R&#xff08;右&a…

Ansible file文件模块 设置文件的属性,比如创建文件、创建链接文件、删除文件

目录 语法创建目录创建链接文件删除文件 每个值的属性 语法 创建目录 ansible slave -m file -a path/data/app statedirectory path/data/app # 定义创建路径 statedirectory # 如果目录不存在就创建目录这就是创建目录成功之后的回显 可以看到&#xff0c;已经打印出目录a…

【QT+QGIS跨平台编译】之三十九:【Exiv2+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、Exiv2介绍二、文件下载三、文件分析四、pro文件4.1 exiv2-xmp4.2 exiv2lib_int4.3 exiv2lib五、编译实践一、Exiv2介绍 Exiv2是一个开源的C++库,用于读取、编辑和写入图片和视频文件的元数据。它可以处理各种类型的元数据,包括EXIF、IPTC、XMP等。 元数据是与…

OLMo 以促进语言模型科学之名 —— OLMo Accelerating the Science of Language Models —— 全文翻译

OLMo: Accelerating the Science of Language Models OLMo 以促进语言模型科学之名 摘要 语言模型在自然语言处理的研究中和商业产品中已经变得无所不在。因为其商业上的重要性激增&#xff0c;所以&#xff0c;其中最强大的模型已经闭源&#xff0c;控制在专有接口之中&#…

MQL语言图表事件详解

MQL语言图表事件函数 OnChartEvent&#xff1a;当发生图表事件时触发的函数。可以通过该事件来处理鼠标点击、图表对象、键盘按键等操作。 OnChartEvent函数的参数&#xff1a; long id&#xff1a;事件的ID&#xff0c;用于区分不同的事件类型。long lparam&#xff1a;事件的…

stl~string

迭代器 typedef char* iterator;typedef const char* const_iterator;iterator begin(){return _str;}iterator end(){return _str _size;}const_iterator begin() const//左值const{return _str;}const_iterator end() const{return _str _size;} for&#xff08;auto e : …