1.2. 认识 Open Explorer¶
1.2.1. 什么是OE¶
OE是Open Explorer的缩写简称,中文名为天工开物(以下简称OE),它是基于地平线自研计算平台打造的全生命周期开发平台, 主要包括模型编译优化工具集、算法仓库和应用开发SDK三大功能模块。基于这三大功能模块开发的应用参考解决方案,为智能驾驶、智能物联网等行业方案提供了案例支撑。

模型编译优化工具集:如上图中黄色框内的部分,聚焦于智能业务场景,包括完成算法模型转换与部署全流程中所涉及到的一系列软件工具集,具有模型量化、优化、编译、仿真、部署、调试等功能。
算法仓库:包括产品级算法、基础算法和产品参考算法三类算法资源,赋能地平线合作伙伴更快、更省地开发出自己的智能产品。
应用开发SDK:提供丰富的、高度可复用的算法模块、业务策略模块、应用组件和场景应用参考方案,旨在加速客户从业务模型集成到应用程序开发流程。
OE可以为地平线合作伙伴提供丰富多样的算法资源、灵活高效的开发工具和简单易用的开发框架。 OE的特色和优势可以概括为以下四个方面:

为了方便用户将各种解决方案部署到地平线一系列开发板上,我们提供了集开发板系统镜像、开发环境部署、应用参考解决方案示例代码以及用户手册等文件于一体的全量开发包,称之为OE包。 在您获取到OE包后,可以先按照以下步骤对OE进行了解。
先参考 发布物内容 了解发布包的目录结构;
再参考 系统镜像升级 章节进行板端系统镜像安装/升级;
接着通过参考 浮点模型转定点模型指导手册 和 嵌入式应用开发指导 完成模型转换与部署的全流程。
更多更全的OE包使用教程,欢迎参考下方指导手册进行了解,相信地平线的OE包可以让您开发更高效,部署更简便!
更多关于OE适配的硬件内容,请你详见附录中的 开发板套件 章节。
1.2.2. 发布物内容¶
1.2.2.1. bsp¶
bsp目录下包含 resolve.sh
脚本和 tools
文件夹。
其中:
resolve.sh
脚本用于下载镜像包。注意
X3 OE包中此脚本下载的镜像包中包括X3 SDB、X3 DVB及J3 DVB板端系统镜像,J3 OE包中此脚本下载的镜像包中仅包括J3 DVB板端系统镜像。 如您需要其他开发板镜像,请联系地平线进行获取。
tools
文件夹下的resolve.sh
脚本用于下载hbupdate板端升级工具和一些您在Windows下会使用到的USB_Driver等。 其中,hbupdate板端升级工具我们为您提供了多平台(win/linux)的版本,内容包括:hbupdate_linux_cli_{version}.tgz;
hbupdate_linux_gui_{version}.tgz;
hbupdate_win64_{version}.zip。
1.2.2.2. ddk¶
ddk目录为主要的开发组件目录,目录下包含了package和samples文件夹。
1.2.2.2.1. ddk.package¶
ddk.package
目录下包含了发布物运行的一些基础库和组件。
ddk.package.board
ddk.package.board
文件夹下为板端可执行程序。hrt_model_exec
是一个模型执行工具 ,可直接在 开发板上 进行评测模型的推理性能、获取模型信息。工具分别提供了infer
、模型性能分析perf
和查看模型信息model_info
三类功能。hrt_bin_dump
是ptq debug模型的layer dump工具,工具的输出文件为二进制文件。install.sh
是一键安装脚本,可以一键将hrt工具安装到指定的开发板。
ddk.package.host
ddk.package.host
文件夹下为发布物在x86开发环境下的环境依赖和工具依赖等。
通过执行该目录下的脚本 install.sh
即可在开发机上安装程序运行的所有环境和工具依赖。
通过执行该目录下的脚本 resolve.sh
即可下载交叉编译工具、torch等依赖。
1.2.2.2.2. ddk.samples¶
ddk.samples
下包含了 ai_benchmark、ai_toolchain和model_zoo 。
ai_benchmark 提供了常见的分类、检测和分割模型的评测示例,包括性能评测和精度评测两部分。
ai_toolchain 提供了一些模型算法的一系列示例。 (其中 horizon_model_train_samples 为浮点模型训练框架示例, horizon_model_convert_sample 为浮点模型转定点模型的转换示例, horizon_runtime_sample 为定点模型的上板示例。)
model_zoo 是一个模型库,用于放置工具链示例模型编译的源模型和runtime模型。
1.2.2.3. resolve_all.sh¶
用于自动下载OE包内所有可下载的依赖项的脚本。
运行该脚本将依次进行如下内容的下载:
1.执行 ddk/package/host
路径下的 resolve.sh
,下载交叉编译工具、torch等依赖。
2.执行 ddk/samples/ai_toolchain/model_zoo/runtime/ai_benchmark
路径下的 resolve_ai_benchmark_ptq.sh
,下载上板使用的bin模型。
3.执行 ddk/samples/ai_toolchain/model_zoo/runtime/horizon_runtime_sample
路径下的 resolve_runtime_sample.sh
,下载对应示例上板使用的bin模型。
4.执行 bsp/tools
路径下的 resolve.sh
,下载hbupdate板端升级工具和一些您在Windows下会使用到的USB_Driver等。
5.执行 bsp
路径下的 resolve.sh
,下载镜像包。
6.执行 ddk/samples/ai_toolchain/horizon_model_convert_sample
文件夹下的所有 00_init.sh
,下载示例对应的校准数据集以及原始模型。
1.2.2.4. run_docker.sh¶
在评测数据集和OE包所需docker下载完成的情况下,可以使用如下命令自动挂载OE包并启动docker。
sh run_docker.sh {数据集路径}
sh run_docker.sh {数据集路径} cpu
1.2.3. 关键概念¶
原始浮点模型,指您通过TensorFlow/PyTorch等等DL框架训练得到的可用模型,这个模型的计算精度为float32。
混合异构模型,是一种适合在地平线计算平台上运行的模型格式。
模型转换,指的是将原始浮点模型或QAT转换得到的onnx模型转换为地平线混合异构模型的过程。
模型量化,目前工业界最有效的模型优化方法之一,量化是指定点与浮点等数据之间建立一种数据映射关系,使得以较小的精度损失代价获得了推理性能收益,可简单理解为用“低比特”数字表示FP32等数值,如FP32–>INT8可以实现4倍的参数压缩,在压缩内存的同时可以实现更快速的计算。
hbm文件,即Horizon BPU Model,HBDK编译器生成的模型文件,hbm包含BPU指令、模型参数、输入输出描述等信息。
PTQ,即训练后量化方案,先训练浮点模型,然后使用校准图片计算量化参数,将浮点模型转为量化模型的量化方法。
QAT,即量化感知训练方案,在浮点训练的时候,就先对浮点模型结构进行干预,使得模型能够感知到量化带来的损失,减少量化损失精度的方案。
还有更多针对文档中缩略词的介绍,请您参考 常用缩略语 章节的介绍。