2.1. 认识 Open Explorer

2.1.1. 什么是OE

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

../../../_images/learn_oe_1.png
  1. 模型编译优化工具集:聚焦于智能业务场景,包括完成算法模型转换与编译流程中所涉及到的一系列软件工具集,提供模型量化、优化、编译、调试等功能。

  2. 算法仓库:贴合时下智驾领域的基础算法结构,和重点业务算法技术点,地平线提供了丰富的开源最佳实践,赋能地平线合作伙伴更快、更省地开发出自己的智能产品。

  3. 应用开发SDK:提供丰富的基础接口与工具,支撑业务算法在征程平台的部署,可以完整支撑客户在仿真和物理环境下的部署全流程。

OE可以为地平线合作伙伴提供丰富多样的算法资源、灵活高效的开发工具和简单易用的开发框架。 OE的特色和优势可以概括为以下四个方面:

../../../_images/learn_oe_2.png

为了方便将各种解决方案部署到地平线一系列开发板上,我们提供了集开发板系统镜像、开发环境部署、应用参考解决方案示例代码以及用户手册等文件于一体的全量开发包,称之为OE包。 在您获取到OE包后,可以先按照以下步骤对OE进行了解。

1.先参考 发布物内容 了解发布包的目录结构。

2.再参考 系统镜像升级 章节进行板端系统镜像安装/升级。

3.接着通过参考 训练后量化(PTQ)量化感知训练(QAT) 以及 嵌入式应用开发指导 完成模型转换与部署的全流程。

更多更全的OE包使用教程,欢迎参考下方指导手册进行了解,相信地平线的OE包可以让您开发更高效,部署更简便。

更多关于OE适配的硬件内容,请你详见附录中的 开发板套件 章节。

2.1.2. 发布物内容

2.1.2.1. bsp

bsp目录下包含 resolve.sh 脚本和 tools 文件夹。

其中:

  • resolve.sh 脚本用于下载镜像包,但下载的镜像仅适用于J5 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。

2.1.2.2. ddk

ddk目录为主要的开发组件目录,目录下包含了package和samples文件夹。

2.1.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等依赖。

2.1.2.2.2. ddk.samples

ddk.samples 下包含了 ai_benchmark、ai_toolchain、ai_forward_view_sample、vdsp_rpc_sample和model_zoo

  • ai_benchmark提供了常见的分类、检测和分割模型的评测示例,包括性能评测和精度评测两部分。

  • ai_toolchain提供了一些模型算法的一系列示例。 (其中horizon_model_train_samples为浮点模型训练框架示例, horizon_model_convert_sample为浮点模型转定点模型的转换示例, horizon_runtime_sample为定点模型的上板示例。)

  • ai_forward_view_sample示例展示了如何在J5上运行一个检测模型并展示物体框。

  • vdsp_rpc_sample示例展示了如何在J5上使用dsp进行任务处理。

  • model_zoo是一个模型库,用于放置工具链示例模型编译的源模型和runtime模型。

2.1.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/ai_benchmark 路径下的 resolve_ai_benchmark_qat.sh ,下载上板使用的hbm模型。

4.执行 ddk/samples/ai_toolchain/model_zoo/runtime/horizon_runtime_sample 路径下的 resolve_runtime_sample.sh ,下载对应示例上板使用的bin模型。

5.执行 bsp/tools 路径下的 resolve.sh ,下载hbupdate板端升级工具和一些您在Windows下会使用到的USB_Driver等。

6.执行 bsp 路径下的 resolve.sh ,下载镜像包(下载的镜像仅适用于J5 DVB开发板,若需要其他开发板镜像,需联系地平线进行获取)。

7.执行 ddk/samples/ai_toolchain/horizon_model_convert_sample 文件夹下所有的 00_init.sh ,下载示例对应的校准数据集以及原始模型。

2.1.2.4. run_docker.sh

在评测数据集和OE包所需docker下载完成的情况下,可以使用命令 sh run_docker.sh {数据集路径} 自动挂载OE包并启动docker。