字节码技术在模块依赖分析中的应用

背景

近年来,随着手机业务的快速发展,为满足手机端用户诉求和业务功能的迅速增长,移动端的技术架构也从单一的大工程应用,逐步向模块化、组件化方向发展。以高德地图为例,Android 端的代码已突破百万行级别,超过100个模块参与最终构建。

试想一下,如果没有一套标准的依赖检测和监控工具,用不了多久,模块的依赖关系就可能会乱成一锅粥。

从模块 Owner 的角度看,为什么依赖分析这么重要?

  • 作为模块 Owner,我首先想知道“谁依赖了我?依赖了哪些接口”。唯有如此才能评估本模块改动的影响范围,以及暴露的接口的合理性。

  • 我还想知道“我依赖了谁?调用了哪些外部接口”,对所需要的外部能力做到心中有数。

从全局视角看,一个健康的依赖结构,要防止“下层模块”直接依赖“上层模块”,更要杜绝循环依赖。通过分析全局的依赖关系,可以快速定位不合理的依赖,提前暴露业务问题。

因此,依赖分析是研发过程中非常重要的一环。

常见的依赖分析方式

提到 Android 依赖分析,首先浮现在脑海中的可能是以下这些方案:

  • 分析 Gradle 依赖树。

  • 扫描代码中的 import 声明。

  • 使用 Android Studio 自带的分析功能。

我们逐个来分析这几个方案:

1. Gradle 依赖树

使用 ./gradlew :<module>:dependencies --configuration releaseCompileClasspath -q 命令,很容易就可以得到模块的依赖树,如图:

在这里插入图片描述

不难发现,这种方式有两个问题:

  • 声明即依赖,即使代码中没有使用的库,也会输出到结果中。

  • 只能分析到模块级别,无法精确到方法级别。

2. 扫描 import 声明

扫描 Java 文件中的 import 语句,可以得到文件(类)之间的调用关系。

因为模块与文件(类)的对应关系非常容易得到(扫描目录)。所以,得到了文件(类)之间的依赖关系,即是得到了模块之间文件(类)级别的依赖关系。

这个方案相比 Gradle 依赖扫描提升了结果维度,可以分析到文件(类)级别。但是它也存在一些缺点:

  • 无法处理 import * 的情况。

  • 扫描“有 import 但未使用对应类”的场景效率太低(需要做源码字符串查找)。

3. 使用 IDE 自带的分析功能

触发 Android Studio 菜单 「Analyze」 -> 「Analyze Dependencies」,可以得到模块间方法级别的依赖关系数据。如图:

在这里插入图片描述

Android Studio 能准确分析到模块之间“方法级别”的引用关系,支持在 IDE 中跳转查看,也能扫描到对 Android SDK 的引用。

这个方案比前面两个都优秀,主要是准确。但是它也有几个问题:

  • 耗时较长:全面分析 AMap 全源码,大约需要 10 分钟。

  • 分析结果无法为第三方复用,无法生成可视化的依赖关系图。

  • 分析正向依赖和逆向依赖,需要扫描两次。

总结一下上述三种方案:Gralde 依赖基于工程配置,粒度太粗且结果不准。“Import 扫描方案”能拿到文件级别依赖但数据不全。IDE 扫描虽然结果精准,但是数据复用困难,不便于工程化。

为什么要使用字节码来分析?

在这里插入图片描述

参考 Android 构建流程图,所有的 Java 源代码和 aapt 生成的 R.java 文件,都会被编译成 .class 文件,再被编译为 dex 文件,最终通过 apkbuilder 生成到 apk 文件中。图中的 .class 文件即是我们所说的 Java 字节码,它是对 Java 源码的二进制转义。

在 Android 端,常见的字节码应用场景包括:

  • 字节码插桩:用于实现对 UI 、内存、网络等模块的性能监控。

  • 修改 jar 包:针对无源码的库,通过编辑字节码来实现一些简单的逻辑修改。

回到本文的主题,为什么要分析字节码,而不是 Java 代码或者 dex 文件?

不使用 Java 代码是因为有些库以 jar 或者 aar 的方式提供,我们获取不到源码。不使用 dex 文件是因为它没有好用的语法分析工具。所以解析字节码几乎是我们唯一的选择。

如何使用字节码分析依赖关系?

要得到模块之间的依赖关系,其实就是要得到“模块间类与类”之间的依赖关系。而要确定类之间的关系,分析类字节码的语句即可。

1. 在什么时机来分析?

了解 Android 构建流程的同学,应该对 transform 这个任务不陌生。它是 Android Gradle 插件提供的一个字节码 Hook 入口。

在 transform 这个任务中,所有的字节码文件(包括三方库) 以 Input 的格式输入。

以JarInput 为例,分析其 file 字段,可得到模块的名称。解析 file 文件,即可得到此模块所有的字节码文件。

在这里插入图片描述

有了模块名称和对应路径下的 class 文件,就建立了模块与类的对应关系,这是我们拿到的第一个关键数据。

2. 使用什么工具分析?

解析 Java 字节码的工具,最常用的包括 Javassit,ASM,CGLib。ASM 是一个轻量级的类库,性能较好,但需要直接操作 JVM 指令。CGLib 是对 ASM 的封装,提供了更高级的接口。

相比而言,Javassist 要简单的多,它基于 Java 的 API ,无需操作 JVM 指令,但其性能要差一些(因为 Javassit 增加了一层抽象)。在工程原型阶段,为了快速验证结果,我们优先选择了 Javassit 。

3. 具体方案是怎样的?

先看一个简单的示例,如何分析下面这段代码的调用关系:

1: package com.account;
2: import com.account.B;
3: public class A {
4:     void methodA() {
5:         B b = new B(); // 初始化了 Class B 的实例 b
6:         b.methodB();   // 调用了 b 的 methodB 方法
7:     }
8: }

第1步:初始化环境,加载字节码 A.class,注册语句分析器。

// 初始化 ClassPool,将字节码文件目录注册到 Pool 中。
ClassPool pool = ClassPool.getDefault();
pool.insertClassPath('<class文件所在目录>')
// 加载类A
CtClass cls = pool.get("com.account.A");
// 注册表达式分析器到类A
MyExprEditor editor = new MyExprEditor(ctCls)
ctCls.instrument(editor)

第2步:自定义表达式解析器,分析类A(以解析语句调用为例)。

class MyExprEditor extends ExprEditor {
    @Override
    void edit(MethodCall m) {
        // 语句所在类的名称
        def clsAName = ctCls.name
        // 语句在哪个方法被调用
        def where = m.where().methodInfo.getName()
        // 语句在哪一行被调用
        def line = m.lineNumber
        // 被调用类的名称
        def clsBName = m.className
        // 被调用的方法
        def methodBName = m.methodName
    }
    // 省略其它解析函数 ...
}

ExprEditor 的 edit(MethodCall m) 回调能拦截 Class A 中所有的方法调用(MethodCall)。

除了本例中对 MethodCall 的解析,它还支持解析 new,new Array,ConstructorCall,FieldAccess,InstanceOf,强制类型转换,try-catch 语句。

解析完 Class A,我们得到了 A 对 B 的依赖信息 :


Class1Class2Exprmethod1method2lineNo
com.account.Acom.account.BNewExprmethodA5
com.account.Acom.account.BmethodCallmethodAmethodB6

简单解释如下:
类 com.account.A 的第5行(methodA方法内),调用了 com.account.B 的构造函数;
类 com.account.A 的第6行(methodA方法内),调用了 com.account.B 的 methodB 函数;

这便是“类和类之间方法级”的依赖数据。结合第1步得到的“模块和类”的对应关系,最终我们便获得了“模块间方法级的依赖数据”。

基于这些基础数据,我们还可以自定义依赖检测规则、生成全局的模块依赖关系图等,本文就不展开了。

小结

本文主要介绍了模块依赖分析在研发过程中的重要性,分析了 Android 常见的依赖分析方案,从 Gradle 依赖树分析, Import 扫描,使用 IDE 分析,到最后的字节码解析,方案逐步递进。越是接近源头的解法,才是越根本的解法。

在这里插入图片描述

关注高德技术,找到更多出行技术领域专业内容

相关推荐

让AI读懂代码需求:大模型微调训练实践及端侧运行部署

集团内部有多个微调训练的平台,譬如openLM, 魔搭平台的SWIFT等,集团外部有LLaMA-Factory,利用服务端共享的GPU集群进行训练,支持多种先进的微调算法和模型,适用于参数量大的复杂模型训练任务,但是对简单模型训练任务,希望在单机有限GPU资源下完成,并且缩短训练周期,基于这个考虑,选择了unsloth高性能训练框架。把代码知识图谱,分片存入向量数据库,通过RAG进行匹配查找,会存在召回率和准确率的问题,在实际过程中,LLM基于查询结果会存在不稳定的输出;

高德技术 790

高德沉浸式AI“云境”助力三维数字孪生

城市级数字孪生体,正是以强大仿真引擎与神经渲染等AI前沿技术基石、同时融合了(数据实时汇入环境、交通、能源、安防等)共同孕育的“智能生命体”,它超越了静态的“三维模型”,实时数据赋予了模型一系列“生命体征”,结合大数据分析与人工智能,实现对城市运行状态的动态监测、问题预警(如交通拥堵、内涝风险)、趋势推演(如人口流动、碳排放模拟)和策略优化(如信号灯配时、应急响应)。构建一个与现实城市一模一样的“镜像”,每盏路灯的能耗、每道车流的韵律、每片绿地的呼吸,都在镜像中实时搏动。

高德技术 2210

ICCV 2025|高德USP:图像生成与理解的统一自监督预训练

在将预训练模型权重适配到下游理解和生成模型时,针对图像分类任务,ViT 编码器的预训练权重可直接继承,无需额外调整,且仍然使用Class Token作为最终表征。USP 显著提升了 DiT 与 SiT 两个扩散模型的训练效率,仅用 600K 和 150K 步即可超越原始 7M 步的表现,分别加速 11.7× 和 46.6×,同时在图像识别任务中也保持了强大表示能力,具备良好的扩展性且无额外开销。同时,USP结合其他利用外部模型加速扩散模型收敛速度的方法,可以取得比单一方法更好的效果,表现出良好的正交性。

高德技术 904

生成模型双突破|高德技术如何让AI视频「更懂人」、图像「自愈」?

本文提出了首个人类感知对齐的视频运动质量评估基准 VMBench,受人类运动感知机制的启发,分层构建了五维度的运动感知评估指标 (PMM)体系和大规模的元信息引导提示生成 (MMPG)框架,覆盖了自然界中六大运动模式,为视频生成模型的运动质量评估树立了新的行业标准。传统研究侧重于特定任务的解决方案,采用设计的网络架构,使用相应的数据集对特定类型的退化进行优化。本研究提出了首个开源的、与人类感知对齐的视频运动质量评测基准VMBench,为社区提供了标准化的评测框架、可操作的诊断工具和量化的评估标准。

高德技术 1545

ICCV 2025|车道图的链式生成!高德将车道拓扑网学习革新为链式图扩展

在nuScenes和Argoverse 2数据集上进行的大量实验表明,与现有的基于检测和基于生成的方法相比,SeqGrowGraph在拓扑准确性和网络完整性方面表现出更优越的性能,通过引入类人结构化推理与序列建模,推动了车道图构建技术的发展,从而为动态环境下的自动驾驶提供精确的中心线。相比之下,SeqGrowGraph不仅提供了稳定和鲁棒的建模,还能有效合并地面实况数据中存在的冗余点,从而在构建车道图方面取得了更优越的结果,凸显了SeqGrowGraph在克服这些挑战方面的有效性和可靠性。

高德技术 977

高德测试体系智能化升级:AI驱动质量保障新范式

上面讲了通过构建生态化能力解决测试的质量、效率与管控的问题,起了一个好开始,用俗话说在“一盘棋”里,但什么时候能走到“天下大同”的局面,得一步步来,现在是 AI 博弈的一局,不敢说能“胜天半子”,但也不能 AI 过后一泻千里。事情可真不少,每个阶段就产生了完成各种“任务/工作项”的平台,以需求为事项跟踪的 Aone,以工作时序为主的五月花,现在团队项目管理的 Teambition,以测试专业为主的老 Kelude 到现在的 Aone,这还不包括有业务或团队特色的自己的任务平台。

高德技术 1502

技术思辨|AI Coding:经验壁垒正在失效,工具进化重塑编程

你能够将一个超级庞大的项目拆解成AI可以理解和逐步执行的细粒度任务,并预见在整合这些AI"零件"时可能出现的挑战和协同问题,这正是"1000倍杠杆"的起点。而"初生牛犊"则需要警惕,不能因为有了AI这个强大的工具就忽视了基础能力的培养、批判性思维的锻炼以及对问题本质的深入理解,否则可能永远停留在"能够使用AI的初学者"阶段,难以应对未来更复杂、更具挑战性的工作。能够洞察问题的本质,发现隐藏的关联,提出全新的思路,设计出AI都"想不到"的巧妙方案——这种源于人类灵感、直觉和想象力的创造力,是AI难以复制的。

高德技术 1161

全流程开源!高德3D贴图生成系统,白模一键生成真实感纹理贴图

我们团队自研的MVPainter系统,作为业内首个全流程开源的3D贴图生成方案,仅需一张参考图与任意白模,即可自动生成对齐精确、细节丰富、具备PBR属性的高质量贴图,全面提升3D内容生产效率与真实感表现,助力构建标准化、智能化的三维视觉基座。高质量数据构建与筛选流程:我们提出了一套自动化的数据筛选与增强Pipeline,针对公开3D数据中普遍存在的纹理缺失、光照,视角单一等问题,设计了贴图质量过滤、光照,视角增强等模块,用于构建一个高质量的多视角贴图训练集。

高德技术 1934

高德地图应用OceanBase单元化构建下一代在线地图服务

IEEE International Conference on Data Engineering (ICDE) 是数据库和数据工程领域的顶级学术会议之一(与SIGMOD、VLDB并成为数据库三大顶会),自1984年首次举办以来,每年举办一次。ICDE涵盖广泛的主题,包括数据库系统及其架构、数据管理与存储、大数据技术与应用、数据挖掘与知识发现、数据流处理与实时分析、分布式与并行数据库、数据隐私与安全等。本届会议接收到1518份投稿,共有300篇论文被接收发表,此外还包括10场Tutorials,11场wor

高德技术 1287

解锁高德语音包新玩法:这个六一,用孩子的声音,导航你的世界

因此,我们设计了Teacher - Force蒸馏的方案,通过同时约束蒸馏模型预测的声学特征和真实声学特征及基础模型预测的声学特征之间的误差,确保模型既可以较低难度的学习基础模型的声学输出,也可以同时保证蒸馏模型尽可能接近真实声学特征输出。第一阶段,我们首先会基于数千位高质量录音人的数据训练一个声学基础模型,模型在训练时,会对语义信息和说话人信息进行特征分离,以确保我们通过大规模数据进行预训练时可以充分实现说话人信息和语义信息的解耦,确保模型在微调阶段仅需调整少量的参数,加速模型产出的速度。

高德技术 2066

从底层重构强化学习训练框架,高德开源新方法

通过将基于组内的决策动态直接纳入标准的PG方法,GPG简化了训练过程,并显著减少了计算开销,而不削弱模型效果。这一突破为训练能够进行复杂推理的先进LLM提供了更高效的框架,从而为更具资源效率和可扩展性的人工智能系统做出了贡献。GPG开创性地从底层重构强化学习训练框架,仅需优化原始目标,解决已有方法偏差,提高训练效率。:首次揭示现有方法的奖励偏差问题,提出轻量化且高精度的梯度估计方案,显著提升策略稳定性。在一个组中,所有奖励都是0的简单问题的比例和所有奖励都是1的困难问题的比例。

高德技术 293

IJCAI 2025 | 高德首个原生3D生成基座大模型「G3PT」重塑3D生成的未来

该模型通过单张图像即可生成高质量3D Mesh,其核心创新之处在于提出了Cross-scale Querying Transformer模块,实现了3D 数据的多尺度1D Tokenizer,并且引入了Next-scale Autoregressive架构,取代了传统GPT中的Next-token Autoregressive架构,从而巧妙地解决了3D数据无序性这一长期困扰自回归建模的关键难题。它有效地解决了3D数据的无序性和多分辨率特性带来的挑战,实现了从粗到细的高质量3D内容生成,并支持多种条件模态。

高德技术 1718

高德开源数字人核心引擎,打造真实可控的音频驱动数字人

此外,我们集成了一个运动强度调制模块,显式控制表情和身体运动的强度,使肖像运动的操控不仅限于唇部动作。然而,自然说话头生成不仅需要关注与音频直接相关的唇部运动,还需关注与音频特征弱相关的其他面部组件和身体部位的运动(如眉毛、眼睛和肩膀)。为了解决这些限制,我们提出了一种新颖的框架,利用预训练的视频扩散变换模型生成高保真、连贯的说话肖像,并具备可控的运动动态。在与Hallo3的对比中,Hallo3的输出存在明显缺陷,对比的结果中Hallo3出现面部/唇部畸变和虚假背景运动和僵硬的头部运动。

高德技术 972

Tech Reader|高德技术人的灵感书单

在代码与算法的世界里,什么才是高德技术人「不迷路」的导航坐标?欢迎在评论区分享你对本期推荐书单的阅读心得或推荐你的灵感书单;在世界读书日,我们一起通过阅读校准下一段技术征程!答案或许藏在这份高德技术人的推荐书单里,选择5名粉丝随机送出本期推荐书籍!

高德技术 381

ICASSP 2025|高德推理检测助手和创新图像生成模型实力出圈

为了解决这些挑战,我们提出了一种创新的图像编辑框架,它利用Chain-of-Thought(CoT)推理和多模态大语言模型(LLMs)的定位能力来帮助扩散模型生成更精致的图像。大量的实验表明,我们的模型在图像生成方面在定性和定量上都超越了现有最先进的模型。本文提出了一种创新的图像编辑框架,该框架结合了链式思考(Chain-of-Thought, CoT)推理和多模态大型语言模型(Multimodal Large Language Models, MLLMs)的区域定位能力,以协助扩散模型生成更精细的图像。

高德技术 1756

CVPR 2025 Highlight|HumanRig:3D数字人黑科技,解锁更智能的3D角色动画框架

我们将分别介绍这些模块。这一优势主要归功于我们采用的基于Point Transformer的网格编码器,它能够有效区分不同身体部位的特征,从而生成更加精确的蒙皮权重分布,最终实现更高质量的网格变形效果。在这个过程中,我们确定粗略的三维骨架,通过计算每条射线与网格表面的交点,并使用每个三维粗略关节的第一次和最后一次交点的中点来得到结果。我们推出了一种创新的自动绑定算法,我们方法的核心模块包括:a)先验引导骨架估计器(PGSE),使用投射到3D空间中的2D先验初始化粗略骨架,显著降低绑定任务的复杂性。

高德技术 1963

高德视觉技术中心团队携CVPR论文成果亮相China3DV 2025

在"优秀论文Fastforward"环节,论文第一作者储泽栋通过现场演示与理论解析,详细展示了HumanRig技术创新,此研究不仅填补了3D人形角色绑定领域的数据集空白,还提出一种创新的自动绑定算法,推动动画行业向更高效、更自动化的角色绑定方向发展。高德视觉技术中心始终站在计算机视觉研究与应用的创新高地,是高德空间智能互联网领域重要的技术实践者。作为三维视觉领域年度盛会,本次高德视觉技术中心的创新成果展示,不仅彰显了团队在计算机视觉领域的技术积淀,更为行业提供了数字内容生产的革新方案。

高德技术 1110

技术公益|高德「卫星求救」与「无网导航」,用技术开拓无人区

无网导航通过技术保障用户体验。高德用户会在某些位置发起请求,如果是网络原因导致的请求失败,那就可以识别出来这块区域网络不顺畅,如果大量用户都在这里发出网络请求失败信息,就形成了我们所说的无网区域,用户本次导航途经无网区域,高德APP会提前缓存导航数据至后台,以备不时之需。高德通过与各大手机厂商的合作,接入厂商卫星能力SDK,统一接口标准,构建了一套通用化卫星通信解决方案,以此借助手机的硬件能力,建立与卫星的双向通信,将救援信号发送至卫星的同时也能从卫星接收对救援信息的回复,实现整个卫星救援能力上的闭环。

高德技术 1627

高德2025科研课题正式发布,研究型实习生岗位等你加入!

对于导航/定位地图而言,主要需要从众包数据中提取场景中对导航和定位重要的少量的稳定的信息,实景地图包含显著更多的细节,端云交互可以以更高效的隐式表达进行(类似Nerual Map),场景中的对象的几何和外观都可能发生显著的变化,这是实现大规模实景地图的众包渐进式构建与更新的核心难点。近年来,多模态大模型的兴起为这一领域提供了新的技术手段。这些技术的应用使平台和商家能够充分利用AI智能创作的能力,可以根据用户的特性,生成个性化的素材或者内容,高效地产出多样性的视觉效果,从而带来了巨大的商业价值。

高德技术 1501

高德终端技术总结:高可用架构如何练成?

在技术栈设计上,除调用系统平台服务的部分使用原生语言(Java//OC//ArtTS)外,其他均使用跨平台语言,来实现最大限度的跨平台,其中对于高性能要求的能力(如地图引擎、基础库)使用C++实现,而对于高效率要求的能力(如前端页面)则使用JS实现。稳定性工作属于「流水不腐,户枢不蠹」。高德地图作为国民级应用,特别是出行场景的独特性,要确保在线导航高并发和交通安全级的超稳定性,这对技术团队提出异乎寻常的高要求,无论是终端、云端,还是“终端-云端”之间的连接,都必须实现“高可用、高性能、高效率”的技术目标。

高德技术 1495

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 961

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 288

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 181

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 156

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 223

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 107

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 298

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 181

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 439

CVPR 2025|突破自动驾驶“交规困境“:高德车道级交通规则在线理解,让AI更懂交规!

其中 MEE 模型专门用于对矢量地图进行特征编码,将每个矢量点进行 tokenize,使用 learnable query 配合 Intra & Inter Instance Attention 进行矢量特征的聚合,融合后每个 query 对应一条矢量的特征信息。高德认为,遵守交通规则行驶是实现自动驾驶系统的必要条件,车道级交通规则通常包含在高精地图中,为自动驾驶系统提供了准确、可靠的规则指导。由人类驾驶过程的启发,从交通标志中理解交通规则需要完成两个任务,理解交通标志牌中指示的。

高德技术 503
上一篇: 机器学习在交通标志检测与精细分类中的应用
下一篇: Java函数优雅之道(下)
高德技术
高德技术 企业官方账号 企业官方账号
博客等级 码龄7年 1270粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值