国内外自动驾驶算法原理浅谈

背景

今日来,自动驾驶越来越火,但是很多人依旧对于自动驾驶行业的算法内容不清晰,对于国内外自动驾驶方针和路线的选择不了解。纯视觉方案和雷达探测器方案只是表层的区别,本质上意味着什么依旧不清楚。

本文,将从小白理解出发,浅谈国内外自动驾驶算法的原理和现状。希望可以给广大读者有更好的参考,也希望中国的自动驾驶可以更上一层楼

自动驾驶算法路线选择

现如今,自动驾驶算法主要有两条路径可供选择

  • 端到端的纯视觉神经网络 & 端到端的自动驾驶算法(特斯拉)
  • 端到端的视觉神经网络和雷达探测器数据 & 基于规则优化的路径规划算法(国内一众厂商)

可见,主要区别在于是否使用纯视觉方案和雷达探测器,以及是使用端到端自动驾驶算法还是规则优化的路径规划算法。

课题1:纯视觉方案 雷达探测方案 究竟导致了什么?

纯视觉方案

对于纯视觉方案,就是采用强大的端到端的视觉卷积神经网络来获取当前帧序列的识别结果

优点如下:
  • 成本较低
  • 依赖于大数据训练,可以不断升级迭代,随着数据量的增高、摩尔定律下算力的提高,模型能力将会在后续产生爆炸性的增长
  • 给后续模型的输入较为统一,为后续模型的构建和训练带来便利。

可能读者第一个想到的缺陷就是无法识别距离……很不幸的是,这其实是可以识别距离的,对于人类来说,人类也可以通过双眼识别距离,此乃双目视觉的知识,即对于两个平行摄像头进行采集,图像位置差距越大的物体距离越近,差别越小的物体距离越远……

当然也有相应的缺点如下:

对于大雨等极端天气,会给视觉方案带来干扰,虽然可以通过各种去噪方式进行优化,但是干扰就是干扰,效果必然下降。

所以在大雨天气,各位驾驶特斯拉的车主在自动驾驶的时候,可需要注意距离……

视觉&雷达方案

该方案除了使用视觉方案之外,还使用雷达进行距离检测

优点如下:
  • 对于距离的检测非常精确(暴雨天气依然会有干扰,但是相对于纯视觉方案,干扰较低)
  • 摄像头数量减少,给模型训练减负,使得模型更好拟合……
  • 对技术力要求相对降低

当然相较于纯视觉方案也存在一些缺点

  • 成本较高
  • 无法完全利用大数据和算力优势
  • 多输入格式给后续模型带来一定困难

总而言之,在目前为止,纯视觉方案和视觉&雷达方案都各有优势,但是在未来发展潜力方向,我更倾向于纯视觉方案。

课题二:端到端的自动驾驶算法和基于规则优化的路径规划算法

基于规则优化的路径规划算法

算法原理可以简单理解为定义规则&路径优化。一个简单例子如下:

  • 场景A(前方无车辆,无红绿灯,导航输入为前进) ----> 输出为加油门
  • 场景B(前方无车辆,红绿灯左转红灯,导航输入为左转) ----> 输出为刹车至停车
  • 场景C(前方障碍物,距离30m,当前车速40km/s) ----> 输出为急刹车

……

可以看到,此种算法需要厂商不断加入规则。假设当前有规则500条,此时在实际运行中,会强制归类为一种场景,并执行对应场景的操作。然而可惜的是在实际场景中,车辆运行风云变幻莫测,很容易就出现新的情况未被收录。此时贸然使用对应的策略,就会导致事故发生。要解决也很简单,对于新情况再进行一个规则的设定和导入即可……

对于上诉方案,优点如下:
  • 成型速度快
  • 对于技术力要求不高,但是对于劳动力要求很高(哭死)
  • 完美适配上一个阶段的输入结果
当然也有一些缺点,如下:
  • 无法利用广大的大数据进行赋能
  • 对于规则的把握和设定很重要
  • 需要对实际驾驶场景进行反复不间断的验证测试,否则很容易出现未被考虑到的规则

基于端到端的自动驾驶算法

该算法则是纯视觉方案的算法进阶。该方案并非是第二个神经网络,而是在卷积神经网络的输出层后再加了几层前馈神经网络全连接层,用以输出对应的操作信息。也就是说从视觉到输出操作是一个整体,端到端。

优点:
  • 很好的利用大数据和算力优势!也就是说相当于司机开1km,对应的驾驶数据就会给到云端进行模型训练,模型就会优化1km。
  • 随着时间和算力的增长,效果将会非常恐怖。
  • 不存在没有考虑到场景的情况
  • (一种是实际场景进行训练,一种是工程师思考设定规则再到实际中验证)
缺点:
  • 成型较慢
  • 前期投入较大,数据收集、模型构建、模型训练

总而言之,对于自动驾驶算法的部分,我更倾向于端到端的模型。

总结

国内厂商选择的方式成型快,但上限低。

端到端的方式成型较慢,但是一旦预训练完成,将会疯狂迭代成长。

但是其实……勤能补拙,不断加规则,总有一天也能应付99%的情况

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

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

相关文章

Java语言程序设计基础篇_编程练习题**15.19 (游戏:手眼协调)

**15.19 (游戏:手眼协调) 请编写一个程序,显示一个半径为10像素的实心圆,该圆放置在面板上的随机位置,并填充随机的顔色,如图15-29b所示。单击这个圆时,它会消失,然后在另一个随机的位置显示新的随机颜色的…

Linux退不出vim编辑模式

目录 第一章、问题分析1.1)报错提示 第二章、解决方式 友情提醒: 先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。 第一章、问题分析 1.1)报错提示 报错如下:使用Linux的vi…

Python task

任务1 实现wordcount: 代码如下: import re def wordcount(text):#全部小写text text.lower()text re.sub(r[^\w\s], , text)#切分words text.split()#计算频率word_count {}for word in words:if word in word_count:word_count[word] 1else:wo…

MPI框架以及PIPE数据流向细节

一、海思MPP内部处理流程图 各模块功能介绍: (1)VI:捕获视频图像,可对其做剪切、缩放、镜像等处理,并输出多路不同分辨率的图像数据. (2)AI:捕获⾳频数据,然后AENC 模块⽀持按多种⾳…

华盈生物-小分子靶点筛选服务:助力药物发现的利器

在药物发现的过程中,确定小分子化合物的靶点是至关重要的一步。华盈生物为科学家们提供了两种高效的小分子靶点筛选方案,助力研究人员精准锁定靶点,加速新药研发进程。 方案一:荧光标记与HuProt人类蛋白质组芯片结合 华盈生物的H…

Java推送xml数据进行http请求

将json转成xml数据进行推送,打印出最终推送xml的数据格式,再调整代码 直接上代码,详情请看代码注释 public void pushReceipt(JSONObject jsonObj) {try {// 创建 XML 文档Document doc createXmlDocument();// 构建 XML 结构Element rootE…

lua 游戏架构 之 游戏 AI (三)ai_attack

这段Lua脚本定义了一个名为 ai_attack 的类,继承自 ai_base 类。 lua 游戏架构 之 游戏 AI (一)ai_base-CSDN博客文章浏览阅读119次。定义了一套接口和属性,可以基于这个基础类派生出具有特定行为的AI组件。例如,可以…

MongoDB教程(十六):MongoDB高级索引

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、全文索…

[二刷] 代码随想录算法训练营第五天| 哈希表理论基础、242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

[KamaCoder] 哈希表理论基础 [KamaCoder] 哈希表理论基础 哈希表(散列表)是一个可以将对象转换成关键码, 通过关键码获取到对应值的数据结构. 常见的实现方式为数组. 将对象转换成关键码需要 hash 函数, hash(obj) % tableSize 后就是对应的关键码索引的一种实现. 当我们需要…

开源软件项目:趋势、参与经验与收获

在当今这个全球经济与科技日新月异的时代,开源软件项目(Open Source Software, OSS)正以前所未有的速度蓬勃发展,成为推动技术创新、促进产业合作、加速知识共享的重要力量。随着云计算、大数据、人工智能等技术的兴起&#xff0c…

matlab 绘制参数方程

matlab 绘制参数方程 绘制参数方程绘制结果 绘制参数方程 clc; clear; close all;axis_length 100;% 定义参数t的范围 t 0:0.01:100;% 计算x和y的值 x t.^2 1; y 4*t - t.^2;% 绘制函数图像 plot(x, y); xlabel(x); ylabel(y); title(Plot of the curve xt^21, y4t-t^2…

机器学习之主成分分析案例-红酒主成分分析

🍷 机器学习实战:使用PCA与sklearn红酒数据集进行特征降维与模型预测对比 在机器学习中,主成分分析(PCA)是一种有效的降维技术,它通过寻找数据中的主成分来减少特征数量,同时尽量保留数据的结构…

人工智能全景图2.0 | 一文了解人工智能学科

大家好,这是一节人工智能的科普视频,试图用40多分钟的时间,带你宏观了解人工智能学科,对人工智能有个初步的、全景式的把握,这对你学习具体人工智能细节大有裨益,也是我珍贵的总结。 视频链接(建…

灰色关联分析【系统分析+综合评价】

系统分析: 判断哪个因素影响最大 基本思想:根据序列曲线几何形状的相似程度来判断其练习是否紧密 绘制统计图并进行分析 确定子序列和母序列 对变量进行预处理(去量纲、缩小变量范围) 熟练使用excel与其公式和固定&#xff08…

一套成熟的实验室信息管理系统源码,.Net 检验系统LIS源码,实现从采集、检测、报告、归档的全程跟踪管理

一套成熟的实验室信息管理系统源码。在长期的医疗信息化实践中,我们分析总结了大量客户实例,建立了以病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标的产品开发思路,将医学检验、科室管理和财务统计等检验科室/实验室…

my.ini配置文件中port有什么作用?

my.ini配置文件 [mysqld] port 13306 [client]port13306在my.ini配置文件中,[client] 和 [mysqld] 节中的 port 参数有着不同的作用: [client] port 这个参数定义的是MySQL客户端尝试连接到MySQL服务器时所使用的端口号。 当你在命令行或其他客户端工具…

c++类多态

c类多态 定义:同一操作或者函数,在不同对象上的表现 常见问题: 1、c构造函数可不可以是虚函数,析构函数可不可以是虚函数 无论何种场景,构造函数不可能是虚函数 析构函数可以是虚函数,析构函数为虚函数…

电脑基础知识 | 电脑的基本组成

电脑作为我们日常工作和娱乐的重要工具,扮演着举足轻重的角色。当我们谈论电脑的基本组成时,其实是在探讨电脑硬件和软件两个核心部分。硬件是电脑看得见、摸得着的物理设备,而软件则是运行在这些硬件之上的程序和指令。两者相辅相成&#xf…

【GoLang】Golang 快速入门(第一篇)

目录 1.简介: 2.设计初衷: 3.Go语言的 特点 4.应用领域: 5.用go语言的公司: 6. 开发工具介绍以及环境搭建 1.工具介绍: 2.VSCode的安装: 3.安装过程: 4.Windows下搭建Go开发环境--安装和配置SDK 1.搭建Go开发环境 - 安装…

每日一练,java03

目录 题目wait()、notify()和notifyAll()方法的特性和使用场景wait() 方法notify() 方法notifyAll() 方法使用场景 注意事项 题目 选自牛客网 1.下面关于JAVA的垃圾回收机制,正确的是( ) A.当调用“System.gc()”来强制回收时,系…