源码下载 示例源码下载链接: 点击下载源码
一、PC上运行计算棒本节主要描述如何在PC上使用RK1808人工智能计算棒。 1、系统依赖说明RKNN-Toolkit 开发套件支持运行于 Ubuntu 操作系统。需要满足以下运行环境要求: 操作系统版本 Ubuntu16.04(x64)以上 库依赖 cmake gcc g++ opencv opencv_devel 2、快速上手本章节以 RK1808人工智能计算棒使用C语言调用计算棒完成开发为例。 2.1 环境准备· 获取mobilenet_ssd源码 · 一台安装有 ubuntu 16.04 操作系统的 x86_64 位计算机。 · TB-RK1808S0计算棒。 · USB摄像头 · 将 RK1808 计算棒插在 PC 的 USB 接口上,使用 lsusb 命令查看,结果如下(其中 2207:1800 即为我们的 RK1808 计算棒, 下文中标红的那一行): ljh@X240:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 009: ID 2207:1800
2.2安装依赖包本节以装有 ubuntu 16.04 操作系统的 x86_64 位 PC 为例 安装编译器 - <font size="3">For Ubuntu: sudo apt-get install cmake gcc g++
- For Fedora: sudo dnf install -y cmake gcc gcc-c++
- For MacOS:brew install cmake gcc </font>
opencv安装 - <font size="3">For Ubuntu: sudo apt-get install libopencv-dev
- For Fedora: sudo dnf install -y opencv opencv-devel
- For MacOS:brew install opencv</font>
rknn-api安装(Ubuntu & Fedora & MacOS)
- <font size="3">cd install_rknn
- sudo ./install_rknn_api.sh</font>
2.3代码编译运行1.cd slave_mobilenet_ssd
2.mkdir build
3.cd build
4.cmake ..
5.make
6. npu_transfer_proxy & , 启动NPU守护进程
7.在PC上插入USB摄像头
8.在PC界面终端上执行./ssd_demo,将会在屏幕上显示SSD图像结果
9.按'ESC'键退出运行注:该demo版本当前只允许插入 1 个计算棒。
二、RK3399proD上运行计算棒
本节主要描述如何在RK3399proD上使用RK1808人工智能计算棒。 1、系统依赖说明环境依赖 请先按照“Wiki--入门指南--Linux上位机环境安装”安装环境 操作系统版本 RK3399proD测试固件为V1.5,计算棒测试固件为V1.3.4 2、快速上手本章节以 RK1808人工智能计算棒使用C语言调用计算棒完成开发为例。
2.1 环境准备· 获取mobilenet_ssd源码 · 一台安装有 fedora 操作系统的RK3399proD开发板。 · TB-RK1808S0计算棒。 · USB摄像头 · 将 RK1808 计算棒插在RK3399proD开发板的 USB 接口上,使用 lsusb 命令查看, 结果如下(其中 2207:0018 即为我们的 RK1808 计算棒,2207:1808 即为RK3399proD内部NPU): $ lsusb
Bus 002 Device 003: ID 2207:1808 Bus 001 Device 015: ID 2207:0018 安装RKNN-API
- <font size="3">sudo dnf install –y rknn-api</font>
修改代码 若用户只想调用RK3399proD内部的NPU则无需修改,跳过本步骤 若用户想调用计算棒,则按如下步骤修改 - <font size="3">vi slave_mobilenet_ssd/common/rknn.cpp</font>
在rknn::load_model函数中rknn_init前一行加入如下代码,该代码用于打印出全部npu和计算棒的设备号 - <font size="3">rknn_devices_id devids;
- ret = rknn_find_devices (&devids);
- printf("n_devices = %d\n", devids.n_devices);
- for(int i=0; i<devids.n_devices; i++) {
- printf("%d: type=%s, id=%s\n", i, devids.types[i], devids.ids[i]);
- }</font>
打印结果如下,其中0号设备是计算棒,1号设备为内部NPU: n_devices = 2 0: type=USB_DEVICE, id=TS018080000000087 1: type=USB_DEVICE, id=0123456789ABCDEF - <font size="3">//ret = rknn_init(&rknn_ctx, model, model_len, flag);//注销该行代码,替换为如下代码
- rknn_init_extend extend;
- extend.device_id = devids.ids[0];//0号设备代表计算棒,1号代表内部NPU
- ret = rknn_init2(&rknn_ctx, model, model_len, flag, &extend);</font>
2.2 代码编译运行
1.cd slave_mobilenet_ssd
2.mkdir build
3.cd build
4.cmake ..
5.make
6. npu_transfer_proxy & , 启动NPU守护进程
7.在RK3399proD上插入USB摄像头
8.在RK3399proD界面终端上执行./ssd_demo,将会在屏幕上显示SSD图像结果
9.按'ESC'键退出运行
|