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

摄像头模组利用透镜成像的原理,光线透过相机镜头后,被感光元器件捕获,通过感光芯片及相关电路来记录和传输图像信号的,如图1所示。
二、分类
(一)按摄像头的个数,分为单目摄像头、双目摄像头和多目摄像头。
1.单目摄像头
由单个相机组成,结构简单,成本低、便于标定和识别,但无法测量准确的距离。
2.双目摄像头
双目摄像头由两个摄像头组成,由于两个摄像头之间的基线距离已知,可以估算出空间距离,但配置与标定复杂,计算量相对单目相机大,通常需要GPU/FPGA加速。
3.多目摄像头
三个或以上摄像头,不同焦距摄像头的集合(解决频繁变焦,不同距离识别清晰度)。
(二) 按照摄像头的焦距,分为长焦摄像头和短焦摄像头。
1. 长焦摄像头
长焦摄像头看的距离远,在拍摄远处的景象的时候更加清晰。在自动驾驶车中,长焦摄像头用于感知远处的交通状况、红绿灯等。
2.短焦摄像头
短焦摄像头主要用于感知近处的物体,视野范围比长焦宽。障碍物识别、车道线检测和场景分割等多个任务都需要用到短焦摄像头,往往车上会集成多个短焦摄像头,覆盖整个车的视野范围。
(三)按照类型划分,除了最常见的摄像头之外,还有事件摄像头、全景摄像头、深度摄像头和红外摄像头等新型相机。
1. 事件摄像头(Event Camera)

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

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

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

如图5所示,红外摄像头通过热成像原理对行人进行检测,目前在自动驾驶中还没有大规模应用。
(三) 参数指标
摄像头主要有以下5个参数指标。
1.像素:
摄像头像素越高,分辨率也越高,图像也就越清晰。
2.焦距:
焦距足够大,在拍摄比较远的物体时才足够清晰。
3.视场角:
视场角决定了摄像头能够看到的视野范围,广角的镜头所拍摄的视野范围更大。
4.帧率:
帧率越高,表示单位时间内拍摄的照片越多,拍摄速度越快。
5.信噪比:
信噪比越高表明产生的杂波信号越少,图像信号质量越好,单位为DB。
(四)应用

摄像头的成本低、成像像素高、刷新频率快,因此被大量应用于智能车。摄像头可以获取颜色信息,可以用于红绿灯检测、交通标志识别、场景分割等。相比于激光雷达或毫米波雷达,摄像头可以获取更远距离的信息,更早的感知环境状况,因此摄像头常应用于智能驾驶的环境感知任务中。为了获取足够的视野自动驾驶车一般会配备多个摄像头,为保证多个摄像头的拍摄时间一致,摄像头有一个触发器(Trigger),用于控制信号同时触发多个摄像头,如图7为特斯拉自动驾驶方案。
摄像头作为被动型感光设备,对光照的变化十分敏感。在强光、黑夜、雨雪、大雾等能见度低或在快速移动的情况下,获取的画质质量大幅降低。
相关文章:
2.1.1 摄像头
摄像头 更多内容,请关注: github:https://github.com/gotonote/Autopilot-Notes.git 摄像头是目前自动驾驶车中应用和研究最广泛的传感器,其采集图像的过程最接近人类视觉系统。基于图像的物体检测和识别技术已经相当成熟&#…...
linux安装mysql8且初始化表名忽略大小写
mysql8下载地址 MySQL8.0安装步骤 1、把安装包上传到linux系统,解压、重命名并移动到/usr/local/目录: cd ~ tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz mv mysql-8.0.32-linux-glibc2.12-x86_64/ mysql80/ mv mysql80/ /usr/local/2、在M…...
Java-长字符串加密
引言: 在数据安全领域,加密技术是保护信息不被未授权访问的重要手段。特别是在处理长字符串时,如何保证加密后的数据既安全又高效,是一个值得探讨的话题。本文将介绍几种常见的加密算法,并展示如何在Java中实现这些算法…...
使用pytest单元测试框架执行单元测试
Pytest 是一个功能强大且灵活的 Python 单元测试框架,它使编写、组织和运行测试变得更加简单。以下是 Pytest 的一些主要特点和优点: 简单易用:Pytest 提供了简洁而直观的语法,使编写测试用例变得非常容易。它支持使用 assert 语…...
Flutter 中 DraggableScrollableSheet 的属性介绍与使用
在 Flutter 中,DraggableScrollableSheet 是一个非常有用的小部件,它允许用户通过手势来拖动一个可滚动的区域,通常被用作底部弹出式面板或者随手势拖动的控件。本文将介绍 DraggableScrollableSheet 的属性以及如何在 Flutter 中使用它。 D…...
分库分表面试必背
一,背景 随着互联网的普及,使用人数和场景爆炸式增长,现在随便一个应用系统都可能达到数百万千万甚至更大数量级的数据。大量的数据带来了新的挑战,怎么快速完成增删改查的业务,是应用服务开发者最头痛的问题。面对这个…...
14个常见的Java课程设计/毕业设计合集(源码+文档)
从网上整理收集了14个常见的java系统设计源码,可以用于课程作业或者毕业设计。 1.基于java的家政预约网站系统 平台采用B/S结构,后端采用主流的Springboot框架进行开发,前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 …...
如何用 docker 部署程序?
如何用 docker 部署程序?这个问题有点笼统。 如果是MySQL、Redis这些,只需要拉取镜像,然后设置必要的配置,最终创建并运行实例即可。 如果你的应用是一个Java应用程序,使用Docker来部署它会涉及到Java特有的一些考虑…...
5G固定无线接入(FWA)
固定无线接入(FWA) 固定无线接入(Fixed Wireless Access)是使用两个固定点之间的无线电链路提供无线宽带的过程。换句话说,固定无线是一种为家庭或企业提供无线互联网接入的方式,无需铺设光纤和电缆来提供最…...
Unity ScreenPointToRay 获取到的坐标不准确
👾奇奇怪怪的 🥙问题描述🥪解决方案🍿验证代码 🥙问题描述 使用:Camera.main.ScreenPointToRay 将鼠标坐标转换成射线,然后通过:Physics.Raycast 获取到射线碰撞到的坐标࿰…...
AJAXJSON入门篇
AJAX&JSON 概念:AJAX(Asynchronous JavaScript And XML):异步的JavaScript和XML AJAX作用: 与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据 使用了AJAX和服务器进行通信,就可以使用H…...
代码随想录算法训练营29期|day54 任务以及具体安排
第九章 动态规划part11 123.买卖股票的最佳时机III // 版本一 class Solution {public int maxProfit(int[] prices) {int len prices.length;// 边界判断, 题目中 length > 1, 所以可省去if (prices.length 0) return 0;/** 定义 5 种状态:* 0: 没有操作, 1: 第一次买入…...
文件操作相关工具类
目录 1. 文件上传工具类 -- FileUploadUtils 2. 文件处理工具类 -- FileUtils 3. 媒体类型工具类 -- MimeTypeUtils 1. 文件上传工具类 -- FileUploadUtils /*** 文件上传工具类**/ public class FileUploadUtils {private static final Logger log LoggerFactory.ge…...
Spring源码:手写SpringIOC
文章目录 一、分析二、实现1、版本1:实现Bean注入IOC容器,并从容器中获取1)定义BeanDefinition2)定义BeanDefinition实现类3)定义BeanDefinitionRegistry4)定义Beanfactory5)定义默认Beanfactor…...
【软件设计师】程序猿需掌握的技能——数据流图
作为一个程序员,不仅要具备高水平的程序编码能力,还要是熟练掌握软件设计的方法和技术,具有一定的软件设计能力,一般包括软件分析设计图(常见的有数据流图,程序流程图,系统流程图,E-…...
17.3.1 像素处理
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 17.3.1 像素处理 C#处理图像,主要使用到Bitmap 类的 GetPixel方法和SetPixel方法。 Bitmap.GetPixel 方法:…...
白话微机:8.解释FPGA以及一些考研面试问题
一. 前言(更新世界观) 在“微机世界”,普通的城市(单片机)里,人又有一个别的名字叫做“数据”,人有0有1;人们也有住房,这些住房在这个世界叫做“存储器”;地上有路,这些路…...
Kubernetes基础(十八)-k8s存储对象Persistent Volume
1 什么是Persistent Volume? 在容器化应用中,Pod的生命周期是短暂的,当Pod终止时,其中的数据通常也会被销毁。为了解决这个问题,Kubernetes引入了Persistent Volume(PV)的概念。PV是集群中的一…...
用linux命令将文本格式文件转换为csv文件
文章目录 前言例: 总结 前言 用到linux命令awk 使用 awk 命令来将文本文件转换为 CSV 格式。假设你有一个以空格或制表符分隔的文本文件,以下是将其转换为 CSV 格式的命令: awk BEGIN { OFS"," } { print $1, $2, $3 } input.txt > outpu…...
C++中的binary_search函数详解
C中的std::binary_search函数详解 在C标准模板库(STL)中,std::binary_search是一个非常有用的函数,它可以在一个已排序的序列中查找一个特定的元素。这个函数的使用非常直观,但是了解其工作原理和一些注意事项可以帮助…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
