点击上方“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视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。

▲长按加群

▲长按关注我们

如何入门学习自动驾驶感知技术?相关推荐

  1. 巨卷时代!如何入门学习自动驾驶中的感知定位融合?

    星球介绍 自动驾驶之心知识星球是国内首个以自动驾驶技术栈为主线的交流学习社区,这是一个前沿技术发布和学习的地方,由上海交大校友创办!主要切入自动驾驶感知(分类.目标检测.语义分割.实例分割.全景分割. ...

  2. 深度学习核心技术精讲100篇(五十六)- 自动驾驶感知技术的实践与探索

    前言 自动驾驶中的感知技术如同驾驶员的"眼睛"和"耳朵",在高速重卡的场景中,感知技术将面临哪些挑战?在量产化道路中,如何让感知技术与产品相结合去看清和理解足够 ...

  3. 深度学习在自动驾驶感知领域的应用

    程序员转行学什么语言? https://edu.csdn.net/topic/ai30?utm_source=csdn_bw 本次直播课程是由深度学习资深研究者-杨阳博士从百度Apollo自动驾驶感知 ...

  4. 百度语音+自动驾驶感知+深度学习平台技术解析

    HIEV快讯(文/戒僧)本文将解析三部分技术内容,出自百度2023 Create大会-技术开放日: •百度如何用"手机全双工语音交互"改善使用导航应用的体验 •如何用"上 ...

  5. Apollo星火计划学习笔记——第六讲上自动驾驶感知基础(I)

    文章目录 1. 感知的作用 2. 常见传感器 2.1 相机 2.1.1 相机的种类 2.1.2 相机的特点 2.2 激光雷达 2.2.1 激光雷达系统构成与方案 2.2.2 激光雷达光源 2.2.3 ...

  6. 自动驾驶系统入门(八)- 自动驾驶仿真技术

    1.什么是自动驾驶汽车 1.1 基本概念定义 1)自动驾驶汽车是通过搭载先进的车载传感器.控制器和数据处理器.执行机构等装置,借助车联网.5G和V2X等现代移动通信与网络技术实现交通参与物与彼此间的互 ...

  7. 【转】自动驾驶系统入门(八)- 自动驾驶仿真技术

    1.什么是自动驾驶汽车 1.1 基本概念定义 1)自动驾驶汽车是通过搭载先进的车载传感器.控制器和数据处理器.执行机构等装置,借助车联网.5G和V2X等现代移动通信与网络技术实现交通参与物与彼此间的互 ...

  8. 自动驾驶入门技术(8)—— 自动驾驶仿真技术

    1.什么是自动驾驶汽车 1.1 基本概念定义 1)自动驾驶汽车是通过搭载先进的车载传感器.控制器和数据处理器.执行机构等装置,借助车联网.5G和V2X等现代移动通信与网络技术实现交通参与物与彼此间的互 ...

  9. 智能网联汽车自动驾驶仿真技术学习笔记(一)

    智能网联汽车自动驾驶仿真技术学习笔记(一) 绪论 一.自动驾驶汽车分级 二.先进驾驶辅助系统 三.环境感知传感器 四.自动驾驶仿真系统的构成 五.自动驾驶功能测试 绪论 一.自动驾驶汽车分级 以下是由 ...

最新文章

  1. C++ Char int string关系
  2. java poll()是什么方法,JAVA学习中的一点小发现:LinkedList中.poll()方法在输出时使用应注意的小点...
  3. 图像像素灰度内插(Matlab实现)
  4. 如何判断一个程序是 32bit 还是 64bit ?
  5. HP11.31安装11.2.0.3实施手册
  6. 李开复:一生换四五次工作在21世纪很正常
  7. 【辨异】entice, tempt, lure, seduce, induce
  8. onTouch事件分发
  9. 金山软件广州java开发_金山校招-广州华工站java笔试
  10. 2011年春月游溧阳有感
  11. 使用python依次比较两个pcap文件中的每个报文
  12. Python报错too many values to unpack解决方案
  13. 基于WEB的多媒体素材管理库的开发与应用,免费分享
  14. 企业在线培训场景下讲师+ppt课件直播应用效果
  15. chm、html文件转换为PDF文件(已解决)
  16. 如何利用电容谐振改善PDN阻抗-电源完整性
  17. pythonqt5安装路径配置_PyQt5 安装与环境配置方法图解详细教程
  18. python 定义函数 返回值只取其中一个
  19. vue3项目中引入icon font图标使用
  20. Vue中 引入使用 localforage 改进本地离线存储(突破5M限制)

热门文章

  1. 主题:windows 如何查看端口占用情况?
  2. xcode4发布测试-打包(Archive)
  3. leangoo项目管理软件应用场景
  4. 现代化 Web 应用开发实战
  5. 世界第三大浏览器正在消亡
  6. 这24个高频存储问题,你一定要知道!如何不停机,安全更换数据库?大厂都怎么做MySQL到Redis同步的?...
  7. 构建前瞻性应用架构的优秀实践
  8. 某百度程序员中午面试一个阿里程序员,晚上去阿里面试,面试官竟是中午那个人!...
  9. 曾因出演《西游记》爆红,现在转行写代码身价过亿!不一样的CTO!
  10. 震精!Spring Boot内存泄露,排查竟这么难!