基于matlab开发和评估停车场场景中的视觉定位算法(附源码)

news/2024/11/23 10:01:59/

一、前言

本示例展示了如何使用虚幻引擎模拟环境中的合成图像数据开发视觉定位系统。

获取基本事实以评估定位算法在不同条件下的性能是一项具有挑战性的任务。与使用高精度惯性导航系统或差分GPS等更昂贵的方法相比,不同场景下的虚拟仿真是一种经济高效的方法来获得地面真相。使用仿真可以在各种场景和传感器配置下进行测试。它还支持快速算法开发,并提供精确的地面事实。

本示例使用虚幻引擎模拟环境来开发和评估停车场场景中的视觉定位算法。

二、概述

视觉定位是估计捕获图像相对于已知场景的视觉表示的相机姿势的过程。它是增强现实、机器人和自动驾驶等应用的关键技术。视觉本地化的管道包括以下内容:

  • 地图加载:加载预构建的地图 3-D 地图,其中包含世界点位置以及地图点与关键帧之间的 3-D 到 2-D 对应关系。此外。对于每个关键帧,加载与 3-D 地图点对应的要素描述符。

  • 全局初始化:从第一个图像帧中提取要素,并将其与对应于所有 3-D 地图点的要素进行匹配。获得 3D 到 2-D 对应关系后,通过求解透视点 (PnP) 问题来估计世界坐标中第一帧的相机位姿。使用仅运动束调整来优化姿势。与第一帧共享最可重视的三维地图点的关键帧被标识为参考关键帧。

  • 跟踪: 定位第一帧后,对于每个新帧,将新帧中的要素与参考关键帧中具有已知三维世界点的要素进行匹配。使用与全局初始化步骤中相同的方法估计和优化相机姿势。通过跟踪与附近关键帧关联的要素,可以进一步优化相机姿势。

三、创建场景

引导车辆进入停车位是一项具有挑战性的操作,依赖于准确的定位。该模型模拟了使用停车场场景中的视觉定位系统。

  • 模拟 3D 场景配置(自动驾驶工具箱)模块设置大型停车场场景。子系统将停放的汽车添加到停车场。

  • 具有地面跟随功能的模拟3D车辆(自动驾驶工具箱)块控制自我车辆的运动。

  • 模拟3D摄像头(自动驾驶工具箱)模块对固定在车顶中心的单眼摄像头进行建模。您可以使用相机校准器应用来估计要模拟的实际相机的内部结构。

  • MATLAB 系统模块实现了视觉定位算法。相对于地图的初始相机姿势是使用函数估计的。随后的相机姿势使用函数估计,并使用函数进行优化。此块还提供预构建地图中估计相机轨迹的可视化。您可以在块对话框中指定预构建的地图数据和照相机内部参数。

四、加载地图数据

预构建的地图数据是使用使用虚幻引擎模拟开发视觉SLAM算法(自动驾驶工具箱)示例中的立体摄像头生成的。数据由三个对象组成,这些对象通常用于管理可视 SLAM 的图像和地图数据:

  • vSetKeyFrame:一个图像视图集对象,用于存储关键帧的相机姿势以及 中每个三维地图点的关联特征点。mapPointSet

  • mapPointSet:一个世界点对象,用于存储 3-D 地图点位置以及关键帧中 3-D 点和 2-D 特征点之间的对应关系。三维地图点提供环境的稀疏表示。

五、设置自我车辆和摄像头传感器

你可以按照为虚幻引擎模拟选择航点(自动驾驶工具箱),选择一系列航点,并为飞行器生成参考轨迹。此示例使用记录的参考轨迹。

六、运行模拟

运行模拟并在预构建的地图中可视化估计的相机轨迹。白点表示当前帧中追踪的三维地图点。您可以将估计的轨迹与模拟 3D 摄像机模块提供的地面实况进行比较,以评估定位精度。

七、结论

通过此设置,您可以快速迭代不同的场景、传感器配置或参考轨迹,并在进入实际测试之前优化视觉定位算法。

八、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

程序有偿获取:评论区下留言,博主看到会私信你。


http://www.ppmy.cn/news/778386.html

相关文章

el-date-picker 的初始化数据格式理解、报错 “TypeError: date.getFullYear is not a function“

个人理解 如果后端传给前端的时间数据是字符串类型的,那么当触发 el-date-picker 组件时,就会报出很多错误,例如 这是由于初始化赋值格式的问题,需要对初始化值,进行一个 new Date(your_time_data) 前端演示模板&…

linux 命令:ps 详解

名称 ps - 展示当前进程的信息,以列表呈现 用法 ps [选项] 描述 ps 展示关于运行的进程的信息。如果你想要让这个信息实时更新,请用top。 这个版本的ps接收几种选项: 1 UNIX选项,必须使用’-’ 2 BSD选项,必须…

打开Windows Powershell时出现 :. : 无法加载文件C:\user\...\profile.ps1。未对文件profile.ps1进行数字签名。无法在当前系统上运行该脚本 的解决办法

想使用Windows Powershell命令时,打开后出现如下报错: . : 无法加载文件 C:\Users\arxc\Documents\WindowsPowerShell\profile.ps1。未对文件 C:\Users\arxc\Documents\WindowsPowerSh ell\profile.ps1 进行数字签名。无法在当前系统上运行该脚本。有关运行脚本和设…

python图片数字识别_python 识别图片上的数字

https://blog.csdn.net/qq_31446377/article/details/81708006 ython 3.6 版本 Pytesseract 图像验证码识别 环境: (1) win7 64位 (2) Idea (3) python 3.6 (4) pip install pillow pip install pytesseract (5) 识别引擎tesseract-ocr 安装 安装tesseract-ocr的识别引擎 第一…

Linux 命令(73)—— ps 命令

文章目录 1.命令简介2.命令格式3.选项说明3.1 简单的进程选择(SIMPLE PROCESS SELECTION)3.2 通过参数列表选择进程(PROCESS SELECTION BY LIST)3.3 输出格式控制(OUTPUT FORMAT CONTROL)3.4 输出修饰符&am…

js 数字递增递减_JavaScript如何实现数字递增特效

本篇教程介绍了JavaScript如何实现数字递增特效&#xff0c;希望阅读本篇文章以后大家有所收获&#xff0c;帮助大家对JavaScript的理解更加深入。 < 第一&#xff1a; HTML部分这里简单列举一个 小月博客 上面我们来了解两个关键的东西&#xff1a; data-to 这个属性控制…

计算机课ps软件,电脑上的ps软件叫什么

电脑上的ps软件叫什么? 电脑上的ps软件叫Photoshop,全称是Adobe Photoshop,简称“PS”;是由Adobe Systems开发和发行的图像处理软件。 一般而言,ps软件通常就是指的Adobe Photoshop。 Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进…

Linux命令 ps --sort,如何对Linux ps命令输出进行排序

原标题:如何对Linux ps命令输出进行排序 来自:Linux迷 链接:https://www.linuxmi.com/ps-sort.html ps命令是理解Linux系统上运行的内容和每个进程使用的资源的关键。了解如何显示ps以任何方式提供的信息都是非常有用的,这些信息可以帮助您集中精力解决您要解决的问题。这样…