康谋方案 | AVM合成数据仿真验证方案
随着自动驾驶技术的快速发展,仿真软件在开发过程中扮演着越来越重要的角色。仿真传感器与环境不仅能够加速算法验证,还能在安全可控的条件下进行复杂场景的重复测试。
本文将分享如何利用自动驾驶仿真软件配置仿真传感器与搭建仿真环境,并对脚本进行修改,优化和验证4个鱼眼相机生成AVM(Around View Monitor)合成数据的流程。通过这一过程,一同深入体验仿真软件的应用潜力!
一、流程概述
AVM是一种通过多相机实现车辆周围环境的实时监控和显示的系统,广泛应用于自动驾驶和高级驾驶辅助系统(ADAS)的环境感知中。本文基于仿真软件与脚本生成AVM图像的流程如下所示:

图1:基于aiSim构建AVM图像流程
首先,在Unreal Engine中配置标定投影参数所需的地图,并在仿真器中为车辆部署4个方向的鱼眼相机;
其次,基于相机内参进行去畸变,并记录求解投影矩阵所需的关键参考值,例如AVM画幅尺寸、参考点的相对坐标、参考区域的大小与位置、车辆与参考区域的距离等;
随后,在完成了角点提取预处理的标定图像中快速选取参考点,生成单方向的BEV视图,重复4次完成标定去畸变;
后文将对每个流程进行具体描述。
二、仿真传感器与环境配置
对于AVM功能而言,通常需要配备4个及以上的大FOV相机以拍摄车辆周围的图像,在此基础上还可配备雷达以更好地获取车辆周围的障碍物信息。

图2:aiSim相机传感器障碍物真值输出
由于本文所使用仿真软件的相机传感器可以直接输出识别对象(车辆、行人等)的2D、3D边界框真值,所以只需配置4个方向的鱼眼相机即可满足整体需求:
(1)前置鱼眼相机:安装在前方车标附近,约15°俯视角;
(2)后置鱼眼相机:安装在后备箱附近,约25°俯视角;
(3)左、右侧鱼眼相机:分别安装在左右后视镜下方,约40°俯视角与相对车纵轴约100°的偏航角。

图3:环视OpenCV鱼眼相机传感器配置
除了传感器的配置,考虑到脚本是通过选取地面点,求解相机到地面的投影矩阵,并转换生成BEV视图进行组合,所以还需要构建一张特征明显、易于辨认标定效果的地图。
本文所使用的仿真软件支持在Unreal Engine中进行地图编辑与导出,并带有一定数量的3D资产库,因此可以基于一张基础室内地图,布置一定数量的正方形黑白标定板,根据需要搭建一个标定地图:

图4:基于aiSim插件的Unreal Engine地图编辑
首先,在Unreal Engine中打开项目,并进入室内合成地图;
然后,从3D资产库中选择100cm×100cm×5cm的标定板静态网格体,拖放到地图中;
随后,通过直接拖动模型上的变换工具或者修改侧边栏中的变换属性框调整标定板的位置与姿态;
进而,配置标定板的材质,以黑色、白色的交替顺序铺展标定板;
最终形成一个长方形的标定区域。

图5:编辑完成后的地图效果参考
批量铺展的过程可以拆分为对2×2的标定板组合实施横向与纵向阵列,完成后的地图如图所示,整体是一个6m×11m的矩形区域,车辆放置在中间2m×5m的矩形区域中。
三、图像处理与AVM合成验证集
如前文所述,本文使用的AVM脚本是基于车辆四周,位于相邻两个相机重叠视野的标定物,通过选取参考投影区域实现鱼眼相机到BEV的转化,以前视鱼眼相机为例:
图6:投影区域及BEV转化示意图
首先,由于是仿真传感器的标准OpenCV鱼眼相机模型,焦距、中心像素位置、畸变参数等内参均已知,可直接使用OpenCV的去畸变函数实现去畸变,如图6的(c)到(d)所示;
其次,设定图6(a)与(b)所示关键参数,确定图像上的点对应的真实世界位置,进而计算尺度:
(1)AVM视野总宽total_width = 2 × shift_width + 6 × board_size;
(2)AVM视野总长total_height = 2 × shift_height + 11 × board_size;
(3)board_size为标定板边长,此处为100,单位cm;
(4)shift_width与shift_height为视野延伸距离,单位cm;
(5)左上角投影点projection_point_0:(shift_width + 100, shift_height),以此类推右上角、左下角、右下角投影点坐标,形成投影区域;
(6)inner_height与inner_width为投影区域相对车辆的横向、纵向距离,单位cm,由此可以推算出自车所处区域;
而后,对去畸变相机图像追加Shi-Tomasi角点提取处理,并增加半自动采点的模式切换,自动选取鼠标点击像素位置周围欧式距离最小的角点,保障准确度的同时提升效率;
最后,如图6(d)选取4个角点,形成与(b)对应的参考投影区域,输出的BEV视图如图6(e)所示。

图7:环视BEV合成AVM示例
以此类推可以得到4个方向的BEV视图及对应的投影参数,结合车辆图层作为覆盖,即可生成对应传感器布置下的二维AVM合成图像,如图7所示,其中每个像素分辨率为1cm²。

图8:传感器外参优化示例
通过仿真软件,一方面可以在控制算法不变的情况下寻找出更优的传感器外参布局,另一方面也可以在控制传感器不变的情况下在多种不同场景验证,进而迭代优化AVM算法的表现。结合相机传感器自带的标注信息,后续也可以进行包括障碍物识别在内的更多功能验证。

图9:不同场景下的AVM合成数据
四、总结与展望
本文介绍了基于aiSim仿真软件生成AVM合成数据的完整流程,包括传感器与地图的配置、图像处理与BEV视图生成以及最终的AVM合成验证。
不难看出,仿真软件的高效性与灵活性保障了在安全可控的环境中快速验证算法性能的可行性,并可以通过多场景测试与参数优化改进算法,最终提升其综合表现。
康谋方案 | AVM合成数据仿真验证方案的更多相关文章
- asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权
开发了一个公司内部系统,使用asp.net core 3.1.在开发用户认证授权使用的是简单的cookie认证方式,然后开发好了要写几个接口给其它系统调用数据.并且只是几个简单的接口不准备再重新部署一 ...
- 【ASP.NET Core】使用最熟悉的Session验证方案
如果大伙伴们以前写过 ASP 或 PHP 之类的,相信各位对基于 Session 的身份验证很熟悉(其实在浏览器端是结合 Cookie 来处理的).这种验证方式是比较早期的,操作起来也不复杂. a.用 ...
- Linux多安全策略和动态安全策略框架演示验证方案及结果分析
3演示验证方案及结果分析3.1演示验证方案3.1.1验证目标该方案主要用于验证采用Flask体系结构实现的SELinux对系统的防护过程及相应的防护原理.3.1.2验证环境操作系统:启用了SELinu ...
- 基于Verilog HDL整数乘法器设计与仿真验证
基于Verilog HDL整数乘法器设计与仿真验证 1.预备知识 整数分为短整数,中整数,长整数,本文只涉及到短整数.短整数:占用一个字节空间,8位,其中最高位为符号位(最高位为1表示为负数,最高位为 ...
- C++ Redis mset 二进制数据接口封装方案
C++ Redis mset 二进制数据接口封装方案 需求 C++中使用hiredis客户端接口访问redis: 需要使用mset一次设置多个二进制数据 以下给出三种封装实现方案: 简单拼接方案 在r ...
- cadence upf低功耗流程的仿真验证
本文是记录项目过程中遇到的奇巧淫技,如有遗漏或者不足,请大家改正和补充,谢谢. 随着深亚微米技术的普及与发展,leakage功耗在整个功耗中的比重越来越大,比如45nm下,已经占到了60%以上,所以低 ...
- DC综合及仿真验证和DFT测试
综合技术是提高设计产能的一个很重要的技术,没有综合技术的发展就不可能用HDL实现电路的设计,因为HDL开始是用来供电路仿真建模使用的,到了后来才把其中一部分子集作为可综合的语言,也就是R ...
- Raid信息丢失数据恢复及oracle数据库恢复验证方案
早些时候,有个客户14块盘的磁盘阵列出现故障,需要恢复的数据是oracle数据库,客户在寻求数据恢复技术支持,要求我提供详细的数据恢复方案,以下是提供给客户的详细数据恢复解决方案,本方案包含Raid数 ...
- IdentityServer4之Jwt身份验证方案分析
一,准备内容 在之前讲过的asp.net core 实现OAuth2.0四种模式系列中的IdentityApi客户端用到了以下配置代码 public void ConfigureServices(IS ...
- ubuntu之路——day11.4 定位数据不匹配与人工合成数据
1.人工检验train和dev/test之间的区别: 比如:汽车语音识别中的噪音.地名难以识别等等 2.使得你的训练集更靠近(相似于)dev/test,收集更多类似于dev的数据: 比如:dev中存在 ...
随机推荐
- 一文读懂ROS开发,解锁RK3562J + Ubuntu工业平台应用
在工业智能化浪潮中,智能机器人设备是成为工业自动化体系的璀璨之星,而其核心 --ROS系统,更是机器人领域的集大成者.今天,和大家分享一个ROS开发案例,基于RK3562J + Ubuntu工业平台. ...
- SQL Server与ORACLE数据库存储过程编写的几个不同之处
一直在使用SQL Server数库的存储过程进行业务数据处理,现在ORACLE上进行存储过程应用,感觉没有MSSQL的方便灵活,总结了以下几点区别: 1.入参数据类型不要书写长度.比如:userNam ...
- 云主机 vs 轻量型云主机:性能与灵活性的平衡
本文分享自天翼云开发者社区<云主机 vs 轻量型云主机:性能与灵活性的平衡>,作者:冯****芙 什么是轻量型云主机.什么是云主机? 云主机是云计算的一种基础设施服务模型,它是在云平台上通 ...
- HPC云化部署的优势和挑战
本文分享自天翼云开发者社区<HPC云化部署的优势和挑战> 作者:土豆炒肉丝 HPC云化部署指的是将高性能计算(HPC)工作负载部署在云计算平台上,这种方式带来了一些明显的优势,但同时也面临 ...
- [QOJ8672][PKUSC2024] 排队
函数复合,直接转化为离线问题,那我们就需要完成对满足条件的量的区间加操作. 显然 \(ans_{[l,r]}\ge ans_{(l,r]}\),所以可以线段树二分. 时间复杂度 \(O(q\log n ...
- ABB机器人伺服电机维修有脉冲输出时不工作怎么处理
1.ABB机器人伺服电机维修有脉冲输出时不工作怎么处理? 监督操控器的脉冲输出当时值以及脉冲输出灯是否闪烁,承认指令脉冲现已履行并现已正常输出脉冲:查看操控器到驱动器的操控电缆,动力电缆,编码器电缆是 ...
- C# USB 摄像头 OpenCV 视频picBox呈现,抓拍图像保存呈现。没有注释版本。
1.winform 应用程序,两个picturebox空间,一个用于视频呈现,一个用于抓拍呈现. 2.引用包OpenCvSharp4.OpenCvSharp4.Extensions.OpenCvSha ...
- word 批量制作ppt
将 Word 文档作为大纲,构建演示文稿 在 Word 文档中,单击"开始". 使用"样式"设置 Word 文档中内容的格式. 突出显示要用作幻灯片标题的内容, ...
- 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
一.Windows 版 DeepSeek-R1.Ollama 与 AnythingLLM 介绍及核心使用场景 一.组件功能与定位 DeepSeek-R1 模型特性:支持 FP16 计算 ...
- Netty基础—3.基础网络协议
大纲 1.网络基础的相关问题总结 2.七层模型和四层模型 3.物理层(网线 + 光缆 + 01电信号) 4.数据链路层(以太网协议 + 网卡mac地址) 5.网络层(IP协议 + 子网划分 + 路由器 ...