高德技术

其他

促科技创新:高德数据优化篇之OceanBase最佳实践

本文作者:振飞(高德地图总裁)炳蔚(高德技术服务平台负责人)福辰(高德服务端架构师)背景高德成立于2002年,是中国领先的移动数字地图、导航及实时交通信息服务提供商,向终端用户提供包括导航、本地生活、叫车等服务的一站式入口。从拥有甲级测绘资质的领先地图厂商,到首家成功转型移动互联网的地理信息企业,再到国民出行平台,以及出门好生活开放服务平台。业务一直在进化,但高德“让出行和生活更美好”的初心未变,本质的核心专注点一直没有改变,就是地图导航,拥有从数据到软件到互联网的完整研发能力和经验,同时在人工智能、大数据、计算机视觉等一系列新技能方面也拥有深厚的积累。地图是什么?它是真实(物理)世界在网络空间的数字化映射;高德的目标就是“连接真实世界,做好一张活地图”。作为如今各行各业都非常关注的一个概念,“数实融合”代表大家对于实体经济进一步升级发展的期望,代表着能力和效率的现象级提升,以及面向用户和消费者的更优质产品和服务。而要做到这一点,其中的关键在于推动实体经济和数字经济的高度融合,对于高德地图所在的交通出行行业来说,也是如此。我们致力于用“促科技创新、与生态共进”的方针,助力交通产业更好的实现数实融合。从高德的视角,对于“数实融合”的理解是什么样的?一方面,我们明确了包括人、车、路、店等在内的实体要素,才是交通出行产业中的真正主体,相关领域中耕耘多年的企业和机构,才是真正值得尊重的老师傅,他们在各自领域的专业度和经验不可或缺;另一方面,科技创新平台提供了交通服务和海量用户之间的连接能力、数字化的展示平台,提供了产业要素转化为数据的能力,并且还能为各类新型交通服务提供强大的计算能力。高德的二十余年,始终与大交通产业中其他领域的老师傅携手共进,尊重他们的专业领域,尊重他们的不可或缺,才得以与他们建立起了深厚的合作关系,成为他们服务的科技标配。2022年10月1日,中国国庆黄金周假期的首日,高德实现了创纪录的2.2亿日活跃用户。在2023年3月,受到日益增长的同城通勤和城际出行需求推动,高德的日均活跃用户数量达到了1.5亿的新纪录。高德一直不断地探索和应用新的技术,以持续提升用户体验、提高效率和降低成本。首先是北斗高精度定位。作为一家科技企业,高德有幸见证了北斗从起步到世界一流的发展历程。尤其是2020年的北斗三号全球组网成功,客观上帮助我们在产品研发上迅速打开了新局面,车道级导航、智能红绿灯、绿色出行和位置共享报平安等一系列基于北斗高精尖技术的服务得以在手机上落地,并获得了行业内外的好评。如今,高德地图调用北斗卫星日定位量已超过3000亿次,且在定位时北斗的调用率已超越了GPS等其他卫星导航系统。互联网地图用户高并发访问和随之而来的海量数据存储处理,是我们必须应对的技术难题。其中,云原生和行业无关化架构是高德地图服务端未来的努力方向。云原生是一个新的软件架构模式,它将应用程序和系统环境抽象化,并将它们封装到容器中,以实现快速、可靠和可扩展的部署和管理;云原生是未来软件架构的发展趋势,它的本质是更高维度的抽象、封装和屏蔽,高德地图服务端会聚焦于把云原生相关技术用到日常应用研发,以提高生产力,快速迭代产品,跟业务一起给用户最好的体验。行业无关化架构是针对高德应用的特点提出的,核心是解决研发效率的问题,业务上让更多的行业快速接入高德,技术上尝试元数据驱动+多租户隔离,屏蔽行业变化对底层的影响,做到行业无关化架构,以进一步提高生产力。随着“高德地图”成为用户出行必备工具之一,其中数据的存储、加密、快速检索和绝对安全就非常重要,是我们工作的重点,目的是让用户在任何时刻、不同的端设备上都能快速的获得自己想要的真实世界的信息,让用户出行更美好。随着业务后续发展很快就会进入万亿时代,无论是存储成本,还是针对数据查询的性能来讲,数据治理对我们来说显得尤其重要,我们要让数据快速发挥出价值,带给用户最真实最实时的数据,还不会过度的浪费成本。OceanBase是由蚂蚁集团完全自主研发的国产原生分布式数据库,始创于2010年。OceanBase已连续10年稳定支撑双11,创新推出“三地五中心”城市级容灾新标准,在被誉为“数据库世界杯”的TPC-C和TPC-H测试上都刷新过世界纪录。自研一体化架构,兼顾分布式架构的扩展性与集中式架构的性能优势,用一套引擎同时支持OLTP和OLAP的混合负载,具备数据强一致、高扩展、高可用、高性价比、高度兼容Oracle/MySQL、稳定可靠等特征,不断用技术降低企业使用数据库的门槛。经过长时间的调研和测试对比,我们决定采用性价比最佳的OceanBase来迎接高德万亿(条)数据时代!读者收益正因为真实世界的数据存储量大,高德采用的OceanBase来解决,此篇文章会让大家看到OceanBase在高德的实践体会,我们会从不同的视角去诠释整篇文章。整体如下:服务端的视角1)我们为什么选择OceanBase?2)OceanBase在高德落地过程中分应用的融合方案、痛点和收益?3)OceanBase在高德应用中未来的规划?读者的视角1)高德为什么选择OceanBase,背后选择的原因是什么?2)高德怎么用OceanBase的,方案是什么,遇到了哪些问题,解决方案是什么?3)OceanBase在高德应用场景中,表现结果怎么样,稳定性和性能怎么样,降本效果怎么样?4)结合我们自己的场景哪些可以用OceanBase帮我们解题?以下用OB代替“OceanBase”,整篇文章也会围绕几点来贯彻核心思想:1)了解选择OceanBase的原因,了解OB的落地实践2)了解分布式数据库和OB相关技术内幕3)作为工具文章,在犹豫是否选择OB的时候会给大家一些思路1.为什么选择OB阿里云提供的数据存储产品有很多,
2023年8月1日
其他

干货!如何在高德地图实现自动巡航效果?

介绍在高德地图上实现自动驾驶导航界面的自动巡航效果,只要在3DTiles图层上展示主体车辆(后文简称为NPC)沿着既定的路径平滑移动就可以了,这里不用考虑NPC与场景碰撞问题,因此可以直接把NPC和场景拆分为两个独立图层,本文着重介绍一下NPC移动要如何实现。需求分析首先,我们需要获取数据并生成移动路径,然后绘制巡航轨迹。为了实现巡航效果,我们需要加载并放置模型,并在每一帧重新设置模型的位置和正面朝向。同时,随着模型移动,我们需要更新镜头的位置和朝向,于是提取出如下的实现步骤。1.获取数据,生成移动路径,并绘制巡航轨迹;2.加载、放置、调整模型;3.移动模型,在每一帧重新设置模型的位置、正面朝向;4.随着模型移动,更新镜头的位置、以及镜头看向的位置;5.最后让NPC图层和3DTiles图层尽量融合。技术点分析主体沿轨迹移动threejs实现沿着轨迹移动有两种做法,方法一是预先计算好整条路线里,每个的关键节点之间的中间插值点(如图中绿点所示),得到一系列的坐标之后,只需要在每一帧将主体移动到插值点的位置就可以了,这个方法需要插值点足够密集,否则最终效果会不够平滑,车子会像电子跃迁一样跳着走。另一个方法就是动态计算,我们每次只考虑两个关键点之间的时间与位置关系,即输入起点A、终点B、移动的总时间、移动的速度曲线(匀速、加速、缓动缓停等等),然后就可以根据当前时刻在总时长的进度获得NPC应该在的位置。镜头跟随为了实现物体的运动和镜头跟随,我尝试了高德数据可视化API提供的ViewControl镜头动画,以及基于threejs的移动方案,最终选择了threejs和高德API结合的方案,以下是技术方案的对比:两条路线的焊接本文演示页面的路径数据使用高德,拖拽导航插件AMap.DragRoute。通过鼠标拖拽已有导航路径上的任一点,可以实现导航起点、途经点、终点的调整,系统根据调整后的起点、途经点、终点信息,实时查询拖拽后的导航路径。然而发现返回的路径数据里,并不包括两段路线之间的连线,这种情况通常出现在红绿灯、十字路口处,需要自己处理。为避免干扰文章主题,这里只要知道有这个情况就行,路线焊接的具体编码以后再讲。直接用线段连接LineA的终点和LineB的起点,会导致物体移动朝向异常,镜头转动也比较突兀,因此当两个端点距离大于某个阈值时,需要提供一个方法可以自动“焊接”两条线段。平滑焊接路线的目的是为了让物体移动更加平滑,我们可以选择预先处理,或者实时处理,视情况而定。这里会遇到几种情况,我们分别处理:LineA和LineB延长线必定相交,需要生成一条平滑的贝塞尔曲线连接这两个端点;LineA和LineB处于同一条直线,只需要将两个端点连接起来即可;LineA和LineB平行,则需要生成半个圆角矩形的边线将端点连接起来。代码实现1.获取数据,生成移动路径,并绘制巡航轨迹;//最终路径数据const
2023年7月13日
其他

走近高德驾车ETA(预估到达时间)

trace级评测通过对比用户实走时长和ETA行前预测的结果,可以对用户全行程轨迹的ETA质量进行评估。使用trace级评测,可以监控trace的MSE、MAE、MAPE、优良率、恶劣率等指标。6.
2023年7月6日
其他

ARHUD驾车导航技术概览

有着紧密联系。人的眼睛也是有焦距的,看远和看近的焦距不同,因此如果虚像距离不够远,在看向较远的地方时ARHUD的显示会由于眼睛焦距的原因而虚化。所以,虚像距离
2023年6月29日
其他

高德正式发布HQ Live MAP,基于视觉众源技术可实现数据实时更新

MAP已可覆盖全国范围内的高速路和城市快速路,并已面向行业开放合作;而针对城区普通道路,高德HQ
2023年6月20日
其他

高德地图作业平台低代码实战

}}以上saveEffect对象,用户仅需指定目标值路径,插件会自动解析路径的语法,并将activeKey所有父级结构生成新的引用,最后自动调用setState实现组件更新;图
2023年5月31日
其他

我们是否对现代前端开发框架过于崇拜了?

“变量”。为了让事情办好,我们需要培养起一个技术能力高的团队,开发者们都有意识的去关注代码质量,关心技术架构,思考写出更好的代码。这是一个最原始最有效的办法,当然这也是最难,成本最高的方案。2.
2023年5月25日
其他

从业务开发中学习和理解架构设计

前言在软件开发领域经常会接触到架构这个词汇,在我最初的印象中,架构是一个很高级的词汇。它似乎代表了复杂的工程结构、高层次的抽象设计、最新的开发语言特性等等。对于当时只专注于写业务逻辑的我来说,不免心生对架构的敬畏。工作中对架构的讨论很少,出现则是一些高级晦涩的描述,但是从来没有人清楚地解释过架构做了哪些事。所以,架构到底是什么?架构和业务之间是什么关系?当我们看一些关于架构的书籍或者资料,不免会接触到一些对架构的定义或者描述。比如:约束、规则、边界、实体关系、模型定义等等。但是懂得这些概念并不能帮助我们设计出来更好的架构,当我们套用设计原则进行架构设计时,不免会觉得空洞乏味,总觉得少了点什么。虽然我们为架构设计做了很多事,但是似乎什么也没做,因为只针对架构设计本身来说,很难说清楚它所产生的价值。所以,好的架构设计的出发点是什么?好的架构应该是什么样的呢?在上个财年,我有一个任务:将我们当前工程的代码进行重新的拆分和组合,以厘清模块间的关系,控制工程中模块依赖的复杂度。这看起来是一个很简单的工作,找到一个不同于当前的且更合理的目录划分方案,就可以尝试落地实施。但是这又是一个很困难的工作,因为我们首先要回答有哪些模块、模块间是什么依赖关系的问题。其实,回到任务的本身,我们并不是只想对代码文件进行重新组织和划分,而是要将业务模块解耦合,定义并明确业务模块间的依赖规则。面对这样的目标,我们需要首先从业务视角更清晰地定义和划分模块,然后从工程结构视角确定模块间的关系。所以,代码目录调整实际上是一个对业务场景、工程结构理解和设计的问题。代码目录的结构代表了我们的工程结构,也是业务场景划分的抽象描述,更是模块定义以及模块依赖关系的展现。在设计代码目录划分方案的过程中,看了一些工程结构设计的资料,读了一些关于架构设计的书。对于架构有了一些理解。本文是对这段学习和任务完成过程的思考和沉淀。我希望能够回答上面提到的几个问题:1.架构到底是什么?架构和业务之间的关系2.好的架构的设计出发点是什么?好的架构应该是什么样的什么是架构架构的定义首先,架构是一个汉语词汇。它的定义是:人们对一个结构内的元素及元素间关系的一种主观映射的产物。从这个定义可以看出,传统的架构在描述一个系统中有什么元素,以及元素之间的关系。在建筑领域,架构也用于描述建筑物的结构。作为一个计算机领域的词汇,架构的定义是:有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。实际上也在定义有什么以及关系的问题。从工程化解读架构的作用无论是在建筑领域还是计算机领域,我们通常会用工程描述这类工作的项目。比如工程技术中心部门,工程类程序员等。我们可以称之为工程的工作项目,包括:建筑工程、军事工程、水利工程、生物工程、软件工程等。而我们在完成项目的过程中,进行架构设计实际上就是推进实施工程化的一部分。那么进行工程架构设计会考虑哪些因素,它对实施工程化的作用是什么呢?假设,读者你现在是一位建筑工程师,负责建造一栋房屋。虽然我们没有真正的盖过房子,但是在进行房屋的整体结构设计时,你一定会关心这些:房屋用途。首先要明确这栋房子是干什么用的房屋层数。和用途紧密相关,不同用途的房子层数也是不一样的房屋外观。定义这栋房屋应该长什么样房屋的布局。定义这栋房屋应该怎么更好地被使用,等等我们称上面这几个属性是房屋的基础能力。作为一个靠谱的建筑工程师,你一定还会着重地设计这些:1.水电走向。这很重要。保证房屋的安全性和使用的便捷。2.承重和抗压。房屋的使用寿命很大程度上依赖于此,等等。我们称上面的这几个属性是安全性和性能。另外一方面,你大概不会关心房屋的装修风格、地板颜色、衣柜品牌等等因素。我们称这些为应用细节。总结来说,进行房屋的工程架构设计时更多地关系底层设计,而不在乎过多的技术细节。所以,我们可以给架构的作用下一个定义:在明确用途的基础上定义使用的规则和约束,提供了基础的支撑能力,并保障安全性、性能和使用周期。软件架构设计的原则和要求到目前为止,我们已经明确了在做架构设计时必须遵循的前提和原则:明确用途。此外也对架构设计提出要求:提供基础能力、保障安全性、性能等。同样的,引申到计算机领域。当我们进行软件架构设计时也必须遵循的原则有:架构设计一定要从业务场景出发这实际上就是明确用途的大前提。架构设计一定是要从业务出发、面向业务变化的。只有在我们明确了业务场景和目标后,在此基础上进行的架构设计才是能真正产生业务价值的。一个脱离了业务场景而设计的架构,无论多么新颖和高级,也绝不是一个好的架构。架构设计一定要落到业务场景中去验证我们不能只从基础能力、安全性或者性能方面去评判一个架构的好坏。架构对业务开发的支持能力,面向业务变化时的灵活度以及持续演进能力等都是评判的因素。此外,我们要求软件架构必须是灵活的,能够满足未来业务持续发展的要求。业务场景是不断变化的,架构也要具有跟随业务形态不断演进的能力。架构设计的核心是保证面向业务变化时有足够灵活的响应力,这要求架构设计能够识别到业务的核心领域。所以,无论是面向当前还是面向未来,架构设计都需要真正地识别和理解业务问题。架构设计的原则本章节介绍几个软件架构设计时可以遵循的原则,实际上在进行功能模块设计时也可以参考这些设计原则。SRP
2023年5月18日
其他

2022 春招 | 阿里高德算法面试经验宝典(完整流程 助力轻松拿offer)

面试是一个跟别人交流讨论的过程,在这个过程中要保持谦虚友好,但是当遇到对方极度不友好的时候,可以提出自己的看法,但是没必要“以牙还牙”。以体现我们新一代年轻“知识分子”的气度和格局。4.2
2021年3月5日
其他

春招专栏 | AI在出行场景的应用实践:路线规划、ETA、动态事件挖掘…

前言:又到春招季!作为国民级出行服务平台,高德业务快速发展,大量校招/社招名额开放,欢迎大家投递简历,详情见文末。为帮助大家更了解高德技术,我们策划了#春招专栏#的系列文章,组织各业务团队的高年级同学以科普+应用实践为主要内容为大家做相关介绍。本文是#春招专栏#系列的第1篇,根据高德机器学习研发部负责人damon在AT技术讲坛所分享的《AI在出行领域的应用实践》的内容整理而成。在不影响原意的情况下对内容略作删节。AT技术讲坛(Amap
2021年3月5日
其他

2020高德技术年刊:18万字、750页+,智慧出行最佳技术实践都在这了

在2021年春节即将到来之际,我们精选了几十篇高德技术的干货文章及数篇国际顶会论文,制作成了一本厚达750页+的电子书,作为新年礼物赠送给大家。
2021年2月7日
其他

高德地理位置兴趣点现势性增强演进之路

因此,第一步我们需要建设人地关系,找出所谓的关键群体,称之为内部群体,是指:对POI有依赖的群体,这种人地关系,我们称之为内部关系,其它均为外部关系。
2021年1月8日
其他

【高德AAAI2021论文解读】LRC-BERT:对比学习潜在语义知识蒸馏

MNLI-mm,QQP,QNLI上分别提高0.3%,0.8%,0.6%,0.6%。(3)LRC-BERT对比LRC-BERT1s在MRPC,RTE,CoLA分别提高4%,12.1%,14.9%。
2020年12月30日
自由知乎 自由微博
其他

准!武汉大学和高德组队 拿下国际顶赛“车载环境下的手机定位”组别冠军

如何拥有更精准的手机导航体验?现在人们越来越习惯在出门的时候用手机导航路线。体验比起前些年更快更准,除了手机硬件性能的提升以外,一整套技术方案起到了关键作用,而其中定位又是最基本的基础技术。这也是高德技术团队研究的重要领域。在刚结束的定位领域国际顶会IPIN2020比赛中,武汉大学和高德智能技术中心定位研发部联合组队参与了Track
2020年12月24日
其他

业内首发车道级导航背后——详解高精定位技术演进与场景应用

导读10月30日,华为联合高德、千寻发布了业内首家面向手机用户的车道级导航应用。在这背后是高精度定位技术不断演进发展,最终走向成熟量产的过程。本文将结合高德地图在车道级导航及自动驾驶等领域的工作,分享我们对于高精度定位技术演进的思考,以及在高精定位实际落地应用中的一些实践。相关阅读藏不住了!我和华为Mate40一起攒了个高科技一、高德定位技术概述定位技术是支撑高德地图的导航、交通等核心业务的关键基础技术,他的主要任务是确定物体(通常是人或车)在一个相对固定的坐标系中的位置和姿态。我们用手机高德地图作为例子来说明都有哪些技术在实际应用场景中发挥作用。
2020年11月6日
其他

关于卫星定位,你想知道的一切

5G和北斗,是国之重器。北斗作为卫星定位系统,目前在国际上已处于领先地位,而且已经渗透到我们工作和生活的方方面面。本文将简要介绍卫星定位的原理和应用情况,方便大家对北斗、卫星定位有更多的了解。卫星定位的原理卫星定位系统的英文是Global
2020年10月30日
其他

阿里巴巴高德地图首席科学家任小枫:高精算法推动高精地图落地

2020云栖大会于9月17日-18日在线上举行,阿里巴巴高德地图携手合作伙伴精心组织了“智慧出行”专场,为大家分享高德地图在打造基于DT+AI和全面上云架构下的新一代出行生活服务平台过程中的思考和实践,并重点分享了「高精地图、高精算法、智能时空预测模型、自动驾驶、AR导航、车道级技术」等话题。
2020年9月24日
其他

Android端代码染色原理及技术实践

导读高德地图开放平台产品不断迭代,代码逻辑越来越复杂,现有的测试流程不能保证完全覆盖所有业务代码,测试不到的代码及分支,会存在一定的风险。为了保证测试全面覆盖,需要引入代码覆盖率做为测试指标,需要对SDK代码进行染色,测试结束后可生成代码覆盖率报告,作为发版前的一项重要卡点指标。本文小结了Android端代码染色原理及技术实践。相关阅读:iOS代码染色原理及技术实践JaCoCo工具JaCoCo有以下优点:支持Ant和Gradle打包方式,可以自由切换。支持离线模式,更贴合SDK的使用场景。JaCoCo文档比较全面,还在持续维护,有问题便于解决。JaCoCo主要是通过ASM技术对Java字节码进行处理和插桩,ASM和Java字节码技术不是本文重点,感兴趣的朋友可以自行了解。下面重点介绍JaCoCo的插桩原理。
2020年9月14日
其他

手机端上线,破解高架区域偏航检测难题,高德提出工业级轻量模型ERNet

则要求不同类别的样本都要在特征空间上距离较远,同类别的样本都要在特征空间上距离较近,而不管样本是否属于同一个局部区域。根据之前的分析,研究者提出了一个特征识别方法。该方法基于
2020年9月11日
其他

iOS代码染色原理及技术实践

背景随着业务的迅速发展,业务代码逻辑的复杂度增加。QA测试的质量对于产品上线后的稳定性更加重要。一般QA测试的工作流程分为两大项:自动化测试和人工测试。这两种测试后都需要得到代码覆盖率。自动化测试的覆盖率,在双端都有比较成熟的方案。本文着重介绍人工测试过程中,怎么得到对应的代码覆盖率。涉及到的技术主要是代码染色。以下会先介绍整体的工作流程,再对涉及到的技术一一阐述。染色流程流程图中涉及到了双端的关键节点以及技术点。我们重点介绍编译阶段。编译阶段:生成染色包
2020年8月28日
其他

黑科技|你们要的手机AR导航来了!

高德地图最新发布了v10.60新版本,上线了手机端的AR驾车导航功能,可为用户带来更加直观的路线、方向和车道级实景导航体验。手机端AR驾车导航很多人在驾车时,即使开着地图导航,可能也会在立交桥上认错路口,在高速路上错过匝道,或者不知道该何时并线……对这些“看不懂”2D电子地图的人来说,AR导航的出现或许是一个福音。高德AR导航借助智能的图像识别技术以及专业的交通大数据和车道级导航引擎,可直接在拍摄的现实道路画面中,实时呈现直观的3D导航指引,大幅降低驾驶人对传统2D电子地图的读图成本,辅助用户在转向、岔路口、变换车道等多种关键场景下,更快更准确地做动作决策。AR导航在复杂路口提供直观的导航指引以新手司机经常面临的并线问题为例,高德AR导航依据导航规划、当前定位、车速、路况等动静态数据和对车道的图像识别,会智能地在合适时机给出变道并线提醒,用户在保障安全的前提下跟着箭头行驶即可。
2020年8月24日
其他

高德云图异步反应式技术架构探索和实践

优势。苹果地图请求分发服务云图苹果地图请求分发服务负责对苹果地图用户请求进行处理、分发和结果聚合,以支持苹果海外搜索与导航,其对并发能力、服务耗时和稳定性有着较高要求。在技术选型时考虑到
2020年6月30日
其他

高德KDD2020论文解读|混合时空图卷积网络:更精准的时空预测模型

计划中交通流量来自导航数据,反映了用户出行意图中蕴含的未来交通流量。由于拥有海量用户,高德地图中的导航规划数据能够较为全面地反应正在发生的通行需求,并且信息粒度较事件级别的特征更精细。
2020年6月24日
其他

深度学习在高德ETA应用的探索与实践

arrival,预估到达时间)会直接显示给用户,这是用户关心的核心点之一。用户给定起点和终点后,我们的任务是预测起终点的ETA,ETA的准确率越高,给用户带来的出行体验越好。
2020年6月9日
其他

深度学习在高德POI鲜活度提升中的演进

高德地图基于导航、搜索或点击等操作频度对POI进行了热度排名。头部的热门POI如果过期但未及时发现对用户体验的伤害更大。2.0版本模型升级的主要目标便是进一步提升头部热门段位的过期POI发现能力。
2020年5月8日
其他

高德车载导航的差分更新优化实践

导读随着车载设备联网化,越来越多的车载设备从离线走到了线上。高德车载导航也早已从过去的离线安装包更新演进到了在线迭代更新。但原车载设备的Android硬件配置远低于手机,主要表现在处理器主频低、内存和存储空间有限,导致车载导航在车机上会出现无法下载新版本数据包、更新过程耗时长导致卡顿的情况,对导航应用的性能提出了要求。为提高用户体验,高德技术团队立项解决了该问题。本文小结了高德车载导航在版本自更新演进过程中二进制差分解决方案的性能优化实践。差分更新方案比较对于应用程序的版本更新迭代,除了分发全量的安装包,还有一种更低成本的方式是分发增量包,即通过下发前后两个版本的差异部分(这个过程下面简称Diff),然后在客户端对原版本进行补丁更新(这个过程下面简称Patch)。因此也叫差分更新。业内比较流行的差分方案主要有:
2020年3月23日
其他

卫星影像识别技术在高德数据建设中的探索与实践

高德地图视觉攻坚团队火热招聘中:计算机视觉、图像识别、点云、三维、AR、视频等算法类职位正在向你招手~~职位地点:北京,西雅图,湾区。简历投递到ruby.JL@alibaba-inc.com
2020年3月23日
其他

高德车载导航自研图片格式的探索和实践

背景随着近年来车内多媒体设备从无屏向有屏的发展,市场上出现了各种形状、尺寸和分辨率的车机屏幕,其丰富程度远远超过Android适配的手机屏幕。高德车载导航过去采用的多套UI
2020年3月6日
其他

导航定位向高精定位的演进与实践

上述算法在高德地图手机APP上实现了落地,为驾车导航提供准确的定位匹配结果,用于导航的引导播报等功能。对比原来使用策略的地图匹配方法,HMM算法在匹配准确率和稳定性上都有显著提升。
2020年3月6日
其他

高德算法工程一体化实践和思考

项目初期,需要快速试错和策略优化。此时,业务需求的QPS往往不高(
2020年2月27日
其他

机器学习在高德用户反馈信息处理中的实践

情报定位主要是找到问题发生的位置信息即定位坐标:①分析用户反馈问题时戳的位置点即戳点的有效性,②查看用户上报问题时车辆行驶的位置即自车位置,③分析用户使用高德软件过程中的规划和实走轨迹等日志信息;
2020年1月3日
其他

UI自动化技术在高德的实践

一、背景汽车导航作为ToB业务,需要满足不同汽车厂商在功能和风格上体现各自特色的需求。针对这种情况,传统的UI开发方式,基本上是一对一的特别定制。但是这种方式动辄就要500~600人日的工作量投入,成为业务发展的重要瓶颈。因此,能够对导航UI进行快速定制开发,成为汽车导航业务UI开发的必解课题。高德地图技术团队希望打造一套快速精准的UI解决方案,通过自动化的方式生产UI代码,解放研发生产力的同时满足客户需求。二、方案调研为了避免重复造轮子,我们调研了行业上现有的UI自动化生成方案。主要分为两种:Sketch插件方案:该方案是基于Sketch开发插件,利用SketchAPI读取出图层信息转换DSL,主要代表作有imgcook、Dapollo等。优势:从SketchAPI可以读取到非常详细的信息,足以生成高质量的界面代码。劣势:要求效果图必须使用Sketch制作,并且对效果图会有一定的制图要求。图片转代码方案:该方案是通过经训练的深度神经网络,从截图或手稿直接生成UI代码,主要代表作有pix2code、Sketch2Code等。优势:简单粗暴,通过截图或手绘就可以生成界面资源代码。劣势:图层细节丢失,识别准确率欠佳、自适应不好。调研总结:Sketch插件方案更加适合工程化使用,图片转代码方案更加适合用于快速生产原型。目前行业上并没有能完全满足车载导航业务使用的UI自动化解决方案。基于以上调研结果,我们决定基于Sketch插件方案,自研适合高德汽车业务需求的UI自动化方案。三、技术方案与实践结合Sketch插件方案的工作流以及高德内部的人员体制,我们将UI自动化解决方案在高德内部的使用过程拆分成4大环节,如下图所示:制作环节提供效果图编辑的能力:制作带有主题信息的控件库供设计师拖拽使用。对生成环节需要的信息进行输入(比如布局、控件、动画等)。生成环节提供资源的生成能力:生成xml、drawable、png、asvg等资源,同时打包成可执行程序,用于验证环节。对生成资源进行性能优化(如控件智能合并、png图片无损压缩,asvg生成)。验证环节提供多设备、多分辨率的还原度精准验证能力:效果图质量检测能力,提前发现效果图像素偏差,不符合设计规范等问题,降低后期成本。布局意图标注能力,通过简单的布局意图标注后,能实现把效果图拉伸成任意分辨率,解决设计师和开发人员沟通不流畅问题,降低沟通成本。对比验证能力,通过坐标对比、截图和效果图差分对比等方式,实现还原度的像素级验证,保障资源质量。应用环节客户端工程资源管理能力:通过一系列工具链,简化资源对接成本(如资源导入工具、重复资源清理工具等)。开发DHMI主题定制平台,提供给设计师或客户,实现可视化的快速修改客户端主题,自主验证的能力。满足客户不断增长的主题定制需求,实现千人千面。四、技术难点1、控件体系Sketch的图层只有text、shape两种类型,分别可以对应上Android的TextView和ImageView,但是只有这两种控件无法满足业务需求。参考Android控件体系中基础控件+自定义控件的方式,我们对这两种类型图层进行组合+继承,得到两种新的控件类型。基础控件:Android原生控件集合,如TextView、EditText、ProgressBar等,能满足界面搭建的基本需求。扩展控件:
2019年12月20日
其他

高德网络定位算法的演进

对于每一个单独的算法模块,都采用类似下面的神经网络模型对每个候选网格进行打分,再使用LTR损失函数作为目标进行训练,从而获得神经网络的参数。在特征方面,同时考虑以下三类:
2019年12月20日
其他

基于深度学习的图像分割在高德的实践

的基础上可以从任意尺寸的输入进行逐像素的分类。我们也在第一时间将其落地到高德自身的应用场景中,例如文字区域的分割。自然场景下的文字由于其背景、光照复杂,文字朝向、字体多样,使得人工构建特征十分困难。
2019年12月13日
其他

系统重构的道与术

那有些不好量化的目标怎么做到可衡量呢?拿提升服务高可用性为目的的重构项目为例,目标确实不好量化,针对这样的问题可以以具体事件为衡量标准,比如实现机房故障用户无感知,或底层故障自动降级和恢复等
2019年12月13日
其他

高德APP全链路源码依赖分析工程

的方式引用其它模块(bundleName)的某个文件(fileName)的某些标识符(identifierName),我们就需要根据这表达式来定位到具体的标识符。
2019年12月6日
其他

深度学习在商户挂牌语义理解的实践

现实世界中,商户的挂牌各式各样,千奇百怪,如何让机器正确的理解牌匾语义是一个难点。商户挂牌的文本种类有很多,如下图所示,我们可以看到一个商户牌匾的构成。
2019年12月6日
其他

高德JS依赖分析工程及关键原理

返回的,那就没有办法了。不过无需过度考虑这些情况,直接写字符串字面量的方式已经能满足绝大多数场景了,之后计划通过流程管控+编译器检验对这类写法进行限制,同时在运行时进行收集报警,要求必需显式引用,以
2019年11月29日
其他

地理文本处理技术在高德的演进(下)

从用户输入中识别路径规划意图,并提取出对应的起终点,这是一个典型的NLP任务。早期的路径规划模块使用的是模板匹配的方式,这种方式开发成本低,能解决大部分常见的路径规划问题,如上面这种“从A
2019年11月29日
其他

地理文本处理技术在高德的演进(上)

在省略模块,我们完成了规则到机器学习的升级,引入了成分以外的其他特征,提升了模型的鲁棒性。同时并且利用离线深度学习的方式进行样本构造的循环,提升了样本的多样性,使得模型能够更加接近crf的天花板。
2019年11月21日
其他

高德服务单元化方案和架构实践

有了路由表,接下来就要解工程化应用的问题,性能、空间、灵活性和准确率,以及对服务稳定性的影响这几个方面是要进行综合考虑的,首先考虑外部存储会增加服务的稳定性风险,后面我们在BloomFilter
2019年11月21日
其他

高精地图中地面标识识别技术历程与实践

采用上述方案需要将点云投影为2D空间,中间有一定的归一化量化操作,不可避免的会损失一些信息,最直观的是在一些点云反射率较低的地方容易造成目标丢失。如果能够在原始3维点云上提取那么这些问题就迎刃而解。
2019年11月14日
其他

高德客户端及引擎技术架构演进与思考

随着高德业务的快速发展,业务上持续扩品类,需求量激增,高德地图从最初的驾车导航,到后来的步行、骑行、摩托车导航等等,App所承载的业务发展非常快,而原有的架构治理模式的问题也逐渐暴露出来。
2019年11月14日
其他

持续交付体系在高德的实践历程

当基础的持续交付流程落地后,为了满足业务上对灵活性的要求,目前我们也在尝试通过自定义流水线来进行多环境的分发与部署,从而在保证主要阶段流转有管控的同时,增加部署的灵活性,以适应不同的业务形态。
2019年11月6日
其他

前端内存优化的探索与实践

个属性)。而JS中的数组,不仅是变长的,可以随意添加删除数组元素,每个元素的数据类型也可以完全不一样,更不一般的是,这个数组还可以像普通的对象一样,在上面挂载任意属性,这都是为什么呢?
2019年11月6日
其他

高德引擎构建及持续集成技术演进之路

即时性:构建启动后会发送钉钉消息,消息除了概要信息外还附加了构建的链接等,开发者可以点击链接跟踪进度情况。构建成功或失败也都会发送消息,从而使得开发者可以及时进行下一步工作或处理构建错误;
2019年11月6日
其他

地图数据赋能ADAS的探索与实践

识别传感器容易受雨、雪、雾、霾等异常天气影响而失效,然而越发在这种天气,对驾驶安全的要求就越高,相应的ADAS和AD系统发挥的作用也会越发重要,如果此时传感器失效,对驾驶安全和体验带来的影响也越大。
2019年10月31日
其他

高德亿级流量接入层服务的演化之路

上图是我们做的路由计算核心逻辑图。具体而言注意以下几点:1)单元映射,用户划分分组、分组指向单元映射的方式完成用户到单元的绑定关系,单元切换时只切换分组到单元的映射关系;2)路由计算,多数情况下通过
2019年10月31日
其他

车道线检测在AR导航中的应用与挑战

多样丰富的场景给基于视觉的算法带来了巨大的挑战,本文将对车道线检测方案进行讲述,并以是否使用深度学习为界,分为以下两个大的体系来介绍:基于特征工程的传统视觉方案和基于图像分割的深度学习方案。
2019年10月23日
其他

高德在提升定位精度方面的探索和实践

我们做了三个方面的优化,第一是分级排序。把定位过程变成一个显微镜步骤,先做一个很粗略的定位,然后逐步收敛到很精确的位置。粗略定位的时候可以用很大的网格,用很少的特征,快速过滤掉一些不可能的位置。
2019年10月23日