当前位置: 首页 > news >正文

面向高速公路车辆切入场景的自动驾驶测试用例生成方法

1 前言
自动驾驶汽车为解决“交通事故、交通拥堵、环境污染、能源短缺”等问题提供了新的途径[1]。科学完善的测试验证评价体系对提高自动驾驶汽车的研发效率、健全相关法律法规、推进智能交通发展至关重要[2]。自2009年起,谷歌自动驾驶汽车已经进行了超过560万km公共道路测试和数十亿公里虚拟测试[3]。UBER、沃尔沃、特斯拉等企业也进行了大量实际道路自动驾驶测试[4]。然而,以UBER自动驾驶测试车辆事故为代表的多起事故表明,在自动驾驶技术成熟之前,实际道路测试具有较高的安全风险和社会风险。
此外,与传统汽车的人-车二元独立测试不同,自动驾驶汽车是人-车-路-环境强耦合系统,传统的道路场地测试已经无法满足自动驾驶汽车的测试需求。基于场景的虚拟测试技术试验场景配置灵活、效率高、重复性强、过程安全、成本低,可实现自动测试和加速测试,同时,虚拟测试系统能够模拟实际车辆测试中危险或难以实现的极端场景[4-5],大幅降低测试的难度和风险,减少工作量。因此,基于场景的虚拟测试已成为自动驾驶汽车测试评价不可或缺的重要环节。研究人员在测试场景构建方面做出了大量努力[6-7],Xia等利用层次分析法选择测试场景中的重要因素,通过组合测试法构建虚拟测试场景[8-9],Zofka等利用多种传感器采集数据,提出一种在虚拟环境中利用真实交通数据构建高风险测试场景的方法[10]。
现阶段的自动驾驶领域,“场景”还没有明确和统一的定义,同时,现有研究集中于自动驾驶测试场景的分析与构建,缺少对测试用例设计和生成的研究。因此,本文提出一种测试场景的定义,同时提出基于实际交通场景的测试用例设计和描述方法,并通过分析高速公路车辆切入场景进行验证,运用highD数据集实现测试用例设计,并利用蒙特卡洛方法(Monte Carol Method)生成测试用例。
2 自动驾驶测试场景及用例
2.1 测试场景概念
在现有针对自动驾驶汽车测试场景的研究中存在不同的场景定义。依据场景的分类,Elias Rocklage等提出“场景为一段道路上观测车辆自身与其他静态或动态物体的组合”[11]。考虑时间延续性,Gelder将场景定义为一段时间内观测车辆自身运动和所在静态与动态环境的组合,突出场景连续性[12]。Hala Elrofai等提出“场景是在一个特定时间范围内,测试车辆周围动态环境的持续变化,包括测试车辆在该环境中的行为”[13]。
在总结现有场景定义的基础上,本文提出一种适用于测试场景构建的场景定义。对于自动驾驶汽车测试而言,测试场景是测试对象在交通环境中与其他相关交通参与者交互实现行驶意图的过程。其中,行驶意图是指测试对象完成自身运动状态改变,例如完成一次自由变道或在交通路口转向。交通环境是测试对象运行的道路、气象、光照等静态环境。交通参与者是指场景内对测试对象运动状态有影响的场景元素,如与测试车辆行驶路线有冲突的车辆、行人等,在场景的观测与分析中,对测试对象运动没有影响的元素可以忽略。
2.2 测试用例的定义
在自动驾驶汽车测试中,场景是对真实交通环境中一类运行过程的抽象描述,测试用例是相应测试场景的可执行实例。一个完整的测试用例描述包含测试用例所属测试场景描述和测试用例要素信息。其中,测试场景描述提供了测试环境和测试过程的抽象描述,测试用例要素信息提供了测试环境中各要素的取值及测试中交通参与者的起始状态、状态变化过程和预期运行结果。
本文以高速公路环境下车辆切入为例,描述测试用例。由于高速公路环境交通场景相对单一,以平直道路上相邻车道车辆切入为测试场景。被测车辆在车道2中循线行驶,目标车辆在被测车辆相邻车道1中保持平稳直线行驶。在切入开始时刻T 0,目标车辆位于被测车辆侧前方,开始向车道2切入。在T 1时刻,目标车俩切入车道2并行驶至T 2时刻。在切入过程中,两车存在发生碰撞的风险。

2.3 测试用例构建
真实交通数据中蕴含多种交通场景。基于真实交通场景生成该场景下测试用例的方法如图2所示。真实交通场景可分解为静态交通环境和交通参与者的运动过程。其中静态交通环境涵盖道路状态、路侧设施、气象及光照条件等影响车辆运行的环境条件,从中可以提取出测试场景中的静态环境元素。交通参与者的运动过程是被观察对象在静态环境中与其他交通参与者交互运动并实现自身运动意图的过程。交通参与者的运动过程是测试场景的核心,为生成测试用例,需要对运动过程进行建模并分析真实场景的大量实例,估计模型的描述参数分布,从而实现由真实场景向标准测试场景的转变。在此基础上,针对不同的测试对象、测试方法和测试内容,灵活赋予描述参数不同的取值,组合不同的静态元素即可生成相应的测试用例,以适应不同测试需求。

3 测试用例构建关键技术
3.1 基元场景提取
基元场景提取是从实际交通场景中分离出基元场景并确定其描述向量的过程。通过基元场景提取,实际交通场景被分解为独立的基元并实现模型化和参数化。

本文采用参数估计法实现场景模型描述变量的分布规律估计。参数估计法利用先验知识假定数据总体服从某一分布,再利用样本数据求解分布的未知参数,通过对比不同的估计结果确定数据总体服从的分布。本文中采用高斯混合模型(Gaussian Mixture Model,GMM)对场景模型描述变量的分布进行估计[14]。

3.2 基元场景生成
根据基元场景描述模型及其描述变量,可以重新生成测试基元场景。通过基元场景的生成,可以获得远多于实际采集且符合测试要求的基元场景,满足自动驾驶测试对复杂交通运动过程的覆盖性要求。
真实交通运行过程通常具有高维性和复杂性的特点,在测试用例生成过程中,若对其所属场景数学模型进行简化假设,可能会导致近似结果与实际存在较大的偏差。蒙特卡洛方法能够直接模拟实际复杂系统,可以有效解决复杂系统简化导致的结果失真问题,且误差与问题维数无关,是解决复杂高维问题的有效方法[16]。本文依据模型描述变量的分布,采用蒙特卡洛方法进行随机取样生成基元场景。
3.3 测试用例的组合
测试用例的构建是将提取出的基元场景根据测试任务确定场景要素的参数,按照一定规则重新组合的过程。针对不同的测试对象、测试方法和测试内容,可以灵活地控制测试用例的基元数量和场景要素的参数,构建出相应的测试用例,从而适应不同的测试需求。
如图3所示,首先选取组成测试场景所需的基元场景形成功能测试场景。在此基础上确定基元场景描述变量及其取值区间,为基元场景选择确定范围,形成逻辑测试场景。最后,根据逻辑场景集中选择基元场景,确定各描述变量的取值,组合生成具体测试用例。为了提高测试效率和降低测试成本,生成测试场景适宜采用强化测试思想,即选择基元场景组合生成高风险测试场景。

相关文章:

面向高速公路车辆切入场景的自动驾驶测试用例生成方法

1 前言 自动驾驶汽车为解决“交通事故、交通拥堵、环境污染、能源短缺”等问题提供了新的途径[1]。科学完善的测试验证评价体系对提高自动驾驶汽车的研发效率、健全相关法律法规、推进智能交通发展至关重要[2]。自2009年起,谷歌自动驾驶汽车已经进行了超过560万km公…...

Java:SpringBoot整合SSE(Server-Sent Events)实现后端主动向前端推送数据

SpringBoot整合SSE&#xff08;Server-Sent Events&#xff09;可以实现后端主动向前端推送数据 目录 核心代码完整代码参考文章 核心代码 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</a…...

cmd命令行设置 windows 设置环境变量

cmd命令行设置 windows 设置环境变量 参考 51CTO博客 设置用户级别的环境变量 :: 设置新参数 JAVA_HOME1 setx JAVA_HOME1 "c:\test"; exit; echo "%JAVA_HOME1%";:: 追加参数内容 JAVA_HOME1 setx JAVA_HOME1 "%JAVA_HOME1%;c:\test2\;"; exi…...

基于负载均衡的在线OJ实战项目

前言&#xff1a; 该篇讲述了实现基于负载均衡式的在线oj&#xff0c;即类似在线编程做题网站一样&#xff0c;文章尽可能详细讲述细节即实现&#xff0c;便于大家了解学习。 文章将采用单篇不分段形式&#xff08;ps&#xff1a;切着麻烦&#xff09;&#xff0c;附图文&#…...

Opencv手工选择图片区域去水印

QT 插件化图像算法研究平台的功能在持续完善&#xff0c;补充了一个人工选择图片区域的功能。 其中&#xff0c;图片选择功能主要代码如下&#xff1a; QRect GLImageWidget::getSeleted() {QRect ajust(0,0,0,0);if(image.isNull() || !hasSelection)return ajust;double w1…...

《向量数据库》——向量数据库跟大模型是什么关系呢?

在人工智能领域&#xff0c;最近的一个重要趋势是大模型的兴起。在大模型的世界里&#xff0c;我们面临着处理和管理大规模向量数据的挑战&#xff0c;而向量数据库&#xff0c;就是为了满足这个需求而不断发展着。 那么&#xff0c;向量数据库跟大模型是什么关系呢&#xff1f…...

通过这 5 项 ChatGPT 创新增强您的见解

为什么绝大多数的人还不会使用chatGPT来提高工作效能&#xff1f;根本原因就在还不会循序渐进的发问与chatGPT互动。本文总结了5个独特的chatGPT提示&#xff0c;可以帮助您更好地与Chat GPT进行交流&#xff0c;以获得更清晰的信息、额外的信息和见解。 澄清假设和限制 用5种提…...

W5500-EVB-PICO主动PING主机IP检测连通性(十)

前言 上一章我们用W5500_EVB_PICO 开发板做UDP组播数据回环测试&#xff0c;那么本章我们进行W5500_EVB_PICO Ping的测试。 什么是PING&#xff1f; Ping &#xff08;Packet Internet Groper&#xff09;是一种因特网包探索器&#xff0c;用于测试网络连接量的程序 。Ping是…...

解释基本的3D理论

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 坐标系 3D 本质上是关于 3D 空间中形状的表示&#xff0c;并使用坐标系来计算它们的位置。 WebGL 使用右侧坐标系 — 轴指向右侧&#xff0c;轴指向上方&#xff0c;轴指向屏幕外&#xff0c;如上图所示。xyz 对象 …...

C# 练习题

26. Enum(枚举) /*枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说&#xff0c;枚举包含自己的值&#xff0c;且不能继承或传递继承。 */using System;public class EnumTest {enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };static…...

解决Linux报错:Swap file “xxxxxx.swp“ already exists

出现问题 Swap file “.models_conf.yaml.swp” already exists! 在 Linux 下 vim 编辑过程中&#xff0c;由于某种原因异常退出正在编辑的文件&#xff0c;再次编辑该文件时&#xff0c;会出现如下提示&#xff1a; 一个文件出现了带有.swp的副本文件的时候&#xff0c;会出现…...

基于飞桨图学习框架的空间异配性感知图神经网络

本期文章将为大家分享飞桨社区开发者肖淙曦、周景博发表于数据挖掘顶会KDD2023的论文《Spatial Heterophily Aware Graph Neural Networks》。 肖淙曦 肖淙曦&#xff0c;百度研究院商业智能实验室研究实习生&#xff0c;中国科学技术大学在读博士生&#xff0c;主要从事时空…...

Springboot整合JWT

1. 应用场景 前后端分离项目保持登录状态。 问题&#xff1a;ajax请求如何跨域&#xff0c;将无法携带jsessionid&#xff0c;这样会导致服务器端的session不可用。如何解决&#xff1f; 后端&#xff1a; 登录接口在验证过用户密码后&#xff0c;将用户的身份信息转换成…...

如何使用Python和正则表达式处理XML表单数据

在日常的Web开发中&#xff0c;处理表单数据是一个常见的任务。而XML是一种常用的数据格式&#xff0c;用于在不同的系统之间传递和存储数据。本文通过阐述一个技术问题并给出解答的方式&#xff0c;介绍如何使用Python和正则表达式处理XML表单数据。我们将探讨整体设计、编写思…...

LA@方阵相似@相似矩阵的性质

文章目录 相似矩阵引言相似矩阵定义相似变换相似变换矩阵相似矩阵的矩阵多项式和特征值相同推论:与对角阵相似的矩阵性质定理 相似矩阵性质相似矩阵的乘方性质相似矩阵和矩阵多项式相似对角阵 对角阵多项式的展开小结 相似矩阵 引言 对角阵是矩阵中最简单的一类矩阵 对角阵相…...

ZLMediaKit 各种推拉流

1 用ffmpeg 推音视频流 ./ffmpeg -f dshow -i video"HP Wide Vision HD Camera" -f dshow -i audio"麦克风阵列 (Realtek High Definition Audio)" -rtbufsize 100M -max_delay 100 -pix_fmt yuv420p -tune zerolatency -c:v libx264 -crf 18 -s 1280x720…...

行业追踪,2023-08-29

自动复盘 2023-08-29 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…...

【简单】228. 汇总区间

原题链接&#xff1a;https://leetcode.cn/problems/summary-ranges/description/ 228. 汇总区间 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&…...

Mysql高级语句

高级语句 1.按关键字排序 SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC ASC 是按照升序进行排序的&#xff0c;是默认的排序方式&#xff0c;即 ASC 可以省略。 SELECT 语句中如果没有指定具体的排序方式&#xff0c;则默认按 ASC…...

Python中 re.compile 函数的使用

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 以下介绍在python的re模块中怎样应用正则表达式 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...