如何入门学习自动驾驶感知技术?

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

本文授权转载自公众号:自动驾驶视觉感知工程师

一、前言

目前车企正在经历着前所未有的改革,包括前两天奥迪的裁员计划:将在2025年裁员9500人节省成本,并加速企业进行电动化和智能化转型改革。目前自动驾驶(智能驾驶)是车企转型的目标方向之一,因此也是机械工程、车辆工程等传统专业人员转型的方向之一,本文针对自动驾驶未来就业的岗位,讲述如何入门自动驾驶技术,以及自动驾驶技术都有哪些方向,以便于读者在转型中做好职业规划。

二、自动驾驶未来的岗位

以下从自动驾驶方向未来就业的角度,剖析转型人员都有哪些方向可以选择。

下图为自动驾驶方向的所有岗位,方向总共分为三大类:算法、仿真和测试方向。其中算法类方向占自动驾驶未来就业的大多数岗位(本人坑位:计算机视觉算法工程师)。

以下针对上述所有方向,一一进行介绍。

三、自动驾驶算法类方向

3.1 自动驾驶SLAM算法工程师

首先解释一下这个方向是干什么的,SLAM英文全名叫simultaneous localization and mapping,中文名叫同步定位与建图。可以看一下下面的百度百科的解释。

链接:https://baike.baidu.com/item/SLAM/7661974?fr=aladdin

SLAM算法属于感知—规划—控制中的感知类算法。该算法主要用于自动驾驶车辆的根据点云数据对车辆周围环境的地图构建。而其中的点云数据是由两种传感器来进行采集的,包括激光雷达和摄像头,所以SLAM算法其实又分了两大方向:

视觉SLAM算法(VSLAM)和激光SLAM算法(Lidar SLAM)。

所以又细分了下面的两个岗位(选择其中之一学习即可)。

3.2 激光SLAM算法工程师

关于激光SLAM的效果,可以看下面的视频,激光SLAM的传感器即为激光雷达,视频中花花绿绿的就是激光雷达的点云数据了,然后对周围环境进行地图构建:

♥激光SLAM所需要学习的知识

操作系统:Linux

编程:使用c、c++、matlab一种或多种语言(matlab不是很建议)

理论:需要学习很多滤波算法,如:ESKF、EKF、UKF等。同时需要学习G2O、ceres等用来优化非线性误差函数的c++框架。

3.3 视觉SLAM算法工程师

关于视觉SLAM的效果,可以看下面的视频。视觉SLAM中的传感器即为摄像头,摄像头如果使用深度相机,可以直接获取障碍物的距离,生成点云数据。当然也有用单目、双目、鱼眼摄像机的 视觉SLAM ,这些摄像头需要用其他的方法才能间接的获取周围障碍物的距离。

♥视觉SLAM所需要学习的知识:

操作系统:Linux

编程:c、c++

理论:学习常用的vSLAM算法,如ORB-SLAM、SVO、DSO、MonoSLAM,VINS以及RGB-D等;ROS机器人操作系统;还需要学习很多滤波算法,如:ESKF、EKF、UKF等。同时需要学习G2O、ceres等用来优化非线性误差函数的c++框架。

♥视觉SLAM学习资料推荐

入门级神书《视觉SLAM十四讲》,同时书的作者在B站上直播过相关SLAM十四讲的课程,可以去搜索一下,如果想要B站直播课云盘的,云盘链接总是失效,在公众号后台回复【自动驾驶-SLAM】关键字获取吧。本书作者也有过培训课程,根据自己的需求可以去看看他的付费课程。

目前激光 SLAM 是比较成熟的定位导航方案,但其传感器价格昂贵,我们知道汽车是一个量产的东西,如果成本降不下来,其也会有很大的阻力,目前特斯拉等公司已经放弃了激光雷达的方案,采用纯视觉的自动驾驶方案。

在实际的自动驾驶车辆上,SLAM 其实是需要多个传感器进行融合的,取长补短,比如GPS、IMU(惯性导航)等传感器融合的方案,所以自动驾驶算法方向又出现了下面的一个新的岗位。

3.4 自动驾驶多传感器融合算法工程师

看一下该方向的行业要求:

掌握camera、毫米波雷达、激光雷达、惯性导航等相关数据解析融合算法;熟悉感知融合算法发展趋势,有神经网络等人工智能开发背景者优先。(来源:华为技术有限公司招聘信息)

很明显,数据融合要求更高,既包括前面激光SLAM和视觉SLAM,同时还需要掌握其他传感器的用法,所以这个方向难度不小,所涉及的知识非常多。

3.5 自动驾驶决策算法工程师

自动驾驶的决策是指给将知模块传递的信息,如何决策汽车的行为达到驾驶的目标。例如,汽车加速、减速、左转、右转、换道、超车都是决策模块的输出。决策需要考虑到汽车的安全性和舒适性,保证尽快到达目标地点,还需要在旁边的车辆恶意的情况下保证乘客的安全。

♥决策算法需要学习的知识:

操作系统:Linux

编程:c/c++/python

理论:学习常用的决策算法,如决策状态机、决策树、马尔可夫决策过程,POMDP等;如果往深里学的话,还需要学习深度学习,学习深度学习框架等。

其实决策和规划是经常要一起做的,我们继续往下看,看看规划方向的知识要求。

3.6 自动驾驶规划算法工程师

规划包括路径规划和速度规划,一般都是做路径规划的比较多。即自动驾驶路径规划工程师。

规划算法中,自动驾驶车辆首先通过路径规划确定车辆可行驶的路径,然后选择该路径确定可行驶的速度,路径规划视频视频如下。

♥路径规划算法需要学习的知识:

操作系统:Linux

编程:c/c++/python

理论:学习常见路径规划算法,例如A*、D*、RRT等;如果往深里学的话;学习轨迹预测算法,如MDP、POMDP、Came Theory等;学习ROS机器人操作系统;学习深度学习和强化学习技术也是加分项,例如RNN、LSTM、Deep Q-Learning等。

前面提到决策和规划其实要经常一起做的,所以经常会出现两者结合的方向:

3.7 自动驾驶决策规划算法工程师

看一下该方向的行业要求:

在上述熟悉如MDP、POMDP、Game Theory等轨迹预测算法;熟悉常见路径规划算法,例如A*、D*、RRT等;具备Linux环境下的C++开发;熟悉ROS开发环境;参加过机器人领域相关研发及竞赛;熟练掌握CarSim、CarMaker等汽车仿真软件使用方法;有强数学理论基础和背景。

(来源:百度自动驾驶部招聘信息)

3.8 自动驾驶控制算法工程师

控制算法方向偏向于传统方向,一般是对车辆横纵向动力学建模,然后开发控制算法,实现车辆运动控制等。

♥控制算法需要学习的知识:

操作系统:Windows

编程: C/C++、Matlab/Simulink

理论:学习自动控制理论基础;学习车辆动力学模型;学习CarSim等仿真软件;学习ACC、AEB、APA、LKA、LCC等辅助驾驶功能开发的是加分项。

以下是基于Carsim、Matlab/simulink开发的车辆控制演示:

视频链接:

https://www.bilibili.com/video/av50574168/?redirectFrom=h5

实际的工作中,有的时候规划和控制其实不是强烈的分开的,而是相互结合,所以也会见到这样的方向:自动驾驶控制规划算法工程师。

3.9 自动驾驶感知算法工程师

自动驾驶感知部分是自动驾驶目前最有挑战的部分,其目前的岗位包括:机器学习算法工程师、计算机视觉算法工程师和自然语言处理算法工程师。这三个方向也属于人工智能的三大方向。在自动驾驶车辆中,主要包括:车道线检测、车辆等障碍物检测、可行驶区域检测、红绿灯等交通信息检测、车内语音识别等等,前面讲的SLAM算法也属于感知部分。

3.10 机器学习算法工程师

该方向主要负责车辆行驶过程中产生的数据在工程上的应用,偏向于数据分析方向,如车辆行驶里程的影响分析、大数据分析建模等等。

♥机器学习算法需要学习的知识:

操作系统:Windows、Linux

编程: Python(主要) 、C/C++、

理论:学习机器学习的基础理论算法,如 LR、GBDT、SVM、DNN等等;学习scikit-learn 等传统机器学习框架的模型训练;熟悉 PyTorch、TensorFlow等深度学习框架(偏神经网络部分)等等。

3.11 计算机视觉算法工程师

该方向主要基于摄像头传感器,主要包括:车道线检测、车辆等障碍物检测、可行驶区域检测、红绿灯等交通信息检测等等。如下如下面视频演示所示。

视频链接:https://video.tudou.com/v/XMTczMDkzNTU4MA==.html

视频链接:

https://v.youku.com/v_show/id_XNDE4Nzk4MDgwNA==.html

♥视觉算法需要学习的知识:

操作系统:Linux

编程:C/C++,Python,opencv

理论:需要机器学习的基本算法 ( 降维、分类、回归等 );需要学习深度学习,深度学习框架;学习计算机视觉和图像处理的常用方法 ( 物体检测、跟踪、分割、分类识别等 ) 。

3.12 自然语言处理算法工程师

该方向主要负责车载场景下的语音识别,语音交互设计等等,下面为车载语音识别系统的演示视频。

视频链接:https://v.qq.com/x/cover/kdl3s0o0sw3gnk3/d0018fpciky.html

♥语音算法需要学习的知识:

操作系统:Linux

编程:C/C++,Python

理论:学习机器学习算法、深度学习算法(RNN),自然语言处理基本任务(分词、词性标注、句法分析、关键字抽取),需要使用机器学习方法聚类、分类、回归、排序等模型解决文本业务问题;熟悉 PyTorch、TensorFlow等深度学习框架(偏RNN部分)等等。

四、自动驾驶仿真方向

该方向需要参与自动驾驶相关仿真系统的搭建,包括车辆动力学相关仿真,各类虚拟传感器模型和虚拟场景的建模与仿真,根据测试案例搭建测试场景,执行自动驾驶算法仿真测试等等。以下为基于Carla仿真平台的自动驾驶仿真演示视频。

♥仿真方向需要学习的知识:

操作系统:Linux

编程:MATLAB/simulink、Python/C++

理论知识:熟练操作一种常用车辆动力学或无人车相关仿真软件,比如Perscan、Carsim、Carmaker等。熟悉机器人操作系统ROS等。有的仿真岗位纯属于做仿真,但有的岗位需要做仿真环境的开发,这样的岗位对编程要求会更高一些。

五、自动驾驶测试方向

该方向主要负责自动驾驶车辆的相关测试工作,测试自动驾驶系统功能各项指标的性能,评估其边界条件和失效模式;根据研发人员对数据的需求,制作采集文档,完成数据采集等操作。其中包括软件、硬件等测试,也需要熟悉如Linux编程测试环境等等。

上述内容,如有侵犯版权,请联系作者,会自行删文。

交流群

欢迎加入我们公众号读者群一起和同行交流,目前有3D视觉深度学习激光SLAM、VSLAM、三维重建、点云后处理、图像处理、手眼标定、自动驾驶、位姿估计等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。

▲长按加群

▲长按关注我们

3D视觉工坊 CSDN认证博客专家 算法 3D视觉
个人公众号:3D视觉工坊。公众号特邀嘉宾及合伙人,先后就职于国内知名研究机构、自动驾驶公司、海康研究院,主要研究方向为深度学习、目标检测、语义分割、图像处理、自动驾驶感知算法等,CSDN博客专家。博主先后任职于国内知名研究院、知名大厂,致力于3D视觉算法、VLAM算法开发,涉及相机标定、手眼标定、结构光、点云后处理、三维重建等相关领域的研究,同时也是CSDN博客专家。3D视觉工坊坚持原创,近一年来输出了非常多的高质量文章,获得了粉丝的一致好评,我们将始终坚持走原创路线,打造一个铁杆粉丝的聚集区。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值