技能介绍
技能可以抽象地理解为算法模型+逻辑代码。算法模型负责关键的AI推理,逻辑代码负责处理模型推理的结果。
本章节介绍在专业版HiLens控制台开发技能。
当前华为HiLens支持如下两种格式的技能。
单设备部署技能的流程请见控制台新建技能流程。
技能包
RPM格式技能包。
RPM包中包含用户的业务代码、用户的模型和业务的配置文件。
├──{app name}-{version}-{release}.{aarch}.rpm │ ├── app.config 表明在运行环境中启动业务服务的命令和停止服务的命令,以及业务服务的名字,必选:参数说明见下表 │ ├── bin 必选:用户自定义的业务代码 │ │ ├──main.sh │ │ ├──main(编译c++程序生成的二进制可执行文件) │ │ ├──* 其它二进制/可执行文件 │ ├── lib可选:动态库 │ ├── data可选:应用层配置参数 │ ├── model可选:业务的模型 │ ├── etc可选:应用配置文件 │ │ ├──graph 应用流程图 其中{app name}仅支持字母数字和下划线“_”,只能以字母或者下划线开始;{version}仅支持数字和点“.”; {release}仅支持数字; {aarch}仅支持armv7和aarch64。
配置项 |
描述 |
---|---|
应用名 |
应用名称,只能以英文字母开头,不能包含中文以及&!'\"<>=,不超过36个字符。 |
应用描述 |
应用描述,表示该应用的用途,由应用开发者填写,以便使用者理解该应用的用途 |
应用版本 |
应用版本,建议使用major.minor.point的方式。 |
启动命令 |
启动脚本,表明该应用在运行环境中启动应用服务的脚本命令,用户可以自定义启动脚本。固定为[app-root]/bin/main或[app-root]bin/main.sh。 |
停止命令 |
停止脚本,表明该应用在运行环境中停止应用服务的脚本命令,用户可以自定义停止脚本。 |
安装rpm包 |
在第一次使用时需要安装的rpm包,可以是一个也可以是多个。 |
支持硬件 |
应用可以运行需要的硬件平台。 |
执行程序类型及环境依赖 |
原生native程序及libc版本要求;Python程序,Python版本要求。 |
资源要求 |
运行所必须的资源类型及数量,如CPU及其算力、内存及尺寸、存储及空间尺寸等。 |
app.rpm的打包,用户可以通过使用ModelBox的开发环境,将模型和业务逻辑代码等打包成相应的rpm包。
容器镜像
容器镜像格式是一个包含应用运行需要的各种组件和应用本身的镜像。可以使用ModelBox提供的软件包打包工具或者是镜像打包工具,也可以按照下面的格式手动打包。
应用容器镜像包含三层:基础镜像层、ModelBox框架层和应用层。
- 基础镜像层:提供下层设备的驱动,以及其中ModelBox框架和基础功能单元依赖的一些第三方库如FFmpeg,TensorRT,OpenCV等。
- ModelBox框架层:包括ModelBox基础框架包和ModelBox基础功能单元包。
- 应用层:包含用户自定义的一些功能单元,以及功能单元需要的一些第三方库,以及业务流程图等。