作者 | dianyunPCL  编辑 |

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【全栈算法】技术交流群

摘要

自动泊车正成为现代辅助驾驶车辆的标配功能,现有的泊车系统一般是建立了一个本地地图,以便能够规划朝向检测到的停车位的位置运行,下一代泊车系统有一个用例是建立了车辆需要经常停放的长久环境地图,例如家庭停车场或办公室停车场。预构建的地图有助于在下次尝试停车时更好地重定位车辆位置。这是通过使用视觉SLAM方法增强泊车系统实现的,该功能在汽车行业中被称为记忆泊车。在本文中,我们讨论了训练轨迹自动泊车系统的用例、设计和实现。

介绍

大体上,自动驾驶(AD)用例可以根据运行速度分为三种场景,即高速公路智驾、中速城市驾驶和低速泊车系统。高速场景中用例的定义和结构相对完善,因此高速公路车道保持辅助等功能是市场上最成熟和已部署的功能。城市驾驶用例对应于中速,它们是高度非结构化且最具挑战性的。泊车是一个低速用例,就结构而言,它处于中间位置。相对而言,泊车的驾驶规则及其相关的道路基础设施(道路标记和交通标志)定义不太明确,但更容易处理,因为这是低速场景。泊车需要近场感应,而不是前摄像头提供的典型远场感知。这通常通过四个鱼眼摄像头实现,可提供全方位360度◦ 感知范围(图1)。

图1:显示了近场传感和宽视野,四个鱼眼摄像头(标记为绿色)提供360度环视图

车辆反复停放在同一区域是很常见的,例如:车主的住宅区域,车库或住宅和办公空间前面。准确的区域地图将有助于自动泊车,以更有效地泊车,这可以通过视觉SLAM方法实现,该方法构建泊车区地图,后期可用于重定位。通常,这些停车区是私人区域,不会由TomTom、HERE等商业地图公司绘制。因此,车辆必须具备智能,学会绘制频繁停车的区域,然后进行重定位。在本文中,我们描述了使用商用汽车级摄像头和嵌入式系统提供此功能的系统。

视觉同时定位和建图(VSLAM)是机器人和自动驾驶领域的一个研究热点。主要有三种类型的方法,即(1)基于特征的方法,(2)直接SLAM方法和(3)CNN方法。基于特征的方法利用描述性图像特征进行跟踪和深度估计,从而生成稀疏地图。MonoSLAM、PTAM和ORB-SLAM是这一类型的开创性算法。直接SLAM方法在整个图像上工作,而不是稀疏特征,以帮助构建稠密地图,稠密跟踪和建图(DTAM)和大规模半稠密SLAM(LSD-SLAM)是基于光度误差最小化的常用直接方法。基于CNN的方法对于视觉SLAM问题相对不太成熟。特别是对于使用全景鱼眼摄像头的停车场景,在[9,17,13]中探索了视觉SLAM。一般来说,鱼眼相机上的感知任务工作有限,但最近在物体检测、深度估计、脏污检测、拖车检测和多任务模型等任务方面取得了进展。

训练轨迹的泊车系统

训练轨迹泊车分为两个阶段:训练阶段和回放阶段。在训练阶段,人类驾驶员驾驶车辆在需要的地方停车(例如车库、车库等)。训练的轨迹及其周围的有用信息被存储起来,以便以后自动加载用于定位。在回放阶段,训练的轨迹被加载到车辆上,并且算法能够识别当前车辆相对于整个路径中学习的轨迹的位置。如图2所示。

图2:经过训练的停车和重定位示意图:白色虚线路径是经过训练的轨迹(周围物体的特征为红色)。带箭头的黄色斑点显示当前车辆(检测到的特征为蓝色)沿箭头方向移动,遵循训练的路径

目前,我们的VSLAM方案中没有使用任何机器学习,在训练阶段融合里程计和/或超声波传感器信息,可提供更准确的回放轨迹,然后,车辆控制规划使用计算出的车辆位置来规划返回停车位置的路线,并控制转向和加速,以便车辆进行自行智驾。视觉SLAM算法用于训练和回放阶段,以计算和识别训练后的轨迹和车辆位置,训练轨迹泊车的这些阶段用于不同的用例,如下所述。

Home Parking:驾驶员经常将车停在自己的家庭区域,其想法是学习家庭区域,以自动进行泊车操作。家庭泊车系统使用计算机视觉技术在已经存储的轨迹内进行自定位,使得车辆能够使用存储的轨迹完全自主地驾驶进入停车位。在这种应用中,驾驶员训练系统检测地标并将其用于定位。

Automated Reverse Parkout:这有助于驾驶员倒车(例如驶入死角、停车)。通常,不同的训练轨迹存储在长久的存储器的缓冲区中,然后用户可以根据车辆的当前位置选择自动驻车轨迹。停车场自动回放的轨迹被连续记录,通常无需任何手动触发。

Valet Parking 代客泊车:代客泊车是最先进的泊车方式,该系统必须自动执行导航以找到停车位,选择最佳停车位,然后自行泊车,在一个未知的环境中实现这一点是非常具有挑战性的。

泊车系统架构

1. 泊车平台概述

传感器:车辆配置包括商业部署的汽车级传感器,如图1所示。泊车系统所需的主要传感器是鱼眼摄像头(用于提供轨迹信息)和超声波传感器(用于停车途中的近距离障碍物检测)。有四个鱼眼摄像头(图中标记为绿色),分辨率为100万像素,水平视野宽(FOV)为190◦. 四个摄像头一起覆盖整个360度汽车周围的视野。这些摄像头设计用于提供10米以内的最佳近场感知,25米以内的感知略有降低。还有一个12个超声波传感器阵列(图中标记为灰色),覆盖前后区域。它们在汽车周围提供了一个坚固的安全网格,以避免碰撞,这是一个稳定系统所必需的。

SOC:尽管自动驾驶原型展示在大型PC上,但它们必须部署在低功耗、低成本的嵌入式系统上。尽管汽车嵌入式系统的计算能力快速增长,但部署计算机视觉算法仍然具有相当大的挑战性。图3在左上方区域显示了一个称为ECU的典型汽车嵌入式系统。典型的汽车SOC供应商包括Texas Instruments TDAx、Renesas V3H和Nvidia Xavier平台。这些SOC中的大多数提供定制的计算机视觉硬件加速器,用于密集光流、立体视差和深度学习。典型的SOC系统具有1到10 TOPS的计算能力,消耗的功率小于10瓦。

图3:记忆泊车系统架构

软件架构:在被输入视觉算法之前,典型的预处理算法包括鱼眼失真校正、对比度增强和去噪。使用计算机视觉算法检测物体,然后将它们输入地图,以规划泊车。来自四个相机的图像坐标中的物体被转换为世界上的一个集中坐标系统,深度估计提供通过语义分割检测到的行人和车辆等对象的定位。类似地,道路对象(如车道和路缘)使用连接组件算法提取并建图到世界坐标。物体也可以从超声波和激光雷达(如果可用)等其他传感器中提取出来,然后融合到先前使用的地图中。车辆控制和规划单元使用地图和当前位置规划返回停车位置的路线,并控制转向和加速,以便车辆在那里自行行驶。GPS可用于在轨迹开始时提供车辆的粗略定位。同样重要的是,系统软件能够检测行驶路径上的障碍物或行人,并相应地改变轨迹的走向。该系统应能够利用自动紧急制动(AEB)功能,允许车辆在一组条件下应用紧急制动。

2. 泊车系统中标准计算机视觉模块

除了传统的特征匹配之外,现代VSLAM系统使用语义信息来增强重新定位的鲁棒性,识别场景中的动态和可移动对象,并为场景中这些实体所承载的特征赋予零权重或非常小的权重。

语义分割:感兴趣对象主要是道路对象,如自由空间、道路标记、路缘石等,以及动态对象,如车辆、行人和自行车,它们都可以通过统一的语义分割网络实时检测,这些物体通常用于自动驾驶中的导航和障碍物检测。特别是对于我们的应用程序,动态对象有助于消除地图中的特征点,因为它们在重新定位过程中可能不在同一位置,而车道和道路标记等静态实体提供了在机动过程中可以穿过的有效轨迹。

通用障碍物检测:为了获得一个强大的系统,必须使用除了外观之外的其他线索来检测物体,为所有可能的对象训练基于外观的语义分割在实践中是非常有挑战性的,像袋鼠或建筑卡车这样的对象类非常罕见。运动和深度是在汽车场景中非常有用的线索。通常,深度用于检测静态对象,而运动用于检测动态对象。图4说明了通过双目运动恢复结构算法计算的深度。

图4:通过运动对双目进行深度估计

泊车视觉SLAM

1. 建图概述

建图是自动驾驶的关键模块之一,许多自动驾驶的首次成功演示主要依赖于预先绘制区域地图。图5说明了TomTom RoadDNA提供的自动驾驶商业高清地图服务。

图5:TomTom RoadDNA的高精(HD)地图示例

它们为大多数欧洲城市提供了高度稠密的语义3D点云地图和定位服务,典型的定位精度为10 cm,当有准确的定位时,HD地图可以被视为主要线索,因为已经有了强大的先验语义分割,并且可以通过在线分割算法进行细化。然而,这项服务很昂贵,因为它需要在世界各地进行定期维护和升级。由于隐私法和可访问性,这种商业服务不能在所有情况下使用,必须在车辆的嵌入式系统中建立建图机制。例如,在德国等许多国家,私人住宅区无法合法测绘。图6展示了我们的系统生成的点云,由于车辆中可用的计算能力有限,与稠密的高精地图相比,它非常稀疏。

图6:视觉SLAM方案生成的轨迹的相机姿态鸟瞰图,以及使用运动双目的生成的点云地图

2. VSLAM方案

Visual Synchronous Localization And Mapping(VSLAM)是一种算法,它构建车辆周围环境的地图,并同时计算出汽车在该环境中的当前位置。安装在汽车上的摄像头可以从四个摄像头中的任意一个或组合产生广角图像,然后绘制车辆周围环境并跟踪地图,这构成了图7中视觉VSLAM的基本流程。

图7:VSLAM框图显示了训练和回放阶段的两条并行方案

建图是从跟踪的传感器数据中生成地图的过程,该地图由经过训练的轨迹及其相关地标组成。经过训练的轨迹是一组关键位姿,保存车辆起点到终点位置的地标信息,这些地标使用在捕获的图像中唯一的鲁棒图像特征来表示。在回顾了最先进的Visual SLAM方案的优缺点后,我们得出结论,基于特征的方法比直接方法更适合,因为它需要更少的内存,并且对场景中的动态对象和结构变化不太敏感。图像中的一个明显特征可以是强度以特定方式变化的像素区域,或者是边缘或角点。为了估计世界上的地标进行跟踪,其中可以匹配相同特征的两个或多个视图。一旦车辆移动了足够的距离,VSLAM就会拍摄另一组图像并提取特征,重建相应的特征以获得它们在现实世界中的坐标和姿态。

帧到帧3D重建和视觉里程计可能会有漂移,需要全局修正,这是通过捆集调整步骤实现的,捆集调整步骤联合优化3D点和相机位置。这是一个非常计算密集的步骤,因为3D点的高重投影误差增加了迭代次数以降低成本,因此不能对每个帧执行该步骤。它通常在N帧中执行一次,称为滑动窗口捆集调整。在训练结束时,还执行全局捆集调整,其中优化所有关键帧(不是轨迹上的每一帧),以确保内部VSLAM图的全局一致性。最终优化的轨迹作为地图保存在永久存储器中,并由算法用于重新定位车辆姿态,以实现车辆的自动规划。在此过程中,实时摄像机图像被搜索特征,并与训练地图中的帧相匹配。如果实时图像中的特征与地图匹配,优化模块可以估计车辆的当前位置,相对于轨迹训练期间的位置。

3. 技术挑战

根据我们的经验,我们在下面简要列出了部署该系统所涉及的实际挑战。

  • 照明或天气条件的变化会导致场景在视觉上有所不同。例如,如果在白天/夜晚或夏季/冬季等进行建图和定位,则算法可能会显著降低,因为特征对应性会减少。

  • 住宅区可能具有相似的结构,这使得难以匹配独特的特征。因此,需要通过更专业的功能或更高层次的语义来增强系统。

  • 大多数当前一代汽车无法访问云基础设施,因此必须在汽车的嵌入式系统上进行建图。因此,在轨迹结束时,驾驶员需要额外的等待时间才能完成地图的全局捆集调整。

  • SLAM方案需要良好的初始化,从而可以有效地匹配沿轨迹的特征。这通常由有噪声的GPS信号完成,这可能导致不可靠的重新定位。

  • 由于对象的移动,场景中的结构变化非常常见,因此必须动态更新地图以纳入这些新变化。

  • 汽车摄像头通常具有滚动快门,必须对其进行补偿,尤其是在相对较高的速度下。

  • 通过利用多个相机之间的度量距离来解决尺度模糊性,但是由于估计中的噪声,仍然存在尺度漂移的可能性。

4. 结果

测试车辆由四个100万像素RGB鱼眼摄像头和190◦ 如图1所示的水平FOV和Velodyne HDL-64E激光雷达。GNSS(NovAtel Propak6)和IMU传感器(SPAN-IGM-A1)用于提供厘米级精度的地面实况标注。对于每个对应的图像帧获得的具有六个自由度的车辆姿态被转换为具有一些滤波的序列,以去除异常值和平滑噪声,集合中的每个元素在照明、天气条件和场景中对象的存在方面都有变化,这些场景是在我们位于爱尔兰的测试区拍摄的(如图8所示),旨在测试各种停车场景。

图8:我们的自动停车测试轨迹,其中数据集被捕获用于评估

表1显示了我们数据集中少数选定场景的结果,这些场景在时间/天和横向/角度偏移方面都有变化,导致视频序列中的照明和结构变化。重定位率受到训练和回放场景之间变化量的影响。场景6具有最具挑战性的场景,因为照明和横向偏移都存在较大差异,因此其重定位率相对较差。

总结

在本文中,我们提供了一个工业化训练轨迹的自动泊车系统的概述,讨论了经过训练的轨迹泊车用例,并演示了如何使用视觉SLAM方案扩展当前的泊车系统,并详细描述了视觉SLAM方法,并列出了商业部署中遇到的实际挑战,在未来的工作中,我们计划探索一个统一的多任务网络来执行视觉SLAM和对象检测模块。

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

基于环视相机的视觉SLAM在自动泊车系统上的应用相关推荐

  1. 基于全景相机的视觉SLAM

    一.全景相机模型 相机坐标系中空间点投影到二维图像的过程可以简化为将空间点投影到单位球面上,然后将此球面展开成全景图像. 式中:ri一空间点在相机坐标系中与原点的距离:t0一投影函数.可以看出,全景相 ...

  2. ST-P3:首篇基于环视相机的端到端自动驾驶框架!(ECCV2022)

    作者 | PerceptionX  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/544387122 点击下方卡片,关注"自动驾驶之心"公众 ...

  3. 泊位 matlab,一种基于环视相机的自动泊车方法 | 厚势汽车

    原标题:一种基于环视相机的自动泊车方法 | 厚势汽车 厚势按:针对泊车摄像头视场有限的问题,提出了一种基于环视相机的自动泊车方法.采用 4 个鱼眼摄像头,构建了一种环绕车身 360° 的实时视觉泊车辅 ...

  4. vins中imu融合_基于非线性优化算法—当视觉SLAM遇到VINS会碰撞出怎样的火花?

    今天来给大家分享一个视觉SLAM中比较综合且复杂的系统-VINS.VINS旨在通过融合两个传感器测量数据获得移动机器人的位姿和特征点在空间中的位置,在现代控制理论学科中属于最优估计问题.在移动智能机器 ...

  5. 基于树莓派3b+学习视觉slam

    基于树莓派3b+学习视觉slam(1) 搭建ubuntu mate16.04 参考jacka654321的博客树莓派3B+安装Ubuntu Mate 16.04 PS:本人使用外接显示屏与外设并没有用 ...

  6. ORB-SLAM2可以说是目前最优秀的基于特征点的视觉SLAM

    ORB-SLAM2可以说是目前最优秀的基于特征点的视觉SLAM https://blog.csdn.net/qq_38589460/article/details/82559816

  7. 视觉在自动泊车系统中的设计与实现和挑战综述

    文章:Computer Vision in Automated Parking Systems: Design, Implementation and Challenges 作者:Markus Hei ...

  8. 基于量产的乘用车高速自动驾驶系统开发

    近日,深圳通过了<深圳经济特区智能网联汽车管理条例>,成为全国首个支持全域L3级自动驾驶的城市,为全国其他城市的L3级自动驾驶准入政策,提供了标准和模板. 在此之前,乘用车高速自动驾驶早已 ...

  9. 清华大学矣晓沅:“九歌”——基于深度学习的中国古典诗歌自动生成系统

    授权自AI科技大本营(ID:rgznai100) 本文共2714字,建议阅读6分钟. 本文为你介绍清华自然语言处理与社会人文计算实验室的自动作诗系统--"九歌"及其相关的技术方法和 ...

最新文章

  1. SAP WM 通过2-Step Picking创建的TO之间的关联关系
  2. 创建自己的内容提供器
  3. Codeforces D. Fair 多源BFS求最短路
  4. python数组切片教程_手把手numpy教程【二】——数组与切片
  5. LeetCode_2_两数相加
  6. 基于EM的多直线拟合实现及思考
  7. C#中异步多线程的常见用法
  8. 数据结构与算法 相关经典书籍推荐
  9. poj 2996 Help Me with the Game 模拟
  10. 小猫跳圈-第12届蓝桥杯Scratch省赛3真题第1题
  11. 关于语音提醒app的设计思考
  12. 中文文本蕴含计算项目(88万中文文本蕴含数据集+中文文本蕴含模型)
  13. 用户登录模块---Druid+JDBC+Servlet
  14. 四大名著红楼梦第一回 甄士隐梦幻识通灵 贾雨村风尘怀闺秀
  15. 内外双修,人剑合璧——IT运维人员的九阳神功(大结局)
  16. 联想y7000p怎么连接显示器_这一次,做中华良心想—联想Y7000P游戏本体验评测
  17. Mobius函数(模板)
  18. 10.30纪中DAY2_小麦亩产一千八(kela) 休息(rest) 军训(training)
  19. 不使用除法的“除法”
  20. POJ 1583 Choose Your Words Carefully G++

热门文章

  1. vue 自定义指令 $refs
  2. 【2021最全】51单片机入门+驱动下载安装+keil下载配置+烧入程序教程
  3. 微信公众号通过链接实现关注,H5直接跳转到关注页
  4. Python语言学习:Python语言学习之硬件交互应用(arduino、树莓派等)相关的简介、案例应用之详细攻略
  5. 制作多重叠加网格效果
  6. 2022 极术通讯-白皮书:PSA Certified 的10个安全目标和 Microsoft 的高安全设备的7个属性
  7. [单调栈]Cow Acrobats
  8. windows10内网(局域网)远程桌面连接
  9. Windows10 右击win标(或win+x快捷键)无反应的解决方法(开始菜单)
  10. restorator安装后接口问题解决