从零到一:YOLOv13模型在RK3588上的部署心路与避坑指南

【性能实测】YOLOv13在RK3588上的RKNN部署与推理优化全解析 本文详细解析了YOLOv13在RK3588芯片上的RKNN部署与推理优化全流程。从环境准备、ONNX模型导出优化,到RKNN模型转换和深度性能测试,提供了完整的实战指南。重点探讨了量化策略选择(FP16/INT8)、内存优化技术和端侧部署技巧,帮助开发者在边缘设备上实现高效稳定的目标检测应用。 阅读详情

从零到一:YOLOv13模型在RK3588上的部署心路与避坑指南

作为一名长期深耕边缘计算和嵌入式AI部署的工程师,我经历过无数次模型部署的坎坷与突破。最近在RK3588平台上部署YOLOv13的完整历程,让我深刻体会到从理论到实践的鸿沟有多大。这篇文章将分享我从环境搭建到最终部署成功的完整心路历程,记录那些踩过的坑和突破的关键点,希望能为同行提供有价值的参考。

1. 环境准备:构建稳定的基础生态

RK3588作为瑞芯微的旗舰级AIoT芯片,其强大的NPU算力为YOLOv13这样的先进目标检测模型提供了硬件基础。但在开始模型转换之前,一个稳定可靠的开发环境是成功的前提。

我的环境配置选择如下:

开发主机配置:

  • Ubuntu 20.04 LTS(推荐稳定的长期支持版本)
  • Python 3.8(与RKNN Toolkit2兼容性最佳)
  • Conda虚拟环境(避免系统Python环境污染)
  • RKNN Toolkit2 v2.3.2(当前最新稳定版本)

提示:强烈建议使用conda创建独立的Python环境,避免不同版本依赖库之间的冲突。我在初次尝试时使用了系统自带的Python 3.10,结果在安装RKNN依赖时遇到了诸多兼容性问题。

安装conda环境的具体步骤:

# 创建名为rknn的conda环境
conda create -n rknn python=3.8 -y
conda activate rknn

# 安装基础依赖
pip install numpy opencv-python onnx onnxsim

RKNN Toolkit2安装注意事项: RKNN Toolkit2的安装包需要从官方GitHub仓库获取,根据Python版本选择合适的whl文件。我使用的是rknn_toolkit2-2.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl。

# 安装RKNN Toolkit2
pip install rknn_toolkit2-2.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

验证安装是否成功:

from rknn.api import RKNN
print("RKNN Toolkit2导入成功")

2. 模型转换:从PyTorch到RKNN的蜕变之旅

YOLOv13的模型转换是整个流程中最具挑战性的环节。与之前的YOLO版本相比,v13在检测头和后处理逻辑上都有显著变化,这直接影响了ONNX导出和RKNN转换的过程。

2.1 ONNX导出关键修改

YOLOv13的ONNX导出需要修改两处核心代码,这与YOLOv8/v9的修改思路类似但具体位置不同。

第一处修改:检测头输出结构 在yolov13-main/ultralytics/nn/modules/head.py的第64行附近,找到检测头的forward函数,修改输出结构:

# 原始代码通常是这样:
# return x if self.training else (torch.cat(z, 1),) if self.export else (torch.cat(z, 1), x)

# 修改为ONNX导出友好的格式:
y = []
for i in range(self.nl):
    t1 = self.cv2[i](x[i])
    t2 = self.cv3[i](x[i])
    y.append(t1)
    y.append(t2)
return y

第二处修改:模型导出脚本 在yolov13-main/ultralytics/engine/model.py中添加ONNX导出代码:

# 在合适的位置添加导出代码
import torch
dummy_input = torch.randn(1, 3, 640, 640)
input_names = ["data"]
output_names = ["output1", "output2", "output3", "output4", "output5", "output6"]
torch.onnx.export(self.model, dummy_input, "yolov13n.onnx", 
                 verbose=False, input_names=input_names, 
                 output_names=output_names, opset_version=11)
print("ONNX转换成功")

注意:导出ONNX时可能会报错,但这通常不影响ONNX文件的生成。重要的是确保输出节点的名称和数量与后续RKNN转换的期望一致。

2.2 ONNX模型简化与优化

直接导出的ONNX模型往往包含冗余操作和复杂结构,使用onnx-simplifier可以显著优化模型结构:

pip install onnxsim
onnxsim yolov13n.onnx yolov13n_simplified.onnx

简化后的模型不仅体积更小,在RKNN转换过程中的兼容性也更好。我对比过简化前后的模型,转换成功率从60%提升到了95%以上。

2.3 RKNN转换实战

RKNN转换是整个流程的核心,正确的参数配置决定了最终模型的性能和精度。

基础转换命令:

python convert.py yolov13n_simplified.onnx rk3588 fp ./yolov13n.rknn

转换参数详解:

参数含义推荐值
target_platform目标硬件平台rk3588
quantize_dtype量化类型fp16或int8
optimization_level优化等级3(最高)
batch_size批次大小根据应用场景调整

我在转换过程中遇到的主要问题及解决方案:

问题1:节点不支持

E Catch exception when building RKNN model!
E Traceback (most recent call last):
E   File "rknn/api/rknn_base.py", line 1245, in rknn.api.rknn_base.RKNNBase.build
E   File "rknn/api/rknn_base.py", line 2198, in rknn.api.rknn_base.RKNNBase._build_model
E   File "rknn/base/RKNNlib/app/importer/import_onnx.py", line 214, in rknn.base.RKNNlib.app.importer.import_onnx.ImportONNX.run
E   File "rknn/base/RKNNlib/app/importer/import_onnx.py", line 196, in rknn.base.RKNNlib.app.importer.import_onnx.ImportONNX.run
E   File "rknn/base/RKNNlib/converter/convert_onnx.py", line 394, in rknn.base.RKNNlib.converter.convert_onnx.convert_onnx.run
E ValueError: The node of Div is not supported yet!

解决方案: 使用ONNX Simplifier简化模型,或者修改模型结构避免使用不支持的算子。

问题2:形状推断错误

E Shape inference error for node: %output.1 = Gather[axis=0](%127, %128)
E Input tensor shapes: [1,3,80,80,85], [1]

解决方案: 调整ONNX导出时的opset版本,通常opset=11或12兼容性较好。

3. 板端部署:从理论到实践的跨越

模型转换成功后,接下来就是在RK3588开发板上进行实际部署。这个阶段需要考虑内存占用、推理速度、功耗平衡等多个实际问题。

3.1 环境配置与依赖安装

RK3588板端需要安装RKNN Runtime环境:

# 安装基础依赖
sudo apt update
sudo apt install -y python3-opencv libopenblas-dev

# 安装RKNN Lite
pip3 install rknn_toolkit_lite2-2.3.2-cp38-cp38-linux_aarch64.whl

# 配置NPU驱动
sudo cp librknnrt.so /usr/lib/
sudo chmod +x /usr/bin/rknn_server

3.2 推理代码实现

基于RKNN Lite的推理代码需要正确处理输入输出格式:

import numpy as np
from rknnlite.api import RKNNLite
import cv2

class YOLOv13RKNN:
    def __init__(self, model_path):
        self.rknn = RKNNLite()
        ret = self.rknn.load_rknn(model_path)
        if ret != 0:
            raise Exception("Load RKNN model failed")
        
        ret = self.rknn.init_runtime()
        if ret != 0:
            raise Exception("Init runtime environment failed")
    
    def preprocess(self, image):
        # 保持与训练时相同的预处理流程
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
        image = cv2.resize(image, (640, 640))
        image = image.astype(np.float32) / 255.0
        image = np.transpose(image, (2, 0, 1))
        return np.expand_dims(image, 0)
    
    def postprocess(self, outputs, conf_threshold=0.5):
        # YOLOv13特有的后处理逻辑
        detections = []
        for i, output in enumerate(outputs):
            # 处理不同尺度的输出
            if output.ndim == 4:
                output = output.squeeze(0)
            
            # 解析检测结果
            # ... 具体后处理代码
        return detections
    
    def infer(self, image):
        input_data = self.preprocess(image)
        outputs = self.rknn.inference(inputs=[input_data])
        return self.postprocess(outputs)

# 使用示例
detector = YOLOv13RKNN("yolov13n.rknn")
image = cv2.imread("test.jpg")
results = detector.infer(image)

3.3 性能优化技巧

通过实际测试,我发现以下几个优化策略能显著提升推理性能:

内存优化:

  • 使用内存池复用技术减少内存分配开销
  • 合理设置RKNN的workspace大小
  • 启用NPU的权重共享功能

计算优化:

  • 使用INT8量化获得最佳性能(精度损失可接受的情况下)
  • 调整NPU频率平衡功耗和性能
  • 使用多线程并行处理输入输出

在我的测试环境中,YOLOv13n在RK3588上的性能表现:

量化类型推理时间内存占用mAP@0.5
FP1638ms1.2GB0.872
INT822ms0.8GB0.856

4. 调试与优化:解决实际部署中的挑战

即使模型转换和基础部署完成,在实际应用中仍然会遇到各种问题。这部分分享我在调试过程中积累的经验。

4.1 常见问题诊断

精度下降严重:

  • 检查预处理是否与训练时一致(归一化方式、通道顺序等)
  • 验证后处理逻辑是否正确解析NPU输出
  • 使用量化感知训练(QAT)改善INT8量化精度

推理速度不达标:

  • 使用rknn.benchmark()工具分析性能瓶颈
  • 检查NPU频率是否达到预期值
  • 优化模型结构,减少冗余计算

内存占用过高:

  • 调整模型分片策略,减少峰值内存使用
  • 使用动态形状优化内存分配
  • 启用内存压缩功能

4.2 高级调试技巧

当遇到难以定位的问题时,我通常采用以下调试方法:

层次化验证:

  1. 首先在PC端使用RKNN Toolkit2验证模型正确性
  2. 然后在板端使用相同输入对比输出结果
  3. 逐步缩小问题范围,定位具体环节

性能分析工具:

# 使用RKNN内置的性能分析功能
rknn.benchmark(model_path, inputs=[test_data])

# 使用Linux性能工具分析系统瓶颈
perf stat -e instructions,cache-misses,branch-misses ./inference_program

日志与监控: 在代码中添加详细的日志输出,监控每个阶段的耗时和内存使用情况。我发现很多时候性能瓶颈不在NPU计算本身,而是在数据预处理或后处理阶段。

5. 实战案例:完整部署流程再现

为了让读者更好地理解整个部署流程,我以一个具体的应用场景为例,展示从模型训练到最终部署的完整过程。

5.1 自定义数据集训练

假设我们需要部署一个安全帽检测模型,首先使用YOLOv13在自定义数据集上训练:

# 训练命令示例
yolo detect train data=safety_hat.yaml model=yolov13n.pt epochs=100 imgsz=640

训练完成后验证模型性能,确保mAP达到应用要求(通常>0.8)。

5.2 模型转换与优化

按照前面介绍的方法导出ONNX并转换为RKNN格式。对于安全帽检测这种对实时性要求较高的应用,我推荐使用INT8量化:

# INT8量化转换
python convert.py safety_hat.onnx rk3588 i8 safety_hat.rknn --dataset calibration_dataset.txt

量化校准数据集应包含50-100张代表性的训练图像,覆盖各种光照和场景条件。

5.3 板端集成与测试

将转换好的RKNN模型集成到实际应用中:

class SafetyHatDetector:
    def __init__(self, model_path):
        self.detector = YOLOv13RKNN(model_path)
        self.class_names = ['person', 'safety_hat', 'no_hat']
    
    def process_frame(self, frame):
        results = self.detector.infer(frame)
        return self.visualize_results(frame, results)
    
    def visualize_results(self, frame, results):
        # 绘制检测结果和安全状态提示
        for det in results:
            class_id, conf, bbox = det
            label = f"{self.class_names[class_id]}: {conf:.2f}"
            color = (0, 255, 0) if class_id == 1 else (0, 0, 255)
            cv2.rectangle(frame, bbox, color, 2)
            cv2.putText(frame, label, (bbox[0], bbox[1]-10), 
                       cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2)
        return frame

# 在主循环中调用
detector = SafetyHatDetector("safety_hat.rknn")
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    if not ret:
        break
    
    result_frame = detector.process_frame(frame)
    cv2.imshow("Safety Hat Detection", result_frame)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

5.4 性能测试与优化

在实际部署中,我们还需要进行全面的性能测试:

准确性测试: 使用测试数据集验证模型的准确性和召回率,确保满足应用需求。

稳定性测试: 长时间运行测试,监控内存泄漏和性能衰减情况。

极端条件测试: 在不同光照、天气条件下测试模型的鲁棒性。

通过这个完整的案例,我们可以看到YOLOv13在RK3588上的部署不仅是一个技术过程,更是一个系统工程,需要综合考虑精度、速度、功耗等多个因素。

从第一次尝试部署YOLOv13到最终成功运行,我花了将近两周时间,期间遇到了无数的问题和挑战。但正是这些挑战让我对模型部署有了更深入的理解。现在回头看,那些踩过的坑都变成了宝贵的经验。RK3588强大的NPU算力与YOLOv13优秀的检测性能相结合,确实能够在边缘设备上实现实时的高精度目标检测,这为嵌入式AI应用开辟了新的可能性。

在实际项目中,我发现最重要的不是追求极致的性能指标,而是在精度、速度、功耗之间找到最适合具体应用场景的平衡点。每个项目都有其独特的需求和约束条件,灵活调整和优化才是成功部署的关键。

基于STM32F1XX 、HAL库的LTR-303ALS-01 环境光传感器驱动应用C语言程序设计 printf("制造商ID: 0x%02X\r\n", LTR303_ReadManufacID());printf("器件ID: 0x%02X\r\n", LTR303_ReadPartID());LTR-303ALS-01是一款数字环境光传感器(ALS),由Lite-On公司生产。printf("LTR-303ALS初始化失败!printf("LTR-303ALS初始化成功!printf("数据无效\r\n");* @param mode: 0-待机, 1-激活。 阅读详情

相关推荐

Zemax操作33--5倍激光扩束器

5倍扩束

lzy750750的博客 2934

从零到一:YOLOv13模型在RK3588上的部署心路与避坑全记录

本文详细记录了YOLOv13模型在RK3588芯片上的完整部署流程,包括环境配置、ONNX模型导出优化、RKNN转换与精度调优等关键步骤。针对部署过程中的常见错误和性能瓶颈,提供了实用的解决方案和优化技巧,帮助开发者高效完成边缘计算设备上的AI模型部署。

h0i1j2k3l的博客 801

Dify 1.0+内网部署全攻略:模型插件离线安装与信创环境适配

本文详细介绍了Dify 1.0+版本在内网环境中的部署全攻略,重点解析了模型工具插件的离线安装方法与信创环境适配技巧。通过实战经验分享,帮助企业在严格的内网隔离条件下高效部署AI平台,解决插件依赖和安装难题,提升大语言模型的应用效率。

weixin_29224529的博客 276

客户端请求总站上下游加速回应:CDN、边缘计算与全链路优化实践

客户端请求总站上下游加速,不是单一技术能解决的问题,而是DNS 调度、CDN 边缘、协议优化、多级缓存、异步并行、熔断降级、全链路观测的组合拳。落地时应遵循"先度量、再优化、后验证"的节奏,优先解决 P99 长尾,再逐步打磨细节。让请求少走路、让数据多缓存、让调用能并行、让故障快隔离。

AshleyCreek的博客 441

数据获取竟如此简单——全球SRTM 90m DEM V4.1数据

SRTM(Shuttle Radar Topography Mission)是由NASA联合国际合作伙伴开展的雷达地形测绘项目,通过航天飞机搭载的合成孔径雷达系统,于2000年通过发射并接收地表反射的雷达信号,获取全球三维地形数据,这一任务填补了高精度全球地形数据的空白。而本文通过十余行的python代码,就更简单、方便地获取这些数据。

m0_38065162的博客 1401

Multisim14.2新建项目教程

这里用一个案例,具体说明电路仿真分析的基本流程。等。本案例的电路目的:对一个交流小信号进行采样、放大,将交流小信号转换成脉冲信号。然后用一个简单的数字计数器对脉冲信号的周期进行计数,并用七段数码管和发光二极管显示计数过程。启动Multisim 14.2软件,在“工作区”出现一个名为“设计1”的空白图纸,选择“文件”→“另存为(a)…”,出现一个标准的Windows保存文件对话框。按导航定位到要保存文件的位置,输入“×××”作为文件名,然后单击“保存”按钮。注意。

Skiko的博客 4030

AI边缘计算如何重塑工业计算机?Wi-Fi 7模组带来哪些连接升级?

随着生成式AI、机器视觉和工业机器人逐步进入工业现场,传统工业计算机正在向AI边缘计算平台转型。本文从Edge AI技术架构、CPU/GPU/NPU异构计算、工业视觉、机器人协同等方向展开分析,进一步解析Wi-Fi 7的320MHz信道带宽、4096-QAM及MLO多链路操作技术,以及其在工业计算机、AI边缘计算盒和智能工业终端中的应用价值。同时结合O2072PM、O2072PB无线模组,探讨新一代工业设备的无线连接设计方向。

Qogrisys无线连接方案商 310

【python】epub的电子书繁体字与简体字转换

中文繁体与简体转换

xiexianyou666的博客 3093

算力上天之后的电与静:星上边缘计算载荷带外管理网络的低功耗调度与辐射容错

星上边缘计算正把商业遥感与通信卫星的数据处理模式从"下传-地面处理"推向"在轨筛选-按需下传",由此引入一类新型载荷电子学问题:算力模组的功耗随任务负载剧烈波动,其管理需要独立于高速数据平面的带外管理网络,而该网络自身必须在辐射环境中保持高可信,方能执行对算力模组的监测与恢复。本文以文献综述方式,梳理星上智能载荷的体系结构、带外管理平面的功能定位与辐射容错需求,并以国科安芯ASM1042S系列抗辐射CANFD收发器(型号ASM1042S2S)为样本评估适配性。

ANSILIC的博客 341

【ubuntu24.04】auto remove后,重启,kernel panic ,please reboot your computer vfs unable to mount root fs

Ubuntu 24.04系统在运行auto remove后出现内核恐慌(kernel panic)无法启动,显示"VFS: unable to mount root fs"错误。该问题是由于当前内核被清除导致系统无法挂载根分区。解决步骤包括:1)尝试用GRUB菜单中的旧内核启动;2)在GRUB中临时编辑启动参数;3)使用Ubuntu启动盘进行chroot修复;4)使用Boot-Repair工具一键修复。成功启动后,需要重新安装linux-generic等元包,重建initramfs并更新

突围 1217

【Docker】完美解决拉取镜像超时报错:ERROR: Get https://registry-1.docker.io/v2/

因为我们下载的镜像是外网的镜像资源,所以下载的速度会非常的慢,甚至大概率下载时会报错,所以需要我们配置一个国内的服务器镜像地址,国内服务器镜像地址有很多,这里咱们就说一下阿里镜像加速器的配置方法。

liu_chen_yang的博客 12万+

忘平科技|边缘计算如何以自适应解算内河航道主动防撞预警系统动态通航净高?

内河航道主动防撞预警系统将桥区雷达水位计采集的数据实时注入边缘大脑,根据汛期与枯水期的水面消长,全天候、高频动态计算桥梁下部通航孔的实际净空限界。无论是面对夏季几十米一遇的特大洪峰过境,还是冬季低水位期的安全通航,海姆达尔系统都能始终如一地将“不可触碰的激光防撞红线”精准悬停在安全高度,在多座内河特大桥梁的实际服役中,彻底终结了超高监测因水位暴涨暴落而引发的漏报与虚警困局。

2601_96546604的博客 228

突破Cloudflare 5秒盾!Python爬虫+GPT分析JS混淆实战(附完整代码)

这篇文章的核心观点其实不是“怎么过CF”,而是如何把LLM嵌入逆向工程的工作流。AI不会取代逆向工程师,但它正在重新定义逆向工程师的工作方式。过去我们80%的时间花在读懂混淆代码上,现在这部分可以外包给GPT,我们把精力集中在架构判断、异常处理和系统设计这些真正需要人类直觉的地方。技术会变,CF的防护会升级,GPT的能力也会迭代。但这种“人机协作拆解复杂问题”的方法论,比任何具体的绕过技巧都更有长期价值。参考资料Cloudflare Bot Management官方文档。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 542

工业级AIoT实战:基于边缘计算的加油站多模态安全预警架构设计

高危场景的报警延迟需控制在毫秒级,且不能受制于外网状态。 本地AI推理:在加油站机房部署具备NPU算力的边缘计算网关。采用轻量级目标检测模型(如YOLOv8n)对视频流抽帧分析,本地解析出“抽烟”、“未穿防静电服”等事件。 规则引擎与GPIO控制:网关内置本地规则引擎。当解析到可燃气体浓度超标(如超过25% LEL)或AI识别到违章时,不仅通过MQTT上报云端,同时直接触发本地GPIO继电器,联动防爆声光报警器、排风扇或切断非消防电源。

sxyxhwl的博客 162

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

边缘计算网关接入工业装备,数据接口如何设计与验证?

其中,deviceId表示设备身份,schemaVersion表示数据结构版本,timestamp用于记录数据时间,quality用于说明数据有效性。这一过程的目标并不是让所有PLC使用相同的数据地址,也不是保证一套采集程序适用于所有设备,而是在设备内部实现变化时,尽可能维持上层业务接口的稳定。较合理的设计是在设备出厂时分配稳定的身份标识,并建立与产品序列号、型号、控制程序版本和数据接口版本之间的对应关系。工业装备的数据接口通常包含两个不同层次:控制器内部的数据访问接口,以及业务系统实际使用的数据接口。

Robustel的博客 572

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

工业物联网实战:基于Modbus与边缘计算的工厂能耗监测系统架构设计

本地推理与报警:在车间部署边缘计算网关(搭载轻量级算力芯片)。网关在本地运行规则引擎,当检测到某条产线能耗异常飙升或水管压力骤降时,直接在本地触发告警,无需等待云端指令。 断网续传机制:网关内置SQLite本地数据库。外网断开时,采集数据暂存本地;网络恢复后,通过MQTT协议按时间戳向上层平台断点续传,确保能耗数据的连续性。

sxyxhwl的博客 207

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

多台设备接入边缘计算网关,采集周期和负载怎么计算?

本文通过假设性的混合设备采集场景,分别分析变量更新量、协议请求量、RS485轮询时间和CPU处理负载的计算方法,并讨论如何通过实际测试判断系统容量边界。同样是10台PLC,如果另一项目需要每秒读取一次,而且每台PLC的请求数量更多,那么实际通信任务就可能明显增加。因此,在进行容量规划时,至少需要明确每台设备的实际协议请求数、控制器响应时间及采集软件的任务组织方式。答:需要统计每台PLC的变量规模、实际协议请求次数和设备响应情况,再结合采集软件的执行方式判断,不能仅根据20台设备数量推算。

Robustel的博客 379

包装设备换型后,边缘计算网关如何设计数据映射与配置版本?

对于有明确追溯要求的项目,可以将新配置先加载到待生效状态,完成基础字段检查后,再根据经过确认的换型状态执行切换,并记录旧配置结束与新配置开始的时间。比如,设备身份、产品标识、运行状态、生产计数和报警信息可以采用统一字段,但不同规格中的原始变量来源、数量单位及状态解释规则,需要根据实际设备设计确定。具体是否需要停止采集任务,应取决于软件架构。PLC及原有控制系统继续负责设备工艺控制,边缘应用依据实际软件设计完成数据采集、映射、规则关联及必要的记录处理,MES等业务系统负责进一步的生产计划、工单及业务统计。

Robustel的博客 555

智慧农业IoT实战:基于边缘计算的野外水产养殖高可用预警架构设计

该架构的核心在于算力下沉与本地闭环。通过边缘计算技术,系统在极端断网环境下依然能保障核心的“增氧保命”功能,是野外物联网工程落地的可靠范式。

sxyxhwl的博客 128

〖物联网终端实战 04〗智能分拣机器人的边缘计算:如何将指令延迟压到 10 毫秒以内?

智能分拣机器人需满足10ms端到端延迟,这是系统正常运行的物理底线。通过三级架构:机器人本体(实时控制)、边缘节点(视觉推理与调度)、云端(全局优化),实现低延迟闭环。边缘侧采用轻量K8s(K3s)、MQTT QoS0+本地Broker、INT8量化与模型剪枝,确保推理在10ms内完成。关键避坑:推理不可上云、量化须真实校准、实时控制禁用高级语言、边缘节点必须断网自运行。未来核心竞争力在于延迟稳定性而非算法先进性。

Eyf • 半字节的博客 839

架构师视角:如何构建高可用的多场景AIoT系统?——基于边缘计算与算法调度的实践

场景化AIoT系统的核心壁垒,在于协议兼容的广度与边缘算力调度的灵活性。通过微服务与边缘计算架构,开发者能够以极低的边际成本,将技术底座复制到千差万别的业务场景中。

sxyxhwl的博客 217

MES与SCADA共用PLC数据:边缘计算网关的Tag映射与分发设计

例如某些仪表返回的原始值需要乘以系数才能得到工程值,那么采集层应说明提供的是原始值还是转换结果,避免一个系统再执行一次换算,另一个系统直接使用转换结果。这种方式可以保留原有采集链路,减少新增系统直接访问PLC的工作,但前提是现有服务具备适当的数据内容、时效和接口能力。其中,device_id用于标识数据来源,tag表示字段含义,observed_at记录观察或采集时间,quality表达应用定义的数据有效性。比较合理的设计,是在采集层维护设备标识、原始地址、数据类型和业务字段之间的映射关系。

Robustel的博客 259

杰和科技CB4-411:AI边缘计算的“性能小钢炮”

CB4-411搭载英特尔酷睿Ultra处理器(可选i5-125U、i5-125H、i7-155H),不仅拥有最高支持16核的CPU性能,更集成全新AI引擎:具备11 TOPS算力的专用NPU,可独立高效处理人脸识别、行为分析、语音识别等任务,不占用CPU资源;而将AI模型从云端下沉到边缘端,离不开强大、稳定且高效的硬件支撑。今天为您介绍一款专为AI边缘计算打造的“性能小钢炮”,杰和科技CB4-411 Mini-ITX主板,它集高性能、强连接、高扩展于一身,是各行业智能化转型的理想选择。

2409_87297247的博客 165

工业物联网实战:基于UWB与边缘计算的隧道无网环境人员定位架构设计

采用“UWB+边缘计算+断网续传”的架构,有效解决了隧道弱网环境下的数据采集与实时预警难题,为高危及封闭场景的人员安全管理提供了可靠的物联网底座。

sxyxhwl的博客 176

边缘计算的节点,别成为新的「运维黑洞」

网络不一定常通,离线是常态而不是异常这四个字(散、杂、弱、断),决定了边缘运维不能用"云端那套"。**2. 统一纳管,从装到管。**设备上线即自动注册、纳管,版本、配置、状态都进台账,从"知道有几台"到"每台什么状态都清楚"。我见过不少项目,云上治理得井井有条,边缘几百个节点却"放了就忘"——成了新的运维黑洞。轻量代理、统一纳管、远程可控、离线可编、版本灰度——这五件事做扎实,边缘才不是"上线的负担",而是"越用越顺的生产力"。> 记住:边缘节点不是"部署完就完事",而是"管住了,才算真正上线"。

wutiantesi的博客 229

智慧农业IoT架构实战:基于边缘计算的弱网环境数据采集与联动控制设计

环境数据采集:温湿度、土壤墒情等传感器多采用RS485接口。边缘网关需内置Modbus RTU协议栈,通过轮询机制读取寄存器数据并解析为JSON格式。 视频流接入:网络摄像机(IPC)通过RTSP协议接入,由边缘网关内置的流媒体模块拉流,结合NPU进行本地轻量级AI推理(如病虫害识别、人形入侵检测)。 硬联动控制:网关通过GPIO或继电器输出接口,直接连接大棚的卷帘机、风机或水泵。为避免强电干扰,硬件设计上需做光电隔离。

sxyxhwl的博客 173
上一篇: MTK HAL3单帧算法集成实战:从Feature配置到自定义Metadata
下一篇: 单片机工程师从零到月薪15K:C语言与STM32实战进阶指南
python9snake
博客等级 码龄1天 0粉丝 1724原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值