当前位置: 首页 > news >正文

网站开发需要多线程北京地铁优化

网站开发需要多线程,北京地铁优化,ui设计师自我介绍,如何简述网站建设流程概述 设想一下#xff0c;你在多地拥有多个仓库#xff0c;要同时监控每个仓库的实时状况#xff0c;这对于时间和精力而言#xff0c;都构成了一项艰巨挑战。从成本和可靠性的层面考量#xff0c;大规模部署计算设备也并非可行之策。一方面#xff0c;大量计算设备的购…概述 设想一下你在多地拥有多个仓库要同时监控每个仓库的实时状况这对于时间和精力而言都构成了一项艰巨挑战。从成本和可靠性的层面考量大规模部署计算设备也并非可行之策。一方面大量计算设备的购置、维护成本会让你的预算不堪重负另一方面设备数量增多出现故障的概率也会相应提升这无疑会给仓库的稳定监控带来极大的不确定性。 基于云的系统看似是一个解决之道但实际上也存在诸多弊端。云计算系统在运行过程中常常会受到网络状况、服务器负载等因素的影响导致数据处理速度缓慢甚至出现服务中断的情况。并且随着数据量的不断增长以及使用时长的累积基于云的系统所产生的费用也会持续攀升这无疑会进一步加重你的经济负担。 在此种情形下边缘计算技术的优势便凸显出来。与传统模式中将数据在本地与遥远服务器之间来回传输不同边缘计算支持在数据产生的源头直接进行本地处理。这种方式不仅能够显著减少数据传输过程中的延迟还能降低对网络带宽的依赖从而大大提高了数据处理的效率和稳定性。 在众多实现边缘计算的方案中在 树莓派 上运用 YOLO11 是一种极具性价比的选择。树莓派以其低成本、低功耗且具备一定计算能力的特性为边缘计算提供了一个理想的硬件载体。而 YOLO11 作为先进的目标检测算法能够高效精准地识别和分析图像或视频中的目标物体。将二者结合能够在仓库现场实现实时的数据处理与分析为仓库的安全管理和高效运营提供有力保障。 一、树莓派 树莓派最初是一款信用卡大小的计算机其设计初衷是激发人们对基础计算机科学的兴趣。随着时间的推移它已发展成为各类应用的首选平台尤其是在边缘人工智能领域表现出色。2012 年树莓派基金会发布了第一代树莓派当时售价仅约合人民币 230 元这一举措立刻在爱好者、教育工作者和专业人士群体中引发了极大的轰动。截至目前树莓派系列的销量已突破6000 万台且每一代产品都在前一代的基础上实现了性能的显著提升。 1.1 树莓派各代产品快速概览 树莓派 1作为低成本单板计算领域的先驱其处理能力相对有限更适合执行轻量级任务以及开展教育项目。树莓派 2 和 3这两代产品在 CPU 性能上有了显著升级内存容量也有所增加同时还内置了 Wi - Fi 和蓝牙连接功能。这些改进为开展轻量级服务器任务、机器人技术研究以及早期人工智能实验奠定了坚实基础。树莓派 4引入了 USB 3.0 端口最高支持 8GB 内存并配备了更强大的 GPU。这些特性拓宽了其在计算机视觉、媒体中心以及更复杂应用场景中的应用范围。树莓派 5作为最新款型号配备了2.4 GHz 四核 ARM Cortex - A76 处理器、经过优化的VideoCore VII GPU支持PCIe连接以及4GB 或 8GB 配置的 LPDDR4X - 4267 SDRAM性能得到了进一步飞跃。 1.2 为什么树莓派非常适合边缘人工智能 成本效益高树莓派价格低于人民币 700 元树莓派 5 基础版通常约为 350 元这使得用户能够在不同位置部署多个设备。想象一下用这些小巧的板子装备整个工厂车间实现分布式实时分析而无需担心超出预算。强大的社区支持丰富的开源文档、众多的技术论坛以及社区驱动的库让故障排除变得更加轻松。例如picamera2 或 libcamera 等工具可以直接集成摄像头模块用户几乎可以立即捕获图像数据用于基于 YOLO 的推理。改进的硬件加速随着树莓派各代新产品的不断推出其硬件加速能力也在持续提升。树莓派 5 增强的 GPU再加上可能添加的谷歌珊瑚 USB 加速器能够为更复杂的 YOLO11 变体提供额外的性能提升。 注意本文使用的是树莓派 58GB。 如果有关注过YOLO系列模型就会了解到它们以高精度和实时目标检测能力而闻名。从 YOLOv3、YOLOv5 到 YOLOv8 等每一个新版本都引入了更优的架构以更快速、高效地处理计算机视觉任务。如今YOLO11进一步推动了这些优化以下是它在像树莓派这样的边缘设备上脱颖而出的原因 低延迟由于采用了诸如C3k2和C2PSA模块等架构改进YOLO11 不仅能够准确地检测目标还能以毫秒级延迟完成检测。这在需要快速决策以节省时间、资源甚至挽救生命的场景中至关重要例如无人机应用、机器人技术或安全系统。NCNN 集成通过将 PyTorch 权重转换为专为边缘设备设计的NCNN格式推理时间最多可缩短62%使实时检测不再仅仅停留在理论层面。保持高 mAP尽管 YOLO11 的模型更为轻量但在常见的目标检测基准测试中仍能保持约**55%**的平均精度均值mAP。这种速度和精度的平衡确保了在提高效率的同时不会牺牲检测质量。 我们之所以选择在树莓派上使用YOLO11是因为它在速度、精度和资源效率方面实现了最佳平衡。传统的解决方案可能需要强大的 GPU 或大型计算集群才能实现实时结果而 YOLO11 可以直接在边缘设备上运行——无需额外的硬件加速器当然如果您有需求也可以添加。 二、实现流程 为了在树莓派上实现高效的实时目标检测与跟踪我们首先需要构建一个适合的开发环境并对YOLO11模型进行优化导出。以下是详细的实现流程 2.1 环境搭建 首先创建一个独立的Python开发环境以确保依赖库的兼容性与稳定性 conda create -n yolo11xrpi python3.11 conda activate yolo11xrpi pip install ultralytics此环境配置为后续模型导出与推理任务提供了必要的基础支持。 2.2 模型导出策略 鉴于树莓派的硬件特性我们重点关注三种模型导出格式OpenVINO、NCNN 和 MNN。这三种格式均针对边缘设备进行了优化能够在保持模型精度的同时显著提升推理速度。 OpenVINO作为英特尔推出的工具包OpenVINO通过深度优化能够在英特尔硬件及兼容设备如树莓派上实现高效的神经网络推理。它提供了丰富的预优化模型与推理引擎能够显著降低推理延迟。NCNN由腾讯开发的高性能神经网络推理框架专为ARM架构的移动与边缘设备设计。NCNN以其轻量级特性与高效的计算性能成为在树莓派上部署深度学习模型的理想选择。MNN阿里巴巴开发的移动神经网络框架针对移动与嵌入式平台进行了全面优化。MNN支持多种硬件加速技术包括GPU加速能够在树莓派上实现快速且稳定的推理。 我们使用Ultralytics提供的导出命令将YOLO11模型转换为上述格式 yolo export modelyolo11n.pt formatncnn详细的导出参数与配置可参考Ultralytics文档。 在本实验中我们选用YOLO11n模型作为主要研究对象因其在存储空间占用与检测精度之间取得了良好的平衡能够满足树莓派的硬件约束同时提供较高的帧率与检测精度。 2.3 代码实现 2.3.1 导入库与设置 导入必要的Python库为后续的图像处理、模型推理与结果展示提供支持 import cv2 import numpy as np import time from ultralytics import YOLO from collections import defaultdictOpenCVcv2用于视频帧的读取、边界框的绘制以及图像的显示与保存。NumPynp用于高效的数值计算与数组操作便于处理模型输出的检测结果。time用于测量每帧的处理时间进而计算实时帧率FPS。YOLOUltralytics提供的YOLO模型接口用于加载预训练模型并执行检测与跟踪任务。defaultdict用于存储跟踪目标的历史信息无需手动检查键是否存在简化了代码逻辑。 2.3.2 定义推理函数 定义inference函数封装模型推理的完整流程 def inference(model,mode,task,video_pathNone,save_outputFalse,output_pathoutput.mp4,show_outputTrue,countFalse,show_tracksFalse, ):pass该函数接受以下参数 model加载的YOLO模型实例。mode输入模式可选值为cam使用网络摄像头或video从视频文件读取。task任务类型可选值为detect目标检测或track目标跟踪。video_path当mode为video时指定视频文件的路径。save_output是否保存处理后的视频输出。output_path保存输出视频的路径。show_output是否实时显示处理结果。count是否对检测到的目标进行计数。show_tracks是否绘制目标的运动轨迹。 2.3.3 预处理 根据输入模式初始化视频捕获对象并设置相关参数 if mode cam:cap cv2.VideoCapture(0) elif mode video:if video_path is None:raise ValueError(Please provide a valid video path for video mode.)cap cv2.VideoCapture(video_path) else:raise ValueError(Invalid mode. Use cam or video.)track_history defaultdict(lambda: []) seen_ids_per_class defaultdict(set)fourcc cv2.VideoWriter_fourcc(*mp4v) input_fps cap.get(cv2.CAP_PROP_FPS) out None创建VideoCapture对象用于从网络摄像头或视频文件中读取视频帧。初始化track_history字典用于存储每个跟踪目标的历史轨迹信息便于后续绘制运动轨迹。初始化seen_ids_per_class字典用于记录每个类别中已检测到的唯一目标ID以便进行目标计数。设置视频编码格式与输入视频的帧率为保存输出视频做准备。 2.3.4 主处理循环 进入主循环逐帧处理视频数据 while cap.isOpened():success, frame cap.read()if not success:print(Failed to read frame or end of video)breakstart_time time.time()class_counts defaultdict(int)if task track:results model.track(frame, conf0.3, persistTrue, trackerbytetrack.yaml)elif task detect:results model.predict(frame, conf0.5)else:raise ValueError(Invalid task. Use detect or track.)end_time time.time()annotated_frame results[0].plot()从视频捕获对象中读取一帧若读取失败则退出循环。记录当前帧的处理开始时间用于后续计算帧率。根据任务类型检测或跟踪调用YOLO模型的相应方法进行推理。 在跟踪模式下设置较低的置信度阈值conf0.3并启用目标持久化跟踪persistTrue同时指定跟踪算法配置文件bytetrack.yaml。在检测模式下使用较高的置信度阈值conf0.5进行目标检测。 记录当前帧的处理结束时间并调用results[0].plot()方法生成带有检测或跟踪结果的注释帧。 2.3.5 YOLO的输出张量解析 YOLO模型的输出结果存储在results列表中其中results[0]包含了当前帧的检测或跟踪信息。关键属性如下 results[0].boxes包含检测到的目标边界框信息。 boxes.xywh以x_center, y_center, width, height格式表示边界框的中心点坐标、宽度与高度。boxes.cls每个边界框对应的类别索引可通过results[0].names将其映射为类别名称。boxes.id仅在跟踪模式下可用每个边界框的唯一跟踪ID用于在连续帧中标识同一目标。 2.3.6 检测与跟踪逻辑 检测模式 在检测模式下对每个检测到的目标进行类别统计 if task detect:results model.predict(frame, conf0.5)if results[0].boxes and results[0].boxes.cls is not None:boxes results[0].boxes.xywh.cpu()class_ids results[0].boxes.cls.int().cpu().tolist()names results[0].namesif count:class_counts defaultdict(int)for cls_id in class_ids:class_counts[names[cls_id]] 1获取检测结果中的边界框坐标、类别索引以及类别名称映射表。若启用了目标计数功能countTrue则遍历类别索引列表统计每个类别的目标数量。 跟踪模式 在跟踪模式下利用目标的唯一ID进行更复杂的处理 if task track:results model.track(frame, conf0.3, persistTrue, trackerbytetrack.yaml)if task track and results[0].boxes.id is not None:track_ids results[0].boxes.id.int().cpu().tolist()for box, cls_id, track_id in zip(boxes, class_ids, track_ids):x, y, w, h boxclass_name names[cls_id]if count:seen_ids_per_class[class_name].add(track_id)track_history[track_id].append((x, y))获取跟踪结果中的目标ID列表。遍历每个目标的边界框、类别索引与跟踪ID执行以下操作 若启用了目标计数功能则将当前目标的跟踪ID添加到对应类别的集合中确保每个目标仅被计数一次。将当前目标的坐标信息添加到其跟踪历史记录中便于后续绘制运动轨迹。 2.3.7 目标计数与轨迹绘制 在跟踪模式下通过维护目标的唯一ID实现对每个类别的唯一目标数量统计 if count:seen_ids_per_class[class_name].add(track_id)在检测模式下仅对当前帧中的目标进行简单计数 if task detect and count:for cls_id in class_ids:class_counts[names[cls_id]] 1通过这两种方式我们能够在不同任务模式下灵活地统计目标数量满足多样化的应用场景需求。 三、推理结果与性能分析 为了评估YOLO11模型在树莓派上的推理性能我们对其进行了全面的基准测试。测试环境为树莓派5使用YOLO11n模型在COCO数据集上进行评估图像尺寸设置为640×640像素。测试结果如下表所示 格式状态大小 (MB)mAP (50-95)推理时间 (ms/帧)FPSPyTorch✅5.40.610360.092.78TorchScript✅10.50.608472.032.12ONNX✅10.20.608156.846.38OpenVINO✅10.40.60980.9312.36TensorFlow SM✅26.50.608510.251.96TensorFlow GD✅10.30.608515.561.94TensorFlow Lite✅10.30.608354.822.82PaddlePaddle✅20.40.608665.491.5MNN✅10.10.610115.838.63NCNN✅10.20.611292.103.42 从测试结果可以看出OpenVINO和MNN格式在树莓派上表现出了较高的推理速度分别达到了12.36 FPS和8.63 FPS。其中OpenVINO格式在保持较高平均精度均值mAP的同时具有最快的推理速度适合对实时性要求较高的应用场景而NCNN格式虽然在推理速度上略逊于OpenVINO但其mAP值最高达到了0.611表明在检测精度方面具有一定优势。 为了进一步验证模型在实际应用中的效果我们分别使用MNN、OpenVINO和NCNN格式进行了目标检测与跟踪任务的推理实验并通过视频展示了推理结果。以下是部分实验结果的描述 3.1 MNN格式推理结果 使用MNN格式进行目标检测与跟踪任务的推理实验结果表明该格式在树莓派上能够实现较为流畅的实时推理平均帧率约为8-10 FPS。实验中模型能够准确地检测出视频中的目标并为其绘制边界框与类别标签。在跟踪任务中目标的运动轨迹能够被清晰地绘制出来且跟踪效果稳定即使在目标发生遮挡或快速运动的情况下仍能保持较好的跟踪精度。这表明MNN格式在树莓派上具有良好的适用性能够在资源受限的嵌入式设备上实现高效的目标检测与跟踪。 在树莓派上部署yolo11目标检测与行人追踪效果 3.2 OpenVINO格式推理结果 在OpenVINO格式下进行目标检测与分割任务的推理实验结果显示该格式在树莓派上能够实现较高的推理速度平均帧率可达10-12 FPS。在目标检测任务中模型能够快速准确地检测出视频中的目标并为其绘制边界框与类别标签。在目标分割任务中模型能够对目标进行较为精细的分割分割结果的边界较为清晰且与目标的实际轮廓较为贴合。这表明OpenVINO格式在树莓派上具有较高的推理效率和较好的分割精度适合对实时性和分割精度要求较高的应用场景。 基于OpenVINO对yolo11分割推理结果 3.3 NCNN格式推理结果 使用NCNN格式进行目标检测与姿态估计任务的推理实验实验结果表明该格式在树莓派上能够实现较为准确的目标检测与姿态估计。在目标检测任务中模型能够准确地检测出视频中的目标并为其绘制边界框与类别标签。在姿态估计任务中模型能够对目标的姿态进行较为准确的估计并绘制出目标的关键点与姿态骨架。虽然NCNN格式的推理速度略低于OpenVINO格式但其检测精度和姿态估计精度较高能够满足对检测精度和姿态估计精度要求较高的应用场景。 在树莓派上输出基于 yolo11 的姿态 ncnn 推理结果 3.4 实时检测、跟踪与计数实验结果 了模拟实时工业应用场景我们进行了实时目标检测、跟踪与计数的实验。实验中模型能够实时地检测出视频中的目标并对其进行跟踪与计数。在检测任务中模型能够准确地检测出视频中的目标并为其绘制边界框与类别标签在跟踪任务中目标的运动轨迹能够被清晰地绘制出来且跟踪效果稳定在计数任务中模型能够准确地统计出每个类别的目标数量并实时显示在屏幕上。实验结果表明该系统能够在实时场景中实现高效的目标检测、跟踪与计数满足工业生产中的实时监控与统计需求。 yolo11在树莓派基于mnn与ncnn效果 四、 回顾与总结 4.1 树莓派在边缘人工智能中的重要性 树莓派作为一种经济实惠且功能强大的嵌入式计算平台在边缘人工智能领域具有重要的应用价值。随着边缘人工智能市场的快速发展越来越多的应用场景需要在本地进行数据处理以减少对云端计算的依赖降低延迟提高数据隐私性。树莓派凭借其低功耗、高性能的特点以及强大的社区支持成为在边缘部署人工智能的理想选择之一。特别是树莓派5的推出其在处理能力和硬件接口方面都有了显著提升进一步拓展了其在边缘人工智能领域的应用范围。 4.2 YOLO11模型的优化特性 YOLO11模型是专门为边缘设备优化的目标检测模型与YOLOv8相比它在显著降低模型复杂度最多降低37%的同时仍保持了较高的检测精度约85%的平均精度均值。这种优化使得YOLO11能够在资源受限的树莓派上实现高效的实时目标检测为边缘设备上的复杂计算机视觉任务提供了可能。其轻量级的模型结构和高效的推理性能使其成为在树莓派上部署目标检测应用的首选模型之一。
http://www.zqtcl.cn/news/329050/

相关文章:

  • 网站设计外文文献建建设网站公司
  • 打开网站说建设中是什么问题网站开发收税
  • 海口建设厅网站grimhelm wordpress
  • 如何快速提升网站pr淮北房产网
  • 微网站和微信广州营销型网站建设团队
  • 企业网站制作托管微信建站网站
  • h5网站如何做排名济南网站建设选聚搜网络
  • 网站建设 手机wordpress 仿煎蛋主题
  • 织梦可以仿所有网站吗电子商务网站建设臧良运课后答案
  • 怎样创建个人购物网站wordpress没有外观
  • 衡水手机网站建设公司计算机大专学历有用吗
  • 有哪些网站做的很好桐乡市建设局官方网站
  • 做公众号和网站一样吗免费正能量网站下载ww
  • 使用帝国做软件下载网站源码顺义区做网站的公司
  • 网站用什么颜色成都网站建设公司服务
  • 重庆手机网站方案设计凡科建站网站怎么保存发给别人
  • 北京住房建设官方网站xampp wordpress服务器
  • 卖衣服的网站建设素材网站免费短视频
  • 萍乡网站建设哪家公司好搜索引擎推广预算
  • 如何做网站不容易被攻击网站定位策划书
  • 自己做网站去哪买服务器多说wordpress
  • 网站排名突然没有了网站开发背景图
  • 比较容易做流量的网站设计模板素材网站
  • 电商网站建设 网站定制开发兰州展柜公司网站建设
  • 临沂城乡建设管理局网站腾讯体育
  • 一个空间怎么放两个网站ps个人网站首页怎么制作
  • 云南通耀建设工程有限公司网站国际购物网站平台有哪些
  • 网站建设外包服务上海网站建设公司怎么分辨好坏
  • 建筑类企业网站模板下载微信搜索推广
  • 上海网站备案在哪里wordpress短链接关键字