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 <picture_path>
运行结果如下,
相机说明
使用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
打开相机后,识别结果会显示在屏幕上