NPU预编译demo使用说明

注意
  1. 在运行NPU Demo前请先参考文档升级系统到最新版本。
  2. 只支持opencv4

安装OpenCV4

1
$ sudo apt install libopencv-dev python3-opencv

获取NPU Demo

NPU Demo 默认并没有安装在板子上。需要先从github自行下载

仓库在github上的地址为:https://github.com/khadas/aml_npu_demo_binaries

通过git命令中clone到板子上

1
2
$ cd {workspace}
$ git clone --recursive https://github.com/khadas/aml_npu_demo_binaries

或者直接下载压缩包,然后解压到板子上。

NPU Demo 一共有三个目录:

1
2
3
detect_demo: 摄像头动态识别的yolo系列模型合集
detect_demo_picture: 识别图片的yolo系列模型合集
inceptionv3: 识别图片的inception模型

Inception模型

  1. inception模型不需要安装任何库到系统中。进入inceptionv3目录
1
2
3
$ cd {workspace}/aml_npu_demo_binaries/inceptionv3
$ ls
dog_299x299.jpg goldfish_299x299.jpg imagenet_slim_labels.txt VIM3 VIM3L

imagenet_slim_labels.txt为label文件,识别出来结果以后可以在这个文件里查询结果对应的label。

  1. 如果你的板子是VIM3,进入VIM3目录,是VIM3L则进入VIM3L目录,这里以VIM3为例
1
2
$ cd {workspace}/aml_npu_demo_binaries/inceptionv3/VIM3
$ inceptionv3 inception_v3.nb run.sh
  1. 运行run.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ cd {workspace}/aml_npu_demo_binaries/inceptionv3/VIM3
$ ./run.sh
Create Neural Network: 59ms or 59022us
Verify...
Verify Graph: 0ms or 739us
Start run graph [1] times...
Run the 1 time: 20.00ms or 20497.00us
vxProcessGraph execution time:
Total 20.00ms or 20540.00us
Average 20.54ms or 20540.00us
--- Top5 ---
2: 0.833984
795: 0.009102
974: 0.003592
408: 0.002207
393: 0.002111

通过查询imagenet_slim_labels.txt得到结果是金鱼,也是就识别正确。

  1. 识别其他图片
1
2
$ cd {workspace}/aml_npu_demo_binaries/inceptionv3/VIM3
$ ./inceptionv3 inception_v3.nb path/to/picture
注意

图片的尺寸要与模型的尺寸对应,因此这里,inceptionv3模型的输入是299x299x3,传入识别的图片也必须是299x299。

Yolo系列模型

Yolo系列模型的应用分成了摄像头动态识别和图片识别两个部分。

安装与卸载库

Yolo系列的模型需要将库安装到系统中,无论是使用摄像头动态识别还是识别图片,共用了同一套库。

进入detect_demo_picture

1
$ cd {workspace}/aml_npu_demo_binaries/detect_demo_picture

安装

1
$ sudo ./INSTALL

卸载

1
$ sudo ./UNINSTALL

type参数说明

type参数无论是使用摄像头动态识别,还是识别图片,都是必须选择的一个输入参数,这个参数主要是用于指定运行的yolo系列模型。

1
2
3
4
5
0 : yoloface模型
1 : yolov2模型
2 : yolov3模型
3 : yolov3_tiny模型
4 : yolov4模型

运行环境说明

NPU Demo 可以运行在X11或者framebuffer模式的不同环境下,选择对应的demo运行即可。

X11 / Framebuffer

带有fb字样的demo是运行在framebuffer模式下。

带有X11字样的demo则是运行在桌面系统环境下。

说明示例

这里以detect_demo_picture为例,

1
2
3
$ cd {workspace}/aml_npu_demo_binaries/detect_demo_picture
$ ls
1080p.bmp detect_demo_x11 detect_demo_xfb INSTALL lib nn_data README.md UNINSTALL
  1. detect_demo_fb 是运行在framebuffer下识别图片的demo
  2. detect_demo_x11 是运行在X11下识别图片的demo

运行

图片识别

识别图片的命令格式

1
2
$ cd {workspace}/aml_npu_demo_binaries/detect_demo_picture
$ ./detect_demo_xx -m <type> -p <picture_path>

这里以x11下调用yolov3模型识别图片为例,

1
2
$ cd {workspace}/aml_npu_demo_binaries/detect_demo_picture
$ ./detect_demo_x11 -m 2 -p 1080p.bmp

运行结果如下,

detect_demo_picture_x11_cv4

摄像头动态识别

摄像头说明

使用USB摄像头应选用usb的demo,使用mipi摄像头选用mipi的demo。

摄像头动态识别的命令格式

1
2
$ cd {workspace}/aml_npu_demo_binaries/detect_demo
$ ./detect_xx_xx -d <video node> -m <type>

这里以x11环境下调用yolov3为例,

1
2
$ cd {workspace}/aml_npu_demo_binaries/detect_demo
$ ./detect_demo_x11_usb -d /dev/video1 -m 2

打开摄像头以后。会将识别的结果显示在屏幕上

detect_demo_x11_cv4