开发环境搭建

1. 开发包解析

天工开物开发平台发布包的目录结构以及功能描述如下

目录结构

内容描述

/bsp

系统软件预编译镜像和系统软件源码目录

/bsp/X3-Img-{version}.tgz

X3系统软件预编译镜像,支持快速生成各种开发板的系统固件文件

/bsp/J3-Img-{version}.tgz

J3系统软件预编译镜像,支持快速生成各种开发板的系统固件文件

/tools

系统固件刷机工具以及window串口驱动

/tools/0A_*.zip

适配各种window系统硬件的串口驱动,可以逐个安装来进行验证与自己系统匹配关系

/tools/0B_hbupdate_*.tar.gz

镜像刷机工具,兼容window,linux环境

/tools/0B_hbupdate_burn_secure-key1.zip

编译生成secure安全系统镜像所需的key文件

/ddk

应用开发包

/ddk/package

应用开发包,包括需要安装在开发宿主机上的LIB库/工具,以及需要安装在开发板上的工具

/ddk/package/host

安装在开发宿主机上的LIB库/工具,包括AI工具链开发环境和基础LIB库

/ddk/package/board

安装在开发板上的工具

/ddk/samples

配套样例,以源码方式交付,在/ddk/package环境安装以后,可以通过脚本完成编译和部署

/ddk/samples/ai_benchmark

内置数十种模型,支持快速在地平线芯片上完成精度和性能评测

/ddk/samples/ai_toolchain

AI工具链相关用户示例,包括模型转换,模型训练,以及嵌入式模型推理runtime使用

/ddk/tools

应用开发配套的工具,主要包括交叉编译环境,gdc调试工具,摄像头ISP调试和可视化工具

其中需要完成 BSP系统软件开发环境 , AI应用软件开发环境 的搭建。

2. 系统软件开发

请参考固件升级手册第一部分进行系统软件环境搭建

3. AI应用开发

AI应用开发主要包括算法模型开发和应用软件开发两个部分,我们提供了Docker环境以及宿主机环境两种方式供你快速搭建系统开发环境。

3.1 Docker开发环境

在使用docker镜像之前,请先确认已经安装好docker的基础环境。地平线要求的Docker基础环境信息如下:

docker基础环境安装后,需要将无root权限用户加入到docker用户组中。参考命令如下:

sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo systemctl restart docker  # Centos7
# relogin

然后就可以拉取提供好的 docker image ,命令如下:

docker pull openexplorer/ai_toolchain_centos_7:{version}

拉取命令顺利执行完成后,您将得到启动docker需要的镜像 ,提示如下(注意对于不同的版本,版本号部分会有所差异):

{version}: Pulling from openexplorer/ai_toolchain_centos_7
Digest: sha256:733681611a67a679eb080adec246e081ae994501440de5984d8b6e21c2cde0aa
Status: Downloaded newer image for openexplorer/ai_toolchain_centos_7:{version}

此时你就可以使用该docker镜像进行AI模型以及应用软件开发。

3.2 宿主机开发环境

如果你不习惯基于docker进行开发,你可以在你的宿主机器上直接进行环境安装,地平线建议您选择的开发机应满足以下要求。

  • CPU:CPU I3以上或者同级别E3/E5的处理器

  • 内存:16G或以上级别

  • GPU:建议搭配一块1080ti或以上级别

  • 系统: Centos 7 、 Ubuntu 18

宿主机环境安装首先需要安装交叉编译工具链,请从 /ddk/tools 目录下获取

/ddk/tools
├── gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu.tar.xz

建议将交叉编译器解压到系统 /opt 根目录下,安装后目录结构如下:

/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/
├── aarch64-linux-gnu
├── bin
├── gcc-linaro-6.5.0-2018.12-linux-manifest.txt
├── include
├── lib
├── libexec
└── share

然后就可以继续完成DDK Package开发包的安装,参考 /ddk/package/host/ 目录。

Warning

部分依赖版本号会由于迭代而改变,请以实际使用版本为准

ddk/package/host/
├── ai_toolchain
│   ├── hbdk-3.26.8-py3-none-linux_x86_64.whl
│   ├── hbdk_model_verifier-3.26.8-py3-none-linux_x86_64.whl
│   ├── horizon_nn-0.12.5-py3-none-any.whl
│   ├── horizon_nn_gpu-0.12.5-py3-none-any.whl
│   └── horizon_tc_ui-1.4.4-py3-none-any.whl
├── cmake-3.14.5-Linux-x86_64.tar.gz
├── ddk_vcs-0.2.1-py3-none-any.whl
├── host_package
│   ├── xj3_aarch64
│   └── xj3_x86_64_gcc_4.8.5
├── hrt_tools
│   ├── hrt_bin_dump
│   └── hrt_model_exec
├── install.sh
  • 通过 install.sh 脚本,你可以一键完成ai_toolchain目录下面的各种python whl包和host_package目录下面的各种库/头文件的安装。

Warning

install.sh脚本执行成功以后,会在~/.bashrc系统环境变量中添加Path等信息, 你需要重新启动打开一个新的terminal或者执行 source ~/.bashrc 来使当前terminal的配置生效。

其中包括如下内容(部分依赖可能由于更新导致结构变动):

~/.horizon/ddk/
├── xj3_aarch64
│   ├── appsdk
│   │   └── appuser
│   ├── appsdk_1.9.0.tar.gz
│   ├── bpu_predict
│   │   ├── include
│   │   └── lib
│   ├── bpu_predict_1.10.2.tar.gz
│   ├── dnn
│   │   ├── include
│   │   └── lib
│   └── dnn_1.1.2a.tar.gz
└── xj3_x86_64_gcc_4.8.5
    ├── bpu_predict
    │   ├── include
    │   └── lib
    ├── bpu_predict_1.10.2.tar.gz
    ├── dnn_x86
    │   ├── include
    │   └── lib
    └─── dnn_x86_1.1.2a.tar.gz

其中 appsdk 内部即包括了系统软件相关头文件和库,应用APP可以依赖他们进行应用开发。关于这些库的使用,你可以参考/ddk/doc内部文档。

最后你还需要通过脚本将开发板端的一些配套工具安装到开发板中,详细参考 /ddk/package/board/ 目录.

/ddk/package/board/
├── hrt_bin_dump
├── hrt_model_exec
└── install.sh

通过 install.sh 脚本可以这些工具快速安装到开发板的 /userdata/.horizon 目录。关于这些工具的使用,你可以参考/ddk/doc内部文档。

3.3 远程 GDB 环境

板卡系统中已经内置了 gdbserver,在你确保你的开发机与开发板网络联通的情况下,你可以使用 gdbserver 来对你的应用程序进行远程 DEBUG。

使用方式很简单:

// 开发板上,使用 gdbserver 的方式来启动应用程序
gdbserver :8000 <myapp>

//物理机上,通过 gdb 来连接 server 进行调试。在 gdb 命令行中执行
target remote <板子 ip>:<端口>

注意,你的应用程序交叉编译时加 -g 选项编译为可调试二进制文件。

4. 获取工具链 eval 测试数据集

数据集地址为:vrftp.horizon.ai/Open_Explorer/eval_dataset

/Open_Explorer/eval_dataset
├── VOC.tar.gz
├── imagenet.tar.gz
├── coco.tar.gz
├── cityscapes.tar.gz
└── cifa-10.tar.gz

4.1 Linux环境下载

Linux 环境下请保证有外网访问能力以及可以使用 wget

请根据需求使用以下命令下载对应数据集

wget ftp://vrftp.horizon.ai/Open_Explorer/eval_dataset/[数据集名称]

4.2 Windows环境下载

Windows下请使用 Filezilla 作为下载工具, 点击此处 进入下载页面进行下载

安装后请根据以下图示进行下载

../_images/ftp_win_1.png ../_images/ftp_win_2.png