Toybrick

中文 / EN
Toybrick Wiki教程 TB-RK1808S0 Mobilenet-ssd被动模式开发指南
Mobilenet-ssd被动模式开发指南

源码下载

示例源码下载链接:百度云  OneDrive

https://github.com/rockchip-toybrick/slave_mobilenet_ssd

PC上运行计算棒

本节主要描述如何在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上运行计算棒

本节主要描述如何在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'键退出运行










产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


返回顶部