自动驾驶相关知识学习笔记
一、概要
因为想知道SIL、HIL是什么仿真工具,故而浏览了自动驾驶相关的知识。
资料来源《自动驾驶——人工智能理论与实践》胡波 林青 陈强 著;出版时间:2023年3月
二、图像的分类、分割与检测任务区别
如图所示,这些更高阶的图像理解任务往往都可以归类为目标检测、语义分割这两种基本的任务,或者基于这两种任务的扩展(实例分割)。不同于单纯的图像分类,目标检测需要定位出在一张图像中每个物体(例如行人)的类别以及位置范围,而实例分割更进一步,需要以像素为单位给出每个物体的范围。

目标检测包括对车辆、行人、非机动车、交通信号灯和标志等进行检测。这个任务中需要同时做两件事情:一是分类,识别出目标是什么;二是定位出目标在哪里。前者不言而喻,对于后者,例如定位出目标在一个十字路口,需要能够分辨出是哪个位置的交通灯及交通灯分别是什么信号,这样才能相应地根据交通信号的指示移动。更细节地,目标检测可以分为2D和3D检测。前者是在一个2D图像上检测出物体,它的目标输出是在图像坐标系中的一个矩形框。后者是在3D空间中的检测,目标输出是3D的边界框。考虑到2D像素空间仍然只是3D空间的投影,而且如果考虑到畸变、地面的不平等因素,这种投影还存在不规则的因素,因此相对而言,2D像素空间中的检测与分割都还需要额外的处理才能用于后续的决策,而3D空间中的检测则可以较方便地用于决策规划环节。
三、超参数
常见的超参数及其对模型训练的敏感性(其数值变化对模型训练的影响能力)

四、实现自动驾驶功能的流程

五、自动驾驶系统研发流程
1、按信息处理过程划分

2、自动驾驶汽车研发工程示意图


(1)路采规划:该环节主要是对路采进行详细的路径规划,例如在全国哪些省市进行路采,采集什么样的路况和场景,有哪些代表性的天气状况需要采集,以及车队的人员配备和管理。
(2)测试车改装:该环节涉及测试车的功能规划,传感器的选择、安装、标定,数据获取系统(包括传感器记录仪、预标注系统、存储系统、车载电源等)的安装调试。
(3)裸数据采集:该环节需要注意相关法规的监管。在中国,公开道路上的地理信息数据的采集行为受《中华人民共和国测绘法》的约束,需要有地理信息勘测甲级资质的图商监管。
(4)数据上传:采集好的数据需要从路测场地通过物流的方式运输回数据中心上传,物流的过程同样也需要接受图商的监管。到达数据中心后,需要快速地将数据上传到数据中心的数据湖中存储,并将存储介质数据清除后通过物流送回路测场地循环使用。
(5)海量数据存储:根据不同的项目目标和规划,每天采集的数据量可能从数太字节(terabyte,TB)到数百太字节不等,由于数据量巨大,因此数据中心的数据上传应尽量采用自动化手段实现。数据中心侧应部署支持海量数据规模的数据湖存储设备接收每日上传的路采裸数据,同时应部署元数据库对路采裸数据的元数据进行管理(数据治理)。
(6)数据清洗+预处理:一旦有新的裸数据进入数据湖,系统就可以开始数据处理的流程。先由图商对数据做脱敏(去除车牌等敏感信息)操作以及坐标系的偏转操作,再通过高性能计算集群对数据进行清洗(去除镜头被遮挡等的图像数据)和相应的预处理(亮度调节、对比度调节等)。
(7)数据标注:对于需要进行深度学习(deep learning,DL)训练的数据,通过手动或半自动的标注平台进行标注(labeling),以生成监督学习需要的真值数据。
(8)自动驾驶产品规划:由自动驾驶的产品经理对自动驾驶的功能进行产品规划,并针对不同功能的自适应巡航控制(adaptive cruise control,ACC)系统、自动紧急制动(autonomous emergency braking,AEB)系统、车道偏离警示(lanedeparture warning,LDW)系统等制定不同的测试方案。
(9)算法模型训练:利用传感器数据进行物体识别、语义分割、实例分割等基于卷积神经网络的深度学习训练,将达到训练精度的模型用于推理,从传感器数据中抽取出各种场景要素。
(10)仿真场景库:使用抽取出来的场景要素生成场景库,业界比较权威的场景库是基于自动化及测量系统标准协会(association for standardization ofautomation and measuring systems,ASAM)规定的OpenDrive和OpenScenario场景库。在后期的虚拟仿真中,此环节生成的场景库将用于为数字仿真模型车生成虚拟的仿真场景。
(11)虚拟仿真:通过Simulink、Prescan、Carsim等虚拟仿真工具对算法进行“软件在环(SiL)”虚拟仿真,在仿真环节中仿真道路路面、交通参照物、车辆、行人以及天气条件下的环境信息(例如雨雾或者夜间照明时的路面信息)。通过对各种基本要素的排列组合形成各种复杂的场景,尽可能多地覆盖各种罕见场景(cornercase),让数字仿真模型车在这些复杂场景中做各种测试并记录结果。每次测试完 成后利用测试结果对数字仿真模型车的算法和参数进行优化,循环往复,直到得到满足自动驾驶分级功能要求的结果。
(12)硬件仿真:对SiL仿真过程中达到功能标准的算法进行“硬件在环(HiL)”仿真验证。在SiL仿真过程的代码跑通后,再基于必要的硬件在环平台,检测代码在传感器、计算单元等硬件系统上运行中的错误和兼容性问题。然后进行“车辆在环(ViL)”仿真,将相关的软硬件系统集成到车辆平台上,在封闭场地中完成相关测试,检测代码是否出现问题。
(13)道路测试:基于“司机在环(DiL)”,在测试场地和政府允许的公开道路进行场地测试,检测自动驾驶系统的运行情况,获得司机的主观评价及验证人机交互等功能。
(14)量产:以上各项测试都通过后,就可以进入量产阶段,在汽车成品中进行大量部署。
六、自动驾驶系统的仿真测试
1、软件在环(SiL)仿真测试系统架构

2、硬件在环(HiL)仿真测试系统架构

相关文章:
自动驾驶相关知识学习笔记
一、概要 因为想知道SIL、HIL是什么仿真工具,故而浏览了自动驾驶相关的知识。 资料来源《自动驾驶——人工智能理论与实践》胡波 林青 陈强 著;出版时间:2023年3月 二、图像的分类、分割与检测任务区别 如图所示,这些更高阶的…...
uniapp - 基于uniapp+vue3实现自定义增强版table表格组件体验「兼容H5+小程序+App端」
本文提供增强版table表格组件体验,打造跨端表格的新标杆. uv3-table:一款基于uniappvue3跨端自定义手机端增强版表格组件。支持固定表头/列、边框、斑马纹、单选/多选,自定义表头/表体插槽、左右固定列阴影高亮显示。支持编译兼容H5小程序端App端。 提供…...
新时期下k8s 网络插件calico 安装
1、k8s master节点初始化完毕以后一直处于notreadey状态,一直怀疑是安装有问题或者是初始化有问题(当然,如果真有问题要先解决这些问题),经过不断探索才发现是网络插件没有安装导致的,根据建议安装calico插…...
【SQL】COUNT()函数 用法详解
COUNT()函数 COUNT函数用法:COUNT ( [ALL | DISTINCT] column | expression | *) ALL关键字指示统计所有值,而DISTINCT关键字强制函数仅对不同的值进行操作。 默认情况下,使用ALL选项。条件表达式 COUNT()函数中条件表达式加 OR null。例如…...
【HTML+CSS+JS+VUE】web前端教程-6-图片路径详解
绝对路径 绝对路径是电脑盘符存储与访问的具体位置 E:\xxx\1.jpg <img src"E:\xxx\1.jpg">相对路径 两者相对关系,两者在同一路径下可以直接访问 子级关系:/ 父级关系:../ 同级关系: ./网络路径 具体的网络地址:…...
C++中面向对象的三大特性是什么?
封装(Encapsulation) 概念:封装是把数据和操作数据的函数绑定在一起,对数据的访问进行限制。通过将数据成员设为私有(private)或受保护(protected),并提供公共ÿ…...
Centos 修改 yum 源为阿里云
参考 https://serverfault.com/questions/1161816/mirrorlist-centos-org-no-longer-resolve 修改 Centos 的 yum 源为阿里云 去阿里云 yum 镜像源官网: https://developer.aliyun.com/mirror/ 选择自己对应的操作系统,这里以 centos7 演示…...
Qt之Cannot create children for a parent that is in a different thread问题分析
问题 在多线程场景中,使用QSerialPort,QTcpSocket等QIODevice设备时出现报Cannot create children for a parent that is in a different thread 分析 QObject构造函数中会检查父对象的线程数据与当前对象的线程数据是否一致 static bool check_parent_thread(Q…...
均值滤波从图像复原角度的解释
廖老师说若将图像生成看作一个随机过程,均值滤波(Mean Filtering)可以视为在高斯噪声模型下的线性最小均方估计(Linear Minimum Mean Squared Error, LMMSE)或者极大似然估计(Maximum Likelihood Estimatio…...
Tableau数据可视化与仪表盘搭建-数据连接
目录 连接本地文件 课程操作 连接方式(实时/数据提取) 保存工作簿 筛选器 数据处理 连接数据有三种类型 第一种,连接到本地文件,例如Excel,csv,JSON等 第二种,连接到数据库,例…...
VsCode对Arduino的开发配置
ps:我的情况是在对esp32进行编译、烧录时,找不到按钮,无法识别Arduino文件,适合已经有ini文件的情况。 1.在vscode中安装拓展 2.打开设置,点击右上角,转到settings.json文件 3.复制以下代码并保存 {"…...
2024版idea 插件无法加载
解决方法: 进入Settings 点击plugins 选择 HTTP Proxy Settings 设置成如图所示...
VLMs之Agent之CogAgent:CogAgent的简介、安装和使用方法、案例应用之详细攻略
VLMs之Agent之CogAgent:CogAgent的简介、安装和使用方法、案例应用之详细攻略 导读:在2024年末,智谱于11月29日正式提出了GLM-OS概念,并推出了两款Agent产品——AutoGLM和GLM-PC。为了促进大模型Agent生态的发展,智谱决…...
Unity3D仿星露谷物语开发19之库存栏丢弃及交互道具
1、目标 从库存栏中把道具拖到游戏场景中,库存栏中道具数相应做减法或者删除道具。同时在库存栏中可以交换两个道具的位置。 2、UIInventorySlot设置Raycast属性 在UIInventorySlot中,我们只希望最外层的UIInventorySlot响应Raycast,他下面…...
Kafka优势剖析-消费者组、并行消费
目录 1. 消费者组(Consumer Group) 1.1 什么是消费者组? 1.2 消费者组的工作原理 1.3 消费者组的优势 2. 并行消费(Parallel Consumption) 2.1 什么是并行消费? 2.2 并行消费的工作原理 2.3 并行消…...
Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
当今互联网发展迅速,应用程序的性能监控显得越来越重要。 DockerJmeterInfluxDBGrafana 是一种常用的性能监控平台,可以帮助开发者快速搭建一套可靠的监控体系。在本文中,我们将介绍如何使用这些工具搭建性能监控平台,以便开发人…...
Maven 详细配置:Maven settings 配置文件的详细说明
Maven settings 配置文件是 Maven 环境的重要组成部分,它用于定义用户特定的配置信息和全局设置,例如本地仓库路径、远程仓库镜像、代理服务器以及认证信息等。settings 文件分为全局配置文件(settings.xml)和用户配置文件&#x…...
【文本分类】bert二分类
import os import torch from torch.utils.data import DataLoader, Dataset from transformers import BertTokenizer, BertForSequenceClassification, AdamW from sklearn.metrics import accuracy_score, classification_report from tqdm import tqdm# 自定义数据集 class…...
单例模式-如何保证全局唯一性?
以下是几种实现单例模式并保证全局唯一性的方法: 1. 饿汉式单例模式 class Singleton { private:// 私有构造函数,防止外部创建对象Singleton() {}// 静态成员变量,存储单例对象static Singleton instance; public:// 公有静态成员函数&…...
设计模式学习笔记——结构型模式
文章目录 适配器模式 Adapter适用场景UML 桥接模式 Bridge适用场景UML 组合模式 Composite装饰模式 Decorator外观模式 Facade享元模式 Flyweight代理模式 Proxy 适配器模式 Adapter 适用场景 希望使用某个类, 但是其接口与其他代码不兼容时, 可以使用…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...
