https://docs.khadas.com/linux/vim3/RSTPCamera.html
https://docs.khadas.com/linux/vim3/NPUPrebuiltUsage.html
sudo apt install libopencv-dev python3-opencv
板子上默认没有安装 NPU Demo。你需要先从github下载
github上的repository地址为:https ://github.com/khadas/aml_npu_demo_binaries
git
通过命令克隆到板子。
$ cd {workspace}
$ git clone --recursive https://github.com/khadas/aml_npu_demo_binaries
或者直接下载压缩包,然后解压到板子上
NPU Demo中有三个目录:
detect_demo:相机动态识别
的yolo系列模型集合detect_demo_picture:识别图片的yolo系列模型集合
inceptionv3:识别图片的inception模型
$ cd {workspace}/aml_npu_demo_binaries/inceptionv3
$ ls
dog_299x299.jpg goldfish_299x299.jpg imagenet_slim_labels.txt VIM3 VIM3L
VIM3
目录,如果是VIM3L,进入VIM3L
目录。这里以 VIM3 为例$ cd {workspace}/aml_npu_demo_binaries/inceptionv3/VIM3
$ inceptionv3 inception_v3.nb run.sh
run.sh
$ cd {workspace}/aml_npu_demo_binaries/inceptionv3/VIM3
$ ./run.sh
创建神经网络:59ms 或 59022us
验证...
验证图:0ms 或 739us
开始运行图 [1] 次...
运行 1 次:20.00 ms 或 20497.00us
vxProcessGraph 执行时间:
总计 20.00ms 或 20540.00us
平均 20.54ms 或 20540.00us
--- Top5 ---
2:0.833984
795:0.009102
974:0.003592
408:0.0022107
393:0.002
通过查询imagenet_slim_labels.txt
,结果是一条金鱼,也被正确识别了
$ cd {workspace}/aml_npu_demo_binaries/inceptionv3/VIM3
$ ./inceptionv3 inception_v3.nb path/to/picture
笔记
图片的大小必须和模型的大小对应,所以这里,inceptionv3模型的输入是299x299x3,传入的识别图片也必须是299x299
yolo系列模型的应用分为相机动态识别和图像识别两部分。
yolo系列机型需要将库安装到系统中。无论是使用相机动态识别还是识别图片,都共享同一个库。
进入detect_demo_picture
cd {工作区}/aml_npu_demo_binaries/detect_demo_picture
安装
sudo ./INSTALL
卸载
sudo ./UNINSTALL
type
参数说明该type
参数是输入参数,无论是使用相机动态识别还是识别图片都必须选择。该参数主要用于指定运行的yolo系列机型。
0:yoloface 模型
1:yolov2 模型
2:yolov3 模型
3:yolov3_tiny 模型
4:yolov4 模型
NPU Demo可以在X11或者framebuffer模式下运行,选择对应的demo运行即可。
演示fb
在帧缓冲模式下运行。
演示x11
在 X11 模式下运行。
这是一个例子detect_demo_picture
,
$ 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
识别图片的命令格式
$ cd {workspace}/aml_npu_demo_binaries/detect_demo_picture
$ ./detect_demo_xx -m <类型> -p
运行结果如下,
相机说明
使用usb
USB摄像头的demo,mipi
使用mipi摄像头的demo。
摄像机动态识别命令格式
$ cd {workspace}/aml_npu_demo_binaries/detect_demo
$ ./detect_xx_xx -d <视频节点> -m <类型>
下面是x11环境下使用opencv4调用yolov3的例子。
$ cd {workspace}/aml_npu_demo_binaries/detect_demo
$ ./detect_demo_x11_usb -d /dev/video1 -m 2
打开相机后,识别结果会显示在屏幕上