|
|
中文 / EN
|
https://github.com/rockchip-toybrick/slave_mobilenet_ssd
本节主要描述如何在
PC
上使用
RK1808人工智能计算棒。
RKNN-Toolkit 开发套件支持运行于 Ubuntu 操作系统。需要满足以下运行环境要求:
操作系统版本 Ubuntu16.04(x64)以上
库依赖 cmake gcc g++ opencv opencv_devel
本章节以 RK1808人工智能计算棒使用C语言调用计算棒完成开发为例。
· 获取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
本节以装有 ubuntu 16.04 操作系统的 x86_64 位 PC 为例
安装编译器
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
opencv安装
For Ubuntu: sudo apt-get install libopencv-dev
For Fedora: sudo dnf install -y opencv opencv-devel
For MacOS:brew install opencv
rknn-api安装(Ubuntu & Fedora & MacOS)
cd install_rknn
sudo ./install_rknn_api.sh
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
上使用
RK1808人工智能计算棒。
环境依赖 请先按照“Wiki--入门指南--Linux上位机环境安装”安装环境
操作系统版本 RK3399proD测试固件为V1.5,计算棒测试固件为V1.3.4
本章节以 RK1808人工智能计算棒使用C语言调用计算棒完成开发为例。
· 获取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
sudo dnf install –y rknn-api
修改代码
若用户只想调用RK3399proD内部的NPU则无需修改,跳过本步骤
若用户想调用计算棒,则按如下步骤修改
vi slave_mobilenet_ssd/common/rknn.cpp
在rknn::load_model函数中rknn_init前一行加入如下代码,该代码用于打印出全部npu和计算棒的设备号
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]); }
打印结果如下,其中0号设备是计算棒,1号设备为内部NPU:
n_devices = 2
0: type=USB_DEVICE, id=TS018080000000087
1: type=USB_DEVICE, id=0123456789ABCDEF
//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);
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'键退出运行