Apollo自动驾驶入门课程第④讲 — 感知(上)

目录

1. 感知的概述

2. 计算机视觉

3. 摄像头图像

4. LiDAR图像

5. 机器学习

6. 神经网络

7. 反向滤波法


本文转自微信公众号:Apollo开发者社区 原创: 阿波君 Apollo开发者社区 8月23日

上一篇文章中,我们发布了无人驾驶技术的 定位篇(点击阅读)。很多开发者结合定位篇与Apollo平台的视频,对定位系统已经有了自己的见解,提出了有趣的问题。也希望更多的开发者能够参与到Apollo的平台中去,在学习交流的同时丰富这个平台。

本周我们将介绍感知,了解车辆如何利用感知元件感知周围环境,了解不同的感知任务,例如分类、检测和分割,并学习对感知而言至关重要的卷积神经网络。

在开车时,我们用眼睛来判断速度、车道位置、转弯位置。在无人驾驶中,情况类似,只不过需要使用静态摄像头和其他传感器来感知环境,使用大量计算机视觉技术。


视频链接为:Apollo自动驾驶入门课程Sebastran感知_腾讯视频

1. 感知的概述

我们人类天生就配备多种传感器,眼睛可以看到周围的环境,耳朵可以用来听,鼻子可以用来嗅,也有触觉传感器,甚至还有内部传感器,可以测量肌肉的偏转。通过这些传感器,我们可以感知到我们周围的环境。我们的大脑每分每秒都在进行数据处理,大脑的绝大部分都是用于感知。

现在,无人驾驶车辆也在做这些事情,只不过他们用的不是眼睛而是摄像头。但是他们也有雷达和激光雷达,它们可以帮忙测量原始距离,可以得到与周围环境物体的距离。对于每个无人驾驶汽车,它的核心竞争力之一就是利用海量的传感器数据,来模仿人脑理解这个世界。谈论传感器时也会涉及到神经网络、深度学习、人工智能。

2. 计算机视觉

作为人类,我们可以自动识别图像中的物体,甚至可以推断这些物体之间的关系。但是对于计算机而言图像只是红、绿、蓝色值的集合。无人驾驶车有四个感知世界的核心任务:检测——指找出物体在环境中的位置;分类——指明确对象是什么;跟踪——指随时间的推移观察移动物体;语义分割——将图像中的每个像素与语义类别进行匹配如道路、汽车、天空。

将分类作为研究计算机视觉一般数据流程的例子。图像分类器是一种将图像作为输入,并输出标识该图像的标签的算法,例如交通标志分类器查看停车标志并识别它停车标志、让路标志、限速标志还是其它标志。分类器甚至可以识别行为,比如一个人是在走路还是在跑步。

分类器有很多种,但它们都包含一系列类似的步骤。首先计算机接收类似摄像头等成像设备的输入。然后通过预处理发送每个图像,预处理对每个图像进行了标准化处理,常见的预处理包括调整图像大小、旋转图像、将图像从一个色彩空间转换为另一个色彩空间,比如从全彩到灰度,预处理可帮助我们的模型更快地处理和学习图像。接下来,提取特征,特征有助于计算机理解图像,例如将汽车与自行车区分开来的一些特征,汽车通常具有更大的形状并且有四个轮子而不是两个,形状和车轮将是汽车的显著特征。最后这些特征被输入到分类模型中。此步骤使用特征来选择图像类别,例如分类器可以确定图像是否包含汽车、自行车、行人这样的对象。

为了完成这些视觉任务,需要建立模型,模型是帮助计算机了解图像内容的工具。

3. 摄像头图像

不论计算机在执行什么识别任务,通常在开始时将摄像头图像作为输入。

摄像头图像是最常见的计算机视觉数据,以这张汽车照片为例,让我们看看计算机如何认为这实际上是一辆汽车的图像。从计算机的角度来看,图像只是一个二维网格被称为矩阵,矩阵中的每个单元格都包含一个值,数字图像全部由像素组成,其中包含非常小的颜色或强度单位,我们可以对其中的数字做出非常多的处理。通常这些数字网格是许多图像处理技术的基础,多数颜色和形状转换都只是通过对图像进行数学运算以及逐一像素进行更改来完成。

以上是我们讲一个图像分解为二维灰度像素值网络,彩色照片是相似的,但是更复杂一些。

彩色图像被构建为值的三维立方体,每个立方体都有高度、宽度和深度,深度为颜色通道数量。大多数彩色图像以三种颜色组合表示红色、绿色。蓝色,称为RGB图像。对于RGB图像来说,深度值是3,因此可用立方体来表示。

4. LiDAR图像

感知扩展到传感器,而不仅仅是摄像头。激光雷达传感器创建环境的点云表征,提供了难以通过摄像头图像获得的信息如距离和高度。激光雷达传感器使用光线尤其是激光来测量与环境中反射该光线的物体之间的距离,激光雷达发射激光脉冲并测量物体将每个激光脉冲反射回传感器所花费的时间。反射需要的时间越长,物体离传感器越远,激光雷达正是通过这种方式来构建世界的视觉表征。

激光雷达通过发射光脉冲来检测汽车周围的环境,蓝色点表示反射激光脉冲的物体,中间的黑色区域是无人驾驶车本身占据的空间。由于激光雷达测量激光反射束,它收集的数据形成一团云或“点云”,点云中的每个点代表反射回传感器的激光束,可以告诉我们关于物体的许多信息例如其形状和表面纹理。这些数据提供了足够的对象检测、跟踪、分类信息。正如我们所看,在点云上执行的检测和分类结果为红点为行人,绿点表示其他汽车。

激光雷达数据提供了用于构建世界视觉表征的足够空间信息,计算机视觉技术不仅可以使用摄像头图像进行对象分类,还可以使用点云和其他类型的空间相关数据进行对象分类。

5. 机器学习

机器学习是使用特殊算法来训练计算机从数据中学习的计算机科学领域。通常,这种学习结果存放在一种被称为“模型”的数据结构中,有很多种模型,事实上“模型”只是一种可用于理解和预测世界的数据结构。机械学习诞生于20世界60年代,但随着计算机的改进,在过去的20年终才真正的越来越受到欢迎。

机器学习涉及使用数据和相关的真值标记来进行模型训练,例如可能会显示车辆和行人的计算机图像以及告诉计算机哪个是哪个的标签。我们让计算机学习如何最好地区分两类图像,这类机器学习也成为监督式学习,因为模型利用了人类创造的真值标记。

可以假想一个类似的学习过程,但这次使用的是没有真值标记的车辆与行人图像,让计算机自行决定哪些图像相似、哪些图像不同,这被称为无监督学习。不提供真值标记,而是通过分析输入的数据,计算机凭借自行学习找到区别。

半监督式学习是将监督学习和无监督学习的特点结合在一起,该方法使用少量的标记数据和大量的未标记数据来训练模型。

强化学习是另一种机器学习,强化学习涉及允许模型通过尝试许多不同的方法来解决问题,然后衡量哪种方法最为成功,计算机将尝试许多不同的解决方案,最终使其许多方法与环境相适应。

例如在模拟器中,强化学习智能体可训练汽车进行右转,智能体将在初试位置发动车辆,然后以多种不同的方向和速度进行实验性驾驶,如果车辆实际完成了右转,智能体会提高奖励即得分。

起初车辆可能无法找到执行转弯的方法,然而就像人类那样,车辆最终会从一些成功右转经验中学习,最终学会如何完成任务。

6. 神经网络

人工神经网络用于无人驾驶,受到构成人类神经系统的生物神经元启发,生物神经元通过相互连接构成了神经元网络或神经网络,通过类似的方式将人工神经元层连接起来以创建用于机器学习的人工神经网络。

人工神经网络是通过数据来学习复杂模式的工具,神经网络由大量的神经元组成,人工神经元负责传递和处理信息,也可以对这些神经元进行训练。可以将这些图像识别为车辆,无论它们是黑是白、或大或小,你甚至可能不知道自己如何知道它们是车辆,也许是某些特征触发了你的反应,如车轮、车灯、车窗。人工神经网络具有类似的运作方式。人工神经网络通过密集训练,计算机可以辨别汽车、行人、交通信号灯、电线杆。它们学习了用于执行任务的模型,只是我们可能很难直观地理解该数学模型。

当看到该图像时,你的大脑如何工作?你的大脑可能会将图像分为几部分然后识别特征如车轮、车窗、颜色,然后大脑将使用这些特征对图像进行检测和分类。

例如在确定图像是否为车辆时,大脑可能不会认为颜色是关键特征。因为汽车有多种颜色,所以大脑会将更多权重放在其他特征上并降低颜色的重要性。

同样,神经网络也会从图像中提取许多特征,但这些特征可能是我们人类无法描述或甚至无法理解的特征。但我们最终并不需要理解,计算机将调整这些特征的权重,以完成神经网络的最终任务。

7. 反向滤波法

学习有时称为训练,由三步循环组成——前瞻、误差测定、反向传播

首先随机分配初试权重即人工神经元的值,通过神经网络来馈送每个图像产生输出值,这被称为前馈。

继续开车可以发现,有些点右边只有一棵树,也可以排除。

下一步为误差测定,误差是真是标记与前馈过程所产生输出之间的偏差。

最后一步是反向传播,通过神经网络反向发送误差,此过程类似前馈过程,只是以相反方向进行。

每个人工神经元都对其值进行微调,这是基于通过神经网络后向传播的误差,可生成更准确的网络。一个训练周期:

包括前馈、误差测定、反向传播还远远不够。为了训练网络,通常需要数千个这样的周期,最终结果应该是模型能够根据新数据做出准确预测。

更多详细课程内容,大家可以登陆官网继续学习!

也可以添加社区小助手(Apollodev)为好友,回复“课程学习”进群与其他开发者共同交流学习。  

自课程上线以来,浏览量已超10万,已帮助全球97个国家约 7000 名学员入门自动驾驶与 Apollo 开源平台,其中37%为海外学员,本门课程已成为优达学城 (Udacity) 近期获得关注度最高的免费课程之一。

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

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

相关文章

网络编程懒人入门(二):快速理解网络通信协议(下篇)

转自即时通讯网:http://www.52im.net/ 原作者:阮一峰(ruanyifeng.com),本文由即时通讯网重新整理发布,感谢原作者的无私分享。 1、前言 本文上篇《网络编程懒人入门(一):快速理解网络通信协议&#xff0…

为什么说逻辑回归LR是线性分类器?

问题描述:为什么说逻辑回归LR是非常典型的线性分类器? 首先,我们要弄明白区分线性与非线性分类器的标准是什么?是决策边界(Decision Boundary) 以二分类(LR可以用于多分类)为例进行…

朴素贝叶斯算法注意事项(有待完善)

1.朴素贝叶斯算法的优缺点总结: 优点: 朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率;分类速度快,准确度高;对缺失数据不太敏感,算法简单,常用于文本分类(如新闻…

网络编程懒人入门(三):快速理解TCP协议一篇就够

转自即时通讯网:http://www.52im.net/ 原作者:阮一峰(ruanyifeng.com),本文由即时通讯网重新整理发布,感谢原作者的无私分享。 1、前言 本系列文章的前两篇《网络编程懒人入门(一):快速理解网络通信协议…

分类问题的模型评估指标总结

在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四中不同的组合,构成混淆矩阵(可适用于多分类),通常有这几种主要模型评估指标:精确率(查的准)、召回率(查的全对正样本的区分能力)、F1值(反映模型…

nltk安装punkt等语料库时报SSL错误完美解决方案及离线安装方法

nltk是NLP领域中一个比较通用的国际分词工具,但是使用时往往依赖语料库数据包,需要安装到本地,以下介绍在线安装和离线安装两种方式: (ps:对NLP感兴趣的朋友可以相互学习,我的微信号&#xff1…

7. Deep Learning From Scratch

Intro 这是深度学习第7课。 到目前为止,您构建的模型依赖于预先训练的模型。 但它们不是许多用例的理想解决方案。 在本课程中,您将学习如何构建全新的模型。 Lesson [1] from IPython.display import YouTubeVideo YouTubeVideo(YbNE3zhtsoo, widt…

最实用的Git命令总结:新建本地分支、远程分支、关联和取消关联分支、清除本地和远程分支、合并分支、版本还原、tag命令、中文乱码解决方案、如何fork一个分支和修改后发起合并请求

1.常用命令git、tag整理 1、新建分支本地分支 git branch <branch-name>远程分支 git push origin <branch-name>:<new-branch-name> 2、删除分支本地分支 git branch -d <branch-name> 或 git branch -D <branch-name>远程分支 git push o…

Java基础部分快速复习(以前复习的时候放在自己的新浪博客上)

工作后Java基本没有用到&#xff0c;有时候自己也会把基础过一遍&#xff0c;下面的链接是以前重温的时候整理的Java基础最核心部分的知识点和代码示例放在自己的新浪博客上&#xff0c;如果以后有需要&#xff0c;直接从这里进入&#xff0c;可以快速复习&#xff0c;节省时间…

SQL基础用法总结(以前复习的时候放在自己的新浪博客上)

工作后主要做移动端和前端这一块&#xff0c;后端的知识都是靠自己学习积累的&#xff0c;下面的链接是以前重温的时候整理的SQL基础最核心部分的知识点和代码示例放在自己的新浪博客上&#xff0c;如果以后有需要&#xff0c;直接从这里进入&#xff0c;可以快速复习&#xff…

网络编程懒人入门(四):快速理解TCP和UDP的差异

转自即时通讯网&#xff1a;http://www.52im.net/ 原作者&#xff1a;MeloDev&#xff0c;本文由即时通讯网重新修订发布&#xff0c;感谢原作者的无私分享。 1、前言 对于即时通讯开发者新手来说&#xff0c;在开始着手编写IM或消息推送系统的代码前&#xff0c;最头疼的问…

Apollo自动驾驶入门课程第⑤讲 — 感知(下)

目录 1. 卷积神经网络 2. 检测与分类 3. 跟踪 4. 分割 5. Apollo感知 6. 传感器数据比较 7. 感知融合策略 本文转自微信公众号&#xff1a;Apollo开发者社区 原创&#xff1a; 阿波君 Apollo开发者社区 8月29日 上一篇文章中&#xff0c;我们发布了无人驾驶技术的 感知篇…

TextRank算法原理和提取关键词的主要过程详解 计算句子相似度 计算句子重要性公式

1、TextRank计算句子相似度和句子重要性的公式 2、TextRank算法提取关键词的过程 3、TextRank建立关键词无向图

Apollo自动驾驶入门课程第⑥讲 — 预测

目录 1. 简介 2. 不同的预测方式 3. 基于车道序列的预测 4. 障碍物状态 5. 预测目标车道 6. 递归神经网络 7. 递归神经网络在目标车道预测的应用 8. 轨迹生成 本文转自微信公众号&#xff1a;Apollo开发者社区 原创&#xff1a;涛涛CV Apollo开发者社区 9月6日 上一篇文…

使用PDF.js实现前端和手机端网页预览PDF文件(可定制,支持本地文件、Base64编码和远程URL跨域方式)

1.插件下载地址&#xff1a;https://mozilla.github.io/pdf.js/ 下载后解压pdfjs-1.10.88-dist.zip文件后得到&#xff1a; 2.把pdfjs-1.10.88-dist放到项目静态资源中&#xff0c;在自己的页面中通过iframe链接到pdfjs-1.10.88-dist/web/viewer.html文件中。 3.访问自己的页…

移动互联网浩荡十年 有的升腾,有的陨落

原创&#xff1a; 颜西龙 猎云网 &#xff08;ilieyun&#xff09;1周前 中国移动互联网的十年&#xff0c;是波澜壮阔、荡气回肠的十年。本文回溯了这段历史&#xff0c;在这十年间里&#xff0c;有的企业升腾&#xff0c;有的企业陨落。 2011年8月16日&#xff0c;北京798艺术…

原生JS动态计算输入框文本内容的宽度,当内容宽度超过输入框的宽度时可控

需求场景&#xff1a;左边输入框输入内容&#xff0c;右边输入框用placeholder展示&#xff0c;当placeholder的内容宽度超过右边输入框的宽度时&#xff0c;placeholder强行替换为“请选择” 注意事项&#xff1a;1、左右输入框的大小、样式都无关&#xff1b; 2、实际业务中…

Apollo自动驾驶入门课程第⑦讲 — 规划(上)

目录 1. 规划简介 2. 将地图转为图形 3. 路径查找算法&#xff1a;A* 4. 轨迹生成 5. Fernet坐标系 本文转自微信公众号&#xff1a;Apollo开发者社区 原创&#xff1a; 阿波君 Apollo开发者社区 9月13日 上周我们发布了无人驾驶技术的 预测篇&#xff0c;简要介绍了预测的…

JS正则表达式常见场景下的用法总结

&#xff08;一&#xff09;前置知识总结&#xff1a; 1. 正则表达式 /xxxx/[标识] 其中的标识含义 •g &#xff08;全文查找&#xff09; •i &#xff08;忽略大小写&#xff09; •m &#xff08;多行查找&#xff09; 2. 正则表达式创建的两种方式&#xff08;等价&#…

Apollo自动驾驶入门课程第⑧讲 — 规划(下)

目录 1. 路径-速度解耦规划 2. 路径生成与选择 3. ST图 4. 速度规划 5. 优化 6. 路径-速度规划的轨迹生成 7. Lattice规划 8. ST轨迹的终止状态 9. SL轨迹的终止状态 10. Lattice规划的轨迹生成 本文转自微信公众号&#xff1a;Apollo开发者社区 原创&#xff1a; 阿…