Tengine Video Capture User Manual

August 26, 2021 · View on GitHub

约束

当前版本仅支持基于 Khadas VIM3 SBC 上的 NPU 网络模型推理演示,我们后续会逐步完善,支持基于更多硬件平台的功能演示。

默认大家手上的 Khadas VIM3 中的固件为最新版本。

硬件说明

物品描述
Khadas VIM3内置 A311D SoC 的单板计算机,内置 5Tops NPU 加速器
USB 摄像头输入实时视频流
液晶显示器控制台操作,实时输出示例运行结果
HDMI连接线由于Khadas VIM3 的 TYPE C 接口与 HDMI 接口过于紧凑,需要寻找小一点接口的 HMDI 连接线

软件说明

以下均为 Khadas VIM3 单板计算机上的软件描述。

  • Ubuntu 20.04
  • OpenCV 4.2
  • gcc 9.3.0
  • cmake 3.16.3

操作说明

后续步骤中的命令行操作均为基于 Khadas VIM3 单板计算机上的操作,其中:

  • 下载编译步骤 可以过 SSH 登陆或者直接在 Khadas VIM3 的 Ubuntu 桌面启动控制台中执行;
  • 运行步骤仅在 Khadas VIM3 的 Ubuntu 桌面启动控制台中执行。

编译

下载 NPU 依赖库 TIM-VX

$ git clone https://github.com/VeriSilicon/TIM-VX.git

下载 Tengine

$ git clone https://github.com/OAID/Tengine.git tengine-lite
$ cd tengine-lite

准备代码

$ cd <tengine-lite-root-dir>
$ cp -rf ../TIM-VX/include  ./source/device/tim-vx/
$ cp -rf ../TIM-VX/src      ./source/device/tim-vx/

执行编译

$ cd <tengine-lite-root-dir>
$ mkdir build && cd build
$ cmake -DTENGINE_ENABLE_TIM_VX=ON -DTENGINE_ENABLE_MODEL_CACHE=ON -DTENGINE_BUILD_DEMO=ON ..
$ make demo_yolo_camera -j`nproc`

编译完成后,libtengine-lite.sodemo_yolo_camera 存放在以下路径:

  • <tengine-lite-root-dir>/build/source/libtengine-lite.so
  • <tengine-lite-root-dir>/build/demos/demo_yolo_camera

运行

模型文件 yolov3_uint8.tmfile 可从 Model ZOO 中下载,按照以下顺序方式存放文件:

......
├── demo_yolo_camera
├── libtengine-lite.so
├── models
│   └── yolov3_uint8.tmfile
......

执行当前路径下的 demo_yolo_camera

./demo_yolo_camera

P.S. :第一次运行因为会在线编译生成 NPU 运行依赖的 kernel file,会有一定的等待时间(大约30秒),后续运行直接加载所在目录下的 cache file 文件(小于1秒)。

关于容器

  • 我们提供了基于 Khadas VIM3 平台的容器版本,具体操作可以参考 deploy_superedge
  • 我们提供了腾讯云的 SuperEdge 版本,请参考(待补充)。

FAQ

Khadas VIM3 编译 Tengine + TIMVX 其余问题(包括 Khadas VIM3 购买渠道)可以参考 compile_timvx