0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于凌蒙派开发板的FastDeploy适配

福州市凌睿智捷电子有限公司 2023-02-22 14:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FastDeploy简介

FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具, 支持云边端部署。提供超过 160+Text,Vision, Speech和跨模态模型开箱即用的部署体验,并实现端到端的推理性能优化。包括 物体检测、字符识别(OCR)、人脸、人像扣图、多目标跟踪系统、NLP、Stable Difussion文图生成、TTS 等几十种任务场景,满足开发者多场景、多硬件、多平台的产业部署需求。

准备工作本文的FastDeploy适配过程需要准备如下:·凌蒙派-RK3568开发板(即需FastDeploy适配的设备终端)·Ubuntu(即建立于虚拟机的Linux编译环境)目前,我已将FastDeploy适配到凌蒙派开发板上,可用于目标检测、人脸检测、人脸识别、人脸对齐、图像分割、OCR等领域,这将大大提高凌蒙派开发板在边缘计算方面的能力。

编译步骤

我们推荐在PC上进行交叉编译(即在Ubuntu进行交叉编译)。

git clone https://github.com/PaddlePaddle/FastDeploy.gitcd FastDeploy# 如果您使用的是develop分支输入以下命令git checkout developmkdir build && cd buildcmake .. -DCMAKE_C_COMPILER=/home/zbc/opt/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \-DCMAKE_CXX_COMPILER=/home/zbc/opt/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \-DCMAKE_TOOLCHAIN_FILE=./../cmake/toolchain.cmake \-DTARGET_ABI=arm64 \-DENABLE_ORT_BACKEND=OFF \-DENABLE_RKNPU2_BACKEND=ON \-DENABLE_VISION=ON \-DRKNN2_TARGET_SOC=RK356X \-DCMAKE_INSTALL_PREFIX=${PWD}/fastdeploy-0.0.0make -j12make install

目标检测模型速度表

为了方便大家选择最适合自己的模型,我们选取了目前最流行的几个模型,并整理了模型速度表供大家快速浏览。以下测试速度均为端到端的速度。

2424a866-b220-11ed-ad0d-dac502259ad0.png

Demo演示

FastDeploy提供了统一的接口,可以快速的切换模型,这里以Yolov5为例子,展示如何在凌蒙派RK3568上进行目标检测。

编写代码

// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at//// http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.#include "fastdeploy/vision.h"void RKNPU2Infer(const std::string& model_file, const std::string& image_file) {auto option = fastdeploy::RuntimeOption();option.UseRKNPU2();auto format = fastdeploy::RKNN;auto model = fastdeploy::RKYOLOV5(model_file, option,format);auto im = cv::imread(image_file);fastdeploy::DetectionResult res;fastdeploy::TimeCounter tc;tc.Start();if (!model.Predict(im, &res)) {std::cerr << "Failed to predict." << std::endl;return;}auto vis_im = fastdeploy::VisDetection(im, res,0.5);tc.End();tc.PrintInfo("RKYOLOV5 in RKNN");std::cout << res.Str() << std::endl;cv::imwrite("vis_result.jpg", vis_im);std::cout << "Visualized result saved in ./vis_result.jpg" << std::endl;}int main(int argc, char* argv[]) {if (argc < 3) {std::cout<< "Usage: infer_demo path/to/model_dir path/to/image run_option, ""e.g ./infer_model ./picodet_model_dir ./test.jpeg"<< std::endl;return -1;}RKNPU2Infer(argv[1], argv[2]);return 0;}

编译代码

# 编译mkdir buildcd buildcmake .. -DFASTDEPLOY_INSTALL_DIR=${PWD}/../fastdeploy-0.0.0make -j4# 下载图片wgethttps://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg# 运行./infer_rkyolov5 ../Model/yolov5-s-relu/yolov5s_relu_tk2_RK356X_i8.rknn./000000014439.jpg

展示结果

输入图片

24473020-b220-11ed-ad0d-dac502259ad0.png

输出图片

24cd8760-b220-11ed-ad0d-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    89

    文章

    38121

    浏览量

    296693
  • 开发板
    +关注

    关注

    25

    文章

    6125

    浏览量

    113386
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    触觉智能Purple Pi OH开发板率先适配OpenHarmony6.0 Release,鸿蒙明星开发板

    2025年9月19日,在官网上线开源鸿蒙OpenHarmony6.0Release仅13天,触觉智能宣布旗下PurplePiOH开发板成功完成OpenHarmony6.0Release系统适配。这一
    的头像 发表于 10-29 08:00 361次阅读
    触觉智能Purple Pi OH<b class='flag-5'>开发板</b>率先<b class='flag-5'>适配</b>OpenHarmony6.0 Release,鸿蒙明星<b class='flag-5'>开发板</b>

    【作品合集】飞嵌入式OK527N-C开发板测评

    T527N开发板试用】使用WiFi传输文件,烧写固件 【飞T527N开发板试用】7寸RGB屏幕适配与TP驱动 【飞
    发表于 09-22 15:54

    【飞T527N开发板试用】7寸RGB屏幕适配与TP驱动

    7寸RGB屏幕适配 显示屏bootloader适配 在T527开发板的源码中uboot并没有开源,所以这里需要寻找厂家支持来做适配。我这里厂家的支持还是非常及时的。很快就发来了打包好的
    发表于 08-15 18:06

    deepin 25成功适配魔方3开发板

    近日,deepin(深度)社区宣布,deepin 25 已正式适配魔方 3(RUBIK Pi 3)开发板,并完成产品兼容性认证!
    的头像 发表于 07-28 15:14 842次阅读

    RK3568开发板暗藏32位兼容开关?飞嵌入式带你一键解锁!

    RK3568是一款64位处理器,飞嵌入式为其提供的交叉编译器也是64位的,然而部分用户可能需要在RK3568开发板上运行32位应用。本文将详细阐述如何使用32位交叉编译器,编译出32位应用,并使其能够在飞嵌入式RK3568
    的头像 发表于 07-19 08:49 4187次阅读
    RK3568<b class='flag-5'>开发板</b>暗藏32位兼容开关?飞<b class='flag-5'>凌</b>嵌入式带你一键解锁!

    有ARM,NPU,FPGA三种核心的开发板 — 米尔安路飞龙开发板

    最近我发现一个有趣的开发板。这个开发板集合了ARM核心,NPU核心甚至还有FPGA核心。它就是米尔新出的YM90X开发板。它基于安路科技所打造的芯片上海安路信息科技于2021年在上交所科创
    的头像 发表于 06-13 08:03 1360次阅读
    有ARM,NPU,FPGA三种核心的<b class='flag-5'>开发板</b> — 米尔安路飞龙<b class='flag-5'>派</b><b class='flag-5'>开发板</b>

    deepin 25 Beta版本成功适配Radxa ROCK 5系列开发板

    近日,deepin(深度)社区宣布,deepin 25 Beta 版本已正式适配 Radxa ROCK 5 系列开发板,包括 ROCK 5B、ROCK 5B+ 和 ROCK 5 ITX 等型号。
    的头像 发表于 06-06 17:25 1281次阅读

    瑞芯微RK3506开发板Ethercat主站适配开发详细攻略,实测微秒级抖动延迟!

    瑞芯微RK3506开发板Ethercat主站适配开发详细攻略,实测微秒级抖动延迟!
    的头像 发表于 05-09 15:57 1383次阅读
    瑞芯微RK3506<b class='flag-5'>开发板</b>Ethercat主站<b class='flag-5'>适配</b><b class='flag-5'>开发</b>详细攻略,实测微秒级抖动延迟!

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制FLASH外设

    1、实验简介本实验将演示如何在小-RK2206开发板上使用IOT库的FLASH接口,进行FLASH编程开发。例程将创建一个任务,实现FLASH读写操作。例程源代码:https
    的头像 发表于 04-22 14:49 689次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口控制FLASH外设

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制UART外设

    1、实验简介本实验将演示如何在小-RK2206开发板上使用IOT库的UART接口,进行UART编程开发。例程将创建一个任务,通过配置UART引脚,实现UART读写操作。例程源代码:
    的头像 发表于 04-22 14:22 801次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口控制UART外设

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO中断

    1、实验简介本实验将演示如何在小-RK2206开发板上使用IOT库的GPIO中断模式,进行GPIO编程开发。例程将创建一个任务,通过配置GPIO引脚为中断模式,实现GPIO中断操作
    的头像 发表于 04-21 10:39 895次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口控制GPIO中断

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO外设

    1、案例简介本案例主要是如何在小-RK2206开发板上使用IOT库的GPIO接口,进行GPIO编程开发。例程将创建一个任务,通过配置GPIO引脚,实现GPIO读写操作。例程源代码:
    的头像 发表于 04-11 15:36 1619次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口控制GPIO外设

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制ADC外设

    1、案例简介本案例主要讲解如何在小-RK2206开发板上使用IoT库的ADC接口,进行ADC编程开发。例程内容为创建一个任务,读取按键的ADC值,并打印到串口。例程源代码:http
    的头像 发表于 04-10 16:00 713次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口控制ADC外设

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制PWM外设

    1、案例简介本案例是在小-RK2206开发板上使用IoT库PWM接口,进行PWM编程开发。例程将创建一个任务,每隔5秒将PWM0~10依次启用,输出1000Hz。
    的头像 发表于 04-09 08:59 2067次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b>RK2206<b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口控制PWM外设

    deepin深度操作系统适配Milk-V Megrez开发板

    近期,deepin(深度)社区宣布,deepin 深度操作系统已完成对搭载 EIC7700X 芯片的 Milk-V Megrez 开发板的全球首发适配
    的头像 发表于 02-28 10:53 969次阅读