传感器融合是什么?及其类型和应用

news2025/1/4 16:47:04

什么是传感器融合?

目前,几乎各行各业都在使用传感器:在汽车、工厂,甚至我们的智能手机中,都有传感器的身影。虽然单个传感器本身就可以提供有用的数据,但如何能同时从多个传感器的输出中提取信息呢?假设整体大于各部分之和,此举将为我们提供一个更好的周遭环境的模型。传感器融合是我们实现这一壮举的过程。

具体而言,传感器融合是合并来自多个传感器的数据以创建目标场景或对象的更准确概念化过程。其背后的理念是,每个传感器都有优缺点;我们的目标是充分利用它们的优势,减少不确定性,以获得所研究环境的精确模型。

有哪些不同类型的传感器?

首先,我们来定义传感器融合过程中使用的各类型传感器。例如,自动驾驶汽车会使用许多不同的传感器在环境中导航。以下是几种最常见的传感器技术:

相机

相机捕捉场景的图像,然后利用识别场景中的对象。它们的缺点是,图像很容易被夜幕、恶劣天气和灰尘等遮盖。

雷达

雷达传感器通过发射无线电波来探测目标,并精确估计其速度。它使用一个称为径向速度的函数来测量波频变化,以确定目标是朝着它移动还是远离它。不同于相机,雷达无法用于指示它所感知到的目标。

激光雷达

激光雷达(LiDAR)是光探测和测距的缩写,它使用红外传感器来测量目标对象和传感器之间的距离。传感器发出电波,并测量电波从目标反射回来所需的时间。然后使用这些数据创建环境的3D点云。激光雷达的缺点是射程不长,没有相机或雷达的性价比高。

超声波传感器

超声波传感器可以预估数米内目标对象的位置。

里程传感器

如果测量车轮速度,里程传感器可以帮助预测车辆相对于已知起点的位置和方向。

传感器融合的三种类型

通常,传感器融合有三种不同的方法或类型。

一、互补性融合

这种类型的传感器融合由彼此独立的传感器组成,但当它们的输出组合在一起时,就可以创建更完整的场景图像。例如,在一个房间周围放置几个摄像头,分别聚焦房间的不同位置,可以共同提供房间外观的图片。这种融合类型的优点是,它的准确率通常最高。

二、竞争/冗余性融合

以竞争性排列建立传感器融合时,传感器提供对同一目标对象的独立测量。在这一类别中,有两种配置:一种是来自多个独立传感器的数据融合,另一种是来自不同实例的单个传感器的数据融合。在三种传感器融合类型中,这种类型的完整性最高。

三、协作性融合

第三种传感器融合称为协作性融合。它由两个独立的传感器提供数据,将这些数据结合,可以提供单个传感器无法提供的信息。例如,在立体视觉的情况下,两个视角略有不同的相机提供的数据可以共同形成目标对象的三维图像。在三种传感器融合类型中,这种类型最难使用,因为单个传感器的误差特别容易影响最终结果。但它的优势在于,它能够提供场景或目标对象的独特模型。

应该注意的是,为获得尽可能准确的结果,传感器融合的许多应用都不只使用三种类型中的一种。传感器融合中还使用三种通信方案,包括:

  • 去中心化:传感器节点之间不发生通信。
  • 中心化:传感器与中央节点通信。
  • 分布式:传感器节点以设定的间隔进行通信。

通信方案的使用取决于项目的使用场景和需求。

传感器融合算法

为了在传感器融合应用中合并数据,数据科学家需要使用一种算法。卡尔曼滤波也许是传感器融合中最流行的算法。不过,一般而言,数据科学家探讨的传感器融合有三个级别。

传感器融合的三个级别

传感器的输出需要后处理,其级别会有所不同。选择的级别会影响数据存储需求以及模型的准确率。以下简要说明三个级别:

  • 低级:在低级,传感器融合采用传感器的原始输出,以确保我们不会在转换过程中无意地将噪声引入数据中。这种方法的缺点是需要处理相当多的数据。
  • 中级:中级传感器融合不使用原始数据,而是使用已有单个传感器或单独处理器标注过的数据。它利用对目标对象位置的假设,加权各种解释后得出一种答案。
  • 高级:高级传感器融合与中级类似,它融合加权假设,获得关于目标对象位置的答案。但它也使用这种方法来识别对象的轨迹。

卡尔曼滤波算法

卡尔曼滤波早在1960年就已问世,我们现在的智能手机和卫星上都有应用,通常用于导航目的。它旨在估计动态系统的当前状态,但也可用来估计过去(称为滤波)和未来(称为预测)。在解析嘈杂的数据时,它特别有用;例如,自动驾驶汽车上的传感器有时会捕获不完整或嘈杂的数据,然后可以通过卡尔曼滤波算法进行校正。

卡尔曼滤波是贝叶斯滤波的一种形式。在贝叶斯滤波中,算法交替进行预测(对当前状态的估计)和更新(对传感器的观测)。本质上,算法将根据更新进行预测和校正,循环执行这两个步骤,直至达到所需精度。

卡尔曼滤波使用基于状态(包括位置和速度)和不确定性的数学建模进行实时预测。它适用于线性函数,但某些传感器输出(如雷达数据)不是线性的。在这种情况下,数据科学家依靠两种方法来线性化模型:

  • 扩展卡尔曼滤波:使用雅可比级数和泰勒级数进行线性化。
  • 无迹卡尔曼滤波:使用更精确的近似值进行线性化。

无论如何,卡尔曼滤波算法是传感器融合最常用的算法方法之一,有助于将多个数据源合并为当前的一个清晰状态。

传感器融合的其他算法

除了卡尔曼滤波器,数据科学家还可以选择将其他算法应用于传感器融合。其中包括:

  • 神经网络:在深度学习中,使用神经网络融合来自多个传感器的图像数据,以便对结果进行分类。
  • 中心极限定理(CLT):大多数情况下使用钟形曲线表示,CLT算法将平均来自多个传感器的数据。
  • 贝叶斯算法:前面我们提到,卡尔曼滤波是贝叶斯滤波的一种,但算法还有其他类型。例如,Dempster-Schafer算法通过不确定性和推理的测量来模拟人类推理。

传感器融合和自动驾驶汽车

传感器融合在自动驾驶汽车领域至关重要。融合算法通过了解车辆的精确位置、移动速度和方向,帮助车辆越过障碍物。换言之,传感器融合能够最大限度地提高自动驾驶车辆的安全性。我们来介绍它的工作原理。

车辆将接收摄像头、雷达和激光雷达传感器的输入,以形成一个周围环境的模型。传感器融合发生在将这些数据合并到一个模型的实践中。之前我们提到这些不同传感器的工作原理及其优缺点。结合它们各自的优势,可以描绘出车辆

环境的高精度图片。然后,导航系统使用这张图片提供的信息决定车辆可以去哪里,以多快的速度行驶。

有时,自动驾驶汽车也会利用从车内提取的数据,即所谓车内外传感器的融合。车辆收集的传感器输入越多,使用传感器融合技术就越复杂。权衡之下,如果操作正确,使用的传感器数据越多,得到的模型通常就越精确。

防止打滑是汽车传感器融合功能的一个示例。利用来自方向盘方向、陀螺仪和加速计的传感器输入组合,传感器融合算法可以确定汽车是否处于打滑中,以及驾驶员希望汽车行驶的方向。在这种情况下,自动驾驶车辆可以自动踩下制动器,以防止进一步打滑。

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

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

相关文章

Bean的四种实例化方式以及BeanFactory和FactoryBean的区别

2023.11.8 Spring为Bean提供了多种实例化方式,通常包括4种方式。 第一种:通过构造方法实例化第二种:通过简单工厂模式实例化第三种:通过factory-bean实例化第四种:通过FactoryBean接口实例化 通过构造方法实例化 创…

MySQL基础操作

注:mysql是大小写不敏感的. 1.数据库基础操作(展示) //1.展示当前数据库 show databases;//2.创建数据库 create database 数据库名;//3.使用数据库 use 数据库名;//4.删除数据库 drop database 数据库名;2.SQL中基本类型 2.1 数值类型(整数和浮点型) 注:decimal和numeric…

cortex-A7核IIC实验--采集温湿度传感器的值

1.IIC总线---同步串行半双工 1)一根数据线SDA--PF15,一根时钟线SCL--PF14 2)传输速率:低速:100K 中速:400K 全速:3.4M 3)外接两个上拉电阻的作用:总线空闲状态时&am…

浅谈顺序表基本操作

🤷‍♀️🤷‍♀️🤷‍♀️ 今天给大家带来的是数据结构——顺序表的实现(增删查改)。 清风的CSDN博客主页 🎉欢迎👍点赞✍评论❤️收藏 😛😛😛希望我的文章能对你有所帮助&#xff…

刷题笔记day14-二叉树01

前序遍历 前序遍历的方式是:根节点、左节点、右节点。 /*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *TreeNode* Right *TreeNode* }*/ import "container/list"func preorderTraversal(root *TreeNode…

如何高效处理IT中的突发事件?

在当今快节奏的商业环境中,IT中的重大事件可能会意外发生,从而影响生产力和客户满意度。无论哪个行业,制定恢复计划并建立ITSM事件管理对于在危机时期确保业务连续性至关重要。 让我们来看一下某航空公司的运营,航空公司的运营很…

Alphago Zero的原理及实现:Mastering the game of Go without human knowledge

近年来强化学习算法广泛应用于游戏对抗上,通用的强化学习模型一般包含了Actor模型和Critic模型,其中Actor模型根据状态生成下一步动作,而Critic模型估计状态的价值,这两个模型通过相互迭代训练(该过程称为Generalized …

YOLOv8-Seg推理详解及部署实现

目录 前言一、YOLOv8-Seg推理(Python)1. YOLOv8-Seg预测2. YOLOv8-Seg预处理3. YOLOv8-Seg后处理4. YOLOv8-Seg推理 二、YOLOv8-Seg推理(C)1. ONNX导出2. YOLOv8-Seg预处理3. YOLOv8-Seg后处理4. YOLOv8推理 三、YOLOv8-Seg部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.…

JavaScript 作用域链(Scope Chain)是什么?有什么作用?

结论先行: 当在函数内部访问一个变量的时候,(JS 引擎)程序会先在当前作用域中查找(是否存在该变量),如果找到了就直接使用。否则就会向上层作用域逐级查找,直到找到全局作用域为止。…

高等数学教材重难点题型总结(一)函数与极限

强化阶段的另一个专题,本专题主要总结高数课本上的经典例题与课后题,尤其一部分加*标的题目,对于冲击高分的同学来说,必须熟练掌握。 (蓝色代表难点,红色代表重点,紫色代表重难点) …

Origin2023绘制双轴

在水文气象研究中,经常是把降水右轴并在顶部。具体操作如下: 1.先绘制径流曲线图 2.再添加一个图层,insert→new layer→Top-X-Right-Y 3.图层设置,添加降水序列,样式为柱状图 4.设置右轴的标注为600到0(保证倒立)&am…

没有接口文档如何进行接口测试(超详细~)

前言 在进行接口测试之前,一般开发会提供接口文档,给出一些接口参数和必要熟悉,便于我们编写接口脚本。但如果没有提供接口开发文档的请求下,我们该如何编写接口测试脚本呢?在编写测试脚本前要做哪些必要的准备呢&…

网络原理---拿捏网络层:IP协议

文章目录 IP协议4位版本4位首部长度、选项8位服务类型(TOS)16位总长度16位标识、3位标志、13位片偏移8位生存时间(TTL)8位协议16位首部校验和32位源IP地址、32位目的IP地址解决IP地址不够用的问题动态分配IP地址NAT机制&#xff0…

好消息,微信消费者投诉工具升级,可以直接回复用户、处理投诉了。。。

大家好,我是小悟 兄弟们,阅读本文之前,建议先阅读【连夜干出来一个自动处理【微信消费者投诉管理系统】,支持多商户】。 为了使工具更好用,也为帮助商户更好地处理消费者投诉,提升用户满意度,…

谷歌提出 AGI 完整路线图:目前 ChatGPT 只处于 AGI 的第一阶段

本心、输入输出、结果 文章目录 谷歌提出 AGI 完整路线图:目前 ChatGPT 只处于 AGI 的第一阶段前言谷歌 DeepMind 发布 AGI 分级框架发展 AGI 必须遵循6个基本原则什么是AGI图灵测试详解六大原则AGI 的五大发展过程阶段原文参考弘扬爱国精神谷歌提出 AGI 完整路线图:目前 Cha…

Fabric区块链浏览器搭建

目录 一、创建区块链浏览器相关目录二、配置docker-compose三、配置区块链浏览器四、启动区块链浏览器 书接这一回 Fabric二进制建链,在建好链之后,将为这条链部署一个区块链浏览器。 Hyperledger Fabric区块链浏览器地址:https://github.co…

计网----数据库(一)

计网----数据库(一) 一.什么是数据库 数据库是”按照数据结构来组织、存储和管理数据的仓库“。是一个长期储存在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 二.数据库的特点 1.规范化的本地存储 2.加密 3.共享 三.数据库的好处…

[动态规划] (十四) 简单多状态 LeetCode LCR 091.粉刷房子

[动态规划] (十四) 简单多状态 LeetCode LCR 091.粉刷房子 文章目录 [动态规划] (十四) 简单多状态 LeetCode LCR 091.粉刷房子题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值 代码实现总结 LCR 091. 粉刷房子 题目解析 (1) 一排房子,共有n个 (2) 染…

【电路笔记】-基尔霍夫电路定律

基尔霍夫电路定律 文章目录 基尔霍夫电路定律1、框架和定义2、基尔霍夫电流定律3、基尔霍夫电压定律4、基尔霍夫定律应用5、基尔霍夫定律的局限性6、总结 在本文中,将介绍最基本、最重要的电路定律之一。 这些法律由德国医生古斯塔夫基尔霍夫 (Gustav Kirchoff) 于 …

java数据结构--双端队列

一.概念 双端队列的意思是可以在头部和尾部添加和删除元素&#xff0c;更一般的单向链表队列比起来更加的灵活&#xff0c;下面我们用双向循环带哨兵链表和数组来分别实现 二.定义接口Dequeue /*** 双端队列*/ public interface Dequeue<E> {//队头添加元素boolean off…