VIM3开发(4)项目应用

 

 

https://docs.khadas.com/linux/vim3/RSTPCamera.html

VIM3开发(4)项目应用

 

 

 https://docs.khadas.com/linux/vim3/NPUPrebuiltUsage.html

VIM3开发(4)项目应用

 

 

 

 

安装 OpenCV4

 

sudo apt install libopencv-dev python3-opencv

  

获取 NPU 演示

板子上默认没有安装 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模型

  

初始模型

  1. 初始模型不需要在系统中安装任何库。进入inceptionv3目录
$ cd {workspace}/aml_npu_demo_binaries/inceptionv3 
$ ls
 dog_299x299.jpg goldfish_299x299.jpg imagenet_slim_labels.txt VIM3 VIM3L
  1. 如果你的板子是VIM3,进入VIM3目录,如果是VIM3L,进入VIM3L目录。这里以 VIM3 为例
$ cd {workspace}/aml_npu_demo_binaries/inceptionv3/VIM3 
$ inceptionv3 inception_v3.nb run.sh
  1. run.sh
  2. $ 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,结果是一条金鱼,也被正确识别了  

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

  笔记

图片的大小必须和模型的大小对应,所以这里,inceptionv3模型的输入是299x299x3,传入的识别图片也必须是299x299

 

Yolo 系列型号

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运行即可。

X11 / 帧缓冲

演示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
  1. detect_demo_fb 是一个使用opencv4识别图片在framebuffer下运行的demo
  2. detect_demo_x11 是一个使用opencv4识别图片在X11下运行的demo

图片识别

识别图片的命令格式

$ cd {workspace}/aml_npu_demo_binaries/detect_demo_picture 
$ ./detect_demo_xx -m <类型> -p <picture_path>

  

运行结果如下,

VIM3开发(4)项目应用

动态相机识别

相机说明

使用usbUSB摄像头的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

  

打开相机后,识别结果会显示在屏幕上

VIM3开发(4)项目应用

上一篇:在 c++ 项目中使用 grpc —— 无管理员权限


下一篇:Linux 解码backtrace返回信息