热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

复杂存储过程学习_对象存储在无人驾驶高精度地图的场景实践

在自动驾驶领域有这样一个说法:关注自动驾驶的进展,就看高精地图的动态,因为他们才是加速自动驾驶汽车落地的幕后推手。本文介绍了QingSto

在自动驾驶领域有这样一个说法:关注自动驾驶的进展,就看高精地图的动态,因为他们才是加速自动驾驶汽车落地的幕后推手。本文介绍了QingStor®️对象存储的种种优势以及许多针对该场景的特性,分享了对象存储在高精度地图场景中的最佳实践。

大家都对无人驾驶和地图比较熟悉,但是大家相对较少听到高精地图这个名词,简单地说,高精地图是给自动驾驶的汽车使用的,与日常使用的二维平面地图有比较大的差异,包含的信息也会更加复杂。

无人驾驶与高精地图关系概述

0ec474cf22baac291fa30045b49be5e9.png

对于无人驾驶而言,主要分为四个阶段。在感知阶段中,车辆核心依靠车载传感器获取具体的道路与环境信息,然而在实际情况中,由于天气、环境等不确定性,仅仅依赖传感器是无法实现自动驾驶的,每一种传感器都有各自的感知缺陷和限制:

  • 如激光传感器检测效果稳定,但在面对大范围的尘土时,其检测效果大幅降低;

  • 高分辨率摄像机能检测图像中的物体,窄视场的摄像机可以检测很远的距离,但是面对暴雨、大雪等恶劣天气,其很难检测到正确的车道线和障碍物等信息;

  • 传感器是很难判断车辆所处位置是高速公路上还是处在普通城市道路上的,车速最高可以开多快,前方道路的曲率,所处路段的 GPS 信号强弱都会影响检测结果;

  • 额外传感器遇到检测盲区,更加无法实时捕获的道路与环境信息。

这些问题,在有了高精度地图后都迎刃而解。

在无人驾驶的第二阶段定位和第三阶段车辆行驶决策阶段,都需要依赖高精度地图来共同完成决策。

在当前,L3 以上的驾驶级别都无法离开高精度地图的支撑。高精度地图包含哪些具体信息,可以支撑车辆实现自动化驾驶?

高精度地图包含为两类数据:

  • 第一类为道路数据,如车道线的位置、类型、宽度、坡度和曲率等车道信息;

  • 第二类为车道周边环境信息,如交通标志、交通信号灯、车道限高、下水道口、障碍物、高架物体、防护栏、道路边缘类型与路边地标等基础设施信息。

fea248573a14cff1a08f76a03da65e31.png

由于地图采集设备的精度不同产生的数据大小也不同,由此可见在高精度地图的场景中,第一个场景特点是数据体量极为庞大,到底会产生多少数据呢?

举个列子让大家有个直观的印象,一辆标准的数据采集车大概有 4-5 个传感器,每天可完成的采集路程在百公里左右,产生约 1TB 数据。

对于高精度地图而言,采集和制图如果说是 10% 的工作量,那后期地图长期的更新可能需要占 90% 的工作量。

关于地图的更新模式,车队学习网络的分包式地图的更新模式可能会成为一种主流,车队学习网络非常类似迅雷的 P2P 下载,资源使用者同时也是资源分享者,特斯拉即采取这种模式,每一辆量产车都是地图数据的贡献者。

从这个场景我们发现,不仅仅地图前期的采集数据量和数据存储量庞大,在后期地图的更新中同样面临着庞大数量的采集车带来的数据并发与更新压力。

QingStor®️对象存储在高精地图场景应用

0f933f6fafb8edaaf6ea70387c80f7ce.png

高精度地图的制作过程主要分为四个步骤。

首先是地图采集和预处理,经过预处理的数据会写入到QingStor®️对象存储中进行保存;之后,由 QingStor®️对象存储将数据输出到 AI 训练一体机如英伟达 DGX-1,由于 AI 训练一体机需要对地图做复杂的点云和视频数据、图片数据融合处理,单位时间所能处理的数据量是有限的。

在这之前,采集到的海量数据需要存储在 QingStor®️对象存储中,训练完成之后的数据,同样需要写回到 QingStor®️对象存储中做长期留存。

在这个场景中,QingStor®️对象存储贯穿了整个高精度地图的全部制作过程,负责了海量地图数据的转储与最终地图数据的长期存储。

目前 QingStor®️对象存储在该场景中的整体数据存储规模已达 10 个 PB,未来三年的总体规模将会达到 40PB 左右。

f172214af8b1d1369eb4f58004358854.png

这是 QingStor®️对象存储在该场景的数据流架构图,数据采集之后,通过程序接口(当前主要为S3和青云自己的API接口)以及多语言 SDK 完成数据接口的接入,并将数据写入到 QingStor®️对象存储中;再由 AI 学习一体机 DGX1 获取 QingStor®️对象存储中的数据进行处理,处理完成的数据再回写到对象存储中。

在这个场景部署单一全局统一命名存储空间的 QingStor®️对象存储集群,使用了与 QingCloud 公有云对象存储完全一致的架构,采用接入服务器与存储服务器分层部署的架构来进行海量数据的承载。从功能架构上看并不复杂,在使用对象存储的使用场景中,业务部门要有一定的接口开发与对接能力。

高精地图场景挑战及最佳实践

ffda5e50f22e9afd9cb51ae6e03e723a.png

QingStor®️对象存储在场景中具体面对哪些挑战,以及如何在产品架构设计与功能特性上去解决这些问题,下面做个简单的总结。

首先是对性能和空间需求的不确定性挑战。

在地图的前期制作过程中,采集车的数量是相对固定的,数据生成量也同样相对固定,也就是说并发压力相对固定,后期因为地图需要持续更新,使用这种分包模式的地图更新方式,成千上万辆采集车都在每天 24 小时更新地图,从而带来的并发访问压力与数据写入压力成百上千倍地增加,数据量与存储量也难以预估规模。

面对这样的情况,QingStor®️对象存储采用分层设计来解决这个问题,整体架构分为负责会话接入和索引的接入层和负责具体数据存储的存储层,这样的设计可单独根据并发压力和存储空间的实际需求,进行单独的扩展,且不同角色的服务器节点还可以使用不同的配置,降低成本的同时也不浪费资源,最终实现的效果就是可单独根据并发数和存储空间的实际需求进行分层单独扩容,让存储匹配业务的规模和压力,从而实现使用最低的投入去满足业务的需求,获取较高的 ROI。

e0d3186b2d840a23ee412c45e0c886b6.png

其次是业务对数据安全和服务可靠性提出的挑战。

在车辆行驶过程中对高精度地图的高度依赖造成车辆对地图数据的访问可靠性要求极高,对服务可用性要求较高。

对于分布式存储而言,拿社区主流的分布式存储 Ceph 来说,集群故障、扩容,都必须面对数据重构和平衡问题,这本身是个非常好的设计出发点,可以实现存储节点的负载均衡与数据存储的分布均衡,但是在一个超大规模存储系统中,数据在局部的新增或删除,尽量不要扩散到整个集群,甚至需要刻意抑制这种大范围的数据均衡,QingStor®️对象存储是如何解决这个难题,可以参考右边的逻辑架构图。

首先,将庞大的存储集群分成若干个存储小组来缩小故障域,不同的存储组之间毫无关系无任何关联,节点故障后副本修复的影响范围只在本存储组内的三台节点中,从而解决节点宕机后触发整个集群数据再分布的问题。

QingStor®️对象存储对不同的存储组设置不同的存储权重,权重是根据存储组的可用存储空间、inode 可用数量等因素共同构成的优先级权重,扩容之后优先将数据写入到权重值较大的存储组中,其他存储组的数据不会做任何变动,从而规避集群在超大规模时扩容服务器带来的集群内部数据的均衡问题。

966de191462c4a0c3bc60389e3f50c1a.png

第三,数据类型的多样性带来的挑战。

地图采集场景的数据类型丰富,如图片、视频、其他传感器数据等,数据类型和大小差异较大,但是对存储效率要求一致。存储引擎层常规都会对数据进行固定的分片之后再做存储,数据过大或数据过小都会带来不同的问题,分片一定程度上会影响存储的效率。

QingStor®️对象存储从架构设计上不假设用户数据的具体场景、文件类型和文件大小,文件大小在 4M-5GB 的范围内,将自由度交付给用户,允许用户根据实际场景的文件大小进行副本的生成,存储引擎层不做额外的处理,从而保证不同类型和大小的文件存储效率依然较高。

0478c32f54c1ff73be88fd3c63247f56.png

第四,数据交互平台多样带来的接口适配挑战。

前面我们提到,对象存储在使用上具有一定的对接复杂度,更通俗的说,对象存储是给程序使用的。地图制作的过程中,涉及到多个地图制作的平台和软件,如地图信息数据输入平台、标注平台、深度学习一体机等,涉及多种语言接口。

目前,QingStor®️对象存储在 SDK 的支持上基本覆盖主流的语言,在 API 的支持上,支持完善的 S3 接口,此外还支持功能更多的青云QingCloud 自有 API 接口。

当前的场景中,还会涉及到多种平台的数据迁移、导出等需求,对象存储还必须具备多种数据迁移工具来实现自动化的数据迁移。

目前 QingStor®️对象存储支持本地文件系统、多种公有云对象存储、Hadoop 平台、HDFS 文件系统等平台之间的数据流转。

客户收益

43174155235ff14188ee65c635cfa325.png

下面总结一下海量地图场景中,使用QingStor®️对象存储所带来的收益与价值。

第一点:较高的 ROI 回报,分层架构的设计让存储可以根据业务的需求进行定向定量扩容,减少资源浪费。

第二点:成熟的技术架构,高精地图场景对可用性和数据可靠性的要求是苛刻的,选择经过大规模公有云验证的平台是风险较低的一种选择,用户只需专注在业务上而无需过多关注底层的承载平台。

第三点:较高的性价比,目前 QingStor®️对象存储在该客户中,不仅只用在高精地图场景,还在大数据分析的应用场景中使用,实现了一套平台多种用途,降低整体 TCO。

第四点:极低的运维成本,QingStor®️对象存储稳定可靠,且有完善的服务支持,目前在这样的规模量级,只有一名运维人员即可管理,极大地降低了运维成本。

3cf8dad3195decaef9fc6ecc62fdd0b5.png

我们来总结 QingStor®️对象存储的产品优势,类似图片处理、数据生命周期管理、开放的 API 等功能性不再进行重点介绍,在这里想重点介绍三点,分别是分层设计、公私一体与丰富的生态。

  • 分层设计可以满足超大规模的应用,同时规避了分布式存储的重构和再均衡问题;

  • 公私一体化保障了产品的稳定性;

  • 丰富的解决方案生态让 QingStor®️对象存储可以为最终用户的提供更多的应用价值。

abef207974ac0cfdbb49275c901945cf.png

QingStor®是青云QingCloud 自主研发的企业级分布式存储产品线,依托于 QingCloud 公有云将近7年的技术迭代和规模化应用,提供全形态软件定义存储产品的私有化部署,作为软件定义存储的主流国产品牌,旗下包括:

  • QingStor®NeonSAN®(块存储)

  • QingStor®对象存储

  • QingStor®文件存储

  • QingStor®融合存储

基于一套架构支撑多业务场景,在一个界面实现异构数据的全生命周期管理。

QingStor®企业级分布式存储历经多年发展,广泛服务于金融、能源、制造、医疗、传媒等行业的数字化转型 2.0,用数据驱动企业决策,以更敏捷、易用、低成本的方案引领数字业务创新。

- FIN -67f313e710b733edc6c569319b5b2b0a.png


推荐阅读
  • ZeroMQ在云计算环境下的高效消息传递库第四章学习心得
    本章节深入探讨了ZeroMQ在云计算环境中的高效消息传递机制,涵盖客户端请求-响应模式、最近最少使用(LRU)队列、心跳检测、面向服务的队列、基于磁盘的离线队列以及主从备份服务等关键技术。此外,还介绍了无中间件的请求-响应架构,强调了这些技术在提升系统性能和可靠性方面的应用价值。个人理解方面,ZeroMQ通过这些机制有效解决了分布式系统中常见的通信延迟和数据一致性问题。 ... [详细]
  • 9月10日,ShanghaiApacheSparkMeetup聚会在上海通茂大酒店成功举办。本次活动邀请到运营商和高校讲师来分享经验,主题覆盖了从Spark研发到应用的各种不同视角 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 深入理解Java事务编程:可串行化隔离级别的快照隔离机制解析
    深入理解Java事务编程:可串行化隔离级别的快照隔离机制解析 ... [详细]
  • 本体获邀入驻公益在线教育平台,主讲“区块链助力慈善事业”核心课程
    近日,本体全球生态合作负责人Gloria Wu受公益在线教育平台邀请,参与了“新媒体新技术新公益”系列直播课程,深入探讨了区块链技术在慈善公益领域的应用前景及其潜在影响。 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 本文深入探讨了Java枚举类型的使用与实践,详细解析了枚举的基本用法及其在实际开发中的应用。首先介绍了枚举作为常量的替代方案,自JDK 1.5起,通过枚举可以更加简洁、安全地定义常量,避免了传统方式中可能出现的错误。此外,文章还探讨了枚举在实现单例模式、状态机等场景中的优势,并提供了多个实际案例,帮助开发者更好地理解和运用这一强大的语言特性。 ... [详细]
  • 本研究聚焦于利用Java、PHP和Python开发的汽车销售管理系统,旨在为计算机科学专业学生的毕业设计提供参考。项目采用BS架构,结合多种编程语言的优势,实现高效的数据管理和用户交互。该系统不仅涵盖了汽车销售的核心功能,还通过集成先进的技术栈,提升了系统的稳定性和扩展性。 ... [详细]
  • 【VMware vSAN 6.6】1.1.企业级超融合基础设施存储方案:提供全面的软硬件集成支持
    ### 摘要VMware vSAN 6.6 提供了一种全面的企业级超融合基础设施(HCI)存储解决方案,支持广泛的软硬件集成。该方案通过在 vSphere Hypervisor 中内置存储功能,实现了高效的数据管理和资源利用。vSAN 6.6 的架构设计包括带有本地存储的服务器,以及优化的存储控制器虚拟系统,有效克服了传统存储系统的局限性,为企业提供了灵活、可靠的存储环境。 ... [详细]
  • 本文总结了 Apache Shiro 安全框架的学习体会,并通过具体应用实例进行了详细分析。Apache Shiro 是一个强大且灵活的安全框架,适用于各种应用程序的安全需求。通过对该框架的核心功能和使用方法的深入探讨,本文不仅帮助读者理解其基本概念和架构设计,还提供了实际项目中的应用示例,以便更好地掌握和运用这一工具。特别感谢开涛的博客文章,为本文提供了宝贵的参考和启发。 ... [详细]
  • Dubbo的集群容错策略正常情况下,当我们进行系统设计时候,不仅要考虑正常逻辑下代码该如何走,还要考虑异常情况下代码逻辑应该怎么走。当服务 ... [详细]
  • 单机结构/集群结构/分布式结构
    下面就正经解释下三种结构的区别吧~单机结构我想大家最最最熟悉的就是单机结构,一个系统业务量很小的时候所有的代码都放在一个项目中就好了, ... [详细]
  • java电商,java电商项目面试题
    本文目录一览:1、为什么很多商家选择Java商城系统? ... [详细]
author-avatar
惜洛妍_311
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有