嵌入式AI部署---基于RK3588运行yolov5(2)
📅 2026/7/21 23:10:18
👁️ 次浏览
前言在上篇博客中撰写了关于yolov5在RK3588上运行的流程 在学习的过程中发现后处理很难我一直不理解输出结果是如何存储的它比较抽象对于我来讲很难理解经过一段时间的学习有了一个比较好的理解思路。1. 后处理的传参在rknn_outputs_get中获得了NPU推理后的处理结果这个结果有三个输出结果outputs[i].buf作为后处理的输入部分对应模型三个尺度的输出张量。rknn_outputs_get(ctx,outputs_num,outputs,NULL);post_process((int8_t*)outputs[0].buf,(int8_t*)outputs[1].buf(int8_t*)outputs[2].buf,....)这里的outputs是三个检测头的输出特征图YOLOv5采用多尺度检测三个输出头对应不同下采样步长这里输出有三个不同类型是因为有不同的检测目标输出头步长网格大小锚框尺寸检测目标output0880×80[10,13], [16,30], [33,23]小目标output11640×40[30,61], [62,45], [59,119]中目标output23220×20[116,90], [156,198], [373,326]大目标下面我们对于这个输出的结果进行理解有助于理解后续后处理code的编写2. 数据格式数据类型int8_t量化后的 8 位整数内存布局NCHW 或 NHWC取决于模型导出时的配置此处代码按NCHW处理每个输出是一个4 维张量形状为[batch图片数量, channels通道, grid_h特征图高度, grid_w特征图宽度]batch1例如output0[1, 255, 80, 80]stride8output1[1, 255, 40, 40]stride16output2[1, 255, 20, 20]stride32其中255 3 × (80 5)3每个网格预测 3 个锚框anchor0/1/280COCO 数据集的 80 个类别概率5x, y, w, h, objectness框坐标和置信度3. 数据内容每个网格的每个锚框对应一组长度为 85 的数据排列顺序通常是[x, y, w, h, obj_conf是否存在目标, cls0_prob第1个类, cls1_prob(第2个类), ..., cls79_prob(第80个类)]在这里你还是不知道如何存储的话听我下面的讲解4. 数据的立体讲解-----最重要理解方式想象一个三维立方体三个维度分别是通道 C0 ~ 254共 255 层高度 H0 ~ 79共 80 行宽度 W0 ~ 79共 80 列也就是说我们对立方体横向砍一刀得到一个横截面它的宽和高是H和W立方体的高是对应着通道C 我们可以将高度和C一一对应它一共有255层对应255个通道数**255个通道数如何排列**如下图所示[ x, y, w, h, obj_conf, cls0_prob, cls1_prob, ..., cls79_prob ]上面总计85个这个立方体有85*3 255,为什么有要× 3 有3个锚框那么锚框0对应通道0-84锚框1对应通道85-169锚框2对应通道170-254在这里插入图片描述5. 如何理解内存中的存储以output0[1, 255, 80, 80]stride8这个为例子特征图的宽和高为80×80 则x、y、w、h、c 将会分别占用6400的存储单元x占6400个y占6400个w占6400个…从立方体的从上往下看先对应的是x,后对应的是yw等那么存储的时候先在内存中存放6400个x 后存6400个y, 再就是6400个w依次存完。由于有三个锚框先存完「第 1 个锚框」的全部数据X/Y/W/H/C/80 个类再接着存「第 2 个锚框」的全部数据最后存「第 3 个锚框」的全部数据。单个锚框存储的总单元基础 5 参数X(6400) Y(6400) W(6400) H(6400) C(6400) 5×640080 个类别80×6400单个锚框总长度(580)×6400 85×6400 5440003个锚框5 80 * 3 * 6400 1,632,000内存地址低 → 高 ┌──────────────────────┐ │ 通道 0 (x_a0) │ 6400 个 int8 │ 通道 1 (y_a0) │ 6400 个 int8 │ 通道 2 (w_a0) │ 6400 个 int8 │ 通道 3 (h_a0) │ 6400 个 int8 │ 通道 4 (obj_a0) │ 6400 个 int8 │ 通道 5 (cls0_a0) │ 6400 个 int8 │ ... │ │ 通道 84 (cls79_a0) │ 6400 个 int8 ├──────────────────────┤ │ 通道 85 (x_a1) │ 6400 个 int8 │ ... │ │ 通道 169 (cls79_a1) │ 6400 个 int8 ├──────────────────────┤ │ 通道 170 (x_a2) │ 6400 个 int8 │ ... │ │ 通道 254 (cls79_a2) │ 6400 个 int8 └──────────────────────┘ 总大小 255 × 6400 1,632,000 个 int8总结相对来说比较清晰了吧后面再告诉如何写后处理部分的code如何找到对应的数据
摘要:传统语音IVR机器人依赖固定关键词、预设话术、有限流程跳转,存在语义理解弱、无法多轮对话、不能处理复杂业务、人工转接率高等痛点,早已无法满足企业精细化客服与外呼场景需求。基于大模型的新一代语音机器人,彻底重构了语音…
📅 2026/7/20 20:26:05
FunClip终极指南:三十分钟搭建本地AI视频剪辑工作站 【免费下载链接】FunClip FunASR-powered video transcription, subtitle generation, and LLM-assisted clipping tool with a local Gradio UI. 项目地址: https://gitcode.com/GitHub_Trending/fu/FunClip …
📅 2026/7/20 20:26:05
摘要:400电话合规监管在2025-2026年持续收紧,实名制、录音告知、营销外呼限制、数据本地化四大要求成为企业通信系统的硬性门槛。本文从技术开发视角出发,系统梳理当前监管框架与真实处罚案例,给出外呼时段校验、DNC拒接名单管理、…
📅 2026/7/20 20:26:05
1. iPhone邮件分类混乱的痛点解析作为一名长期使用iPhone处理工作邮件的用户,我深刻理解邮件被错误分类带来的困扰。系统自带的邮件应用会根据算法自动将邮件归类到"主要"、"促销"、"社交"等标签下,但这种自动化分类经常出…
📅 2026/7/21 23:09:46
Spring Boot + Spring AI 实战:从聊天接口到 Function Calling,支撑日均千万级智能客服的架构演进
很多团队第一次把大模型接进客服系统时,都会先做一个最小闭环:前端把用户问题发到 /chat,后端调用模型,模型返回一段自然语言答案。这个方案在演示阶段几乎总是成立,因为…
📅 2026/7/21 23:09:46
14个血泪场景复盘:Spring Boot分布式缓存的致命陷阱与高可用架构设计 缓存最容易给团队制造一种危险错觉: 命中率高了,系统就稳了。 真正把服务打垮的,往往不是“没上 Redis”,而是上线后才发现缓存和数据库、缓存和流量、缓存和故障恢复之间,根本不是一个简单的 Key-Valu…
📅 2026/7/21 23:09:46
1. 中国选手在国际公众演讲比赛中的突破性表现2023年国际公众演讲比赛(IPSC)全球总决赛传来捷报,两位来自中国的选手成功晋级全球六强,创造了中国在该项赛事中的历史最佳成绩。这一突破性进展不仅展现了我国青年演讲者的卓越实力,也标志着中国…
📅 2026/7/21 23:09:46
1. 项目背景与行业痛点快递行业近年来呈现爆发式增长,但随之而来的碳排放问题日益凸显。传统燃油配送车辆占行业碳排放总量的35%以上,电动车的续航里程和充电效率又难以满足高强度配送需求。这种矛盾在双十一等购物节期间尤为突出——据行业统计…
📅 2026/7/21 23:09:46
1. 项目概述:在本地跑出接近GPT-4o语音交互体验的完整链路“Whisper.cpp Llama.cpp ElevenLabs: Local GPT-4o-like Voice Heaven”——这个标题不是营销噱头,而是我过去三个月反复打磨、压测、拆解再重装的实操成果。它描述的是一条完全脱离云端大模型…
📅 2026/7/21 23:08:46
本文关键词:geo geo测试你是不是也遇到过这种奇葩事?明明你的网站内容写得比同行好,图片更清晰,甚至价格还更低,但在搜索结果里就是排不进去。特别是做本地生意的老板,那种看着隔壁老王明明啥也不是,却天天坐在收银台数钱的滋味,真的憋屈。我最近为了搞懂这个所谓的“地…
📅 2026/7/21 0:00:39
1. Octane Render与C4D的黄金组合:为什么选择这个方案?在三维创作领域,渲染器的选择往往决定了作品的最终呈现质量和工作效率。作为Cinema 4D(C4D)用户,Octane Render的GPU加速特性与实时预览功能ÿ…
📅 2026/7/21 0:00:41
1. GPMC接口设计:从硬件连接到软件配置的全局视角在嵌入式系统开发中,尤其是基于TI Sitara系列如AM263x这类高性能微控制器的项目里,外部存储器的扩展几乎是绕不开的一环。无论是存放大量非易失性代码的NOR Flash,还是作为高速数据…
📅 2026/7/21 0:00:41
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/21 1:04:03
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/21 1:04:03
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/21 1:04:03
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/21 7:04:23
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/21 17:04:52
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/21 5:04:16