张掖市网站建设_网站建设公司_ASP.NET_seo优化
2026/1/18 17:29:19 网站建设 项目流程

【工业树莓派 CM0 NANO 单板计算机】YOLO26 部署方案

本文介绍了工业树莓派 CM0 NANO 单板计算机结合 OpenCV 和 Ultralytics 库实现 YOLO26 板端部署,并实现目标识别、姿态估计、图像分割、图像分类、旋转框检测的项目设计,包括环境部署、模型获取、关键代码、效果演示等。

项目介绍

  • 准备工作:OpenCV 安装、Ultralytics 软件包安装、预训练模型下载等;
  • YOLO26:目标检测、实例分割、图像分类、姿态估计、旋转框检测等;

为了快速实现图像分类,需完成 OpenCV 部署和 Ultralytics 软件包的安装等操作。

准备工作

包括硬件连接、OpenCV 安装、Ultralytics 库部署、YOLO26 模型下载等。

硬件连接

  • 连接 WiFi 实现无线网络通信;
  • 使用 Type-C 数据线实现设备供电;

OpenCV 安装

OpenCV 是一个开源的计算机视觉库,广泛应用于图像处理、视频分析和机器学习等领域。

为了避免影响系统 Python,采用虚拟环境的方案。

  • 创建并激活虚拟环境
python3 -m venv venv# 创建虚拟环境 venvsourcevenv/bin/activate# 激活虚拟环境 venv
  • 安装 opencv
pipinstallopencv-python opencv-contrib-python
  • 验证安装
python3 -c"import cv2,sys,numpy;print('OpenCV:',cv2.__version__,'NumPy:',numpy.__version__)"
  • 输出版本号

详见:OpenCV .

Ultralytics 部署

Ultralytics 基于多年在计算机视觉和人工智能领域的基础研究,打造出尖端、先进的 YOLO 模型;具有速度快精度高操作简便等特点。

在目标检测、跟踪、实例分割、图像分类 和 姿态估计 等任务中表现出色。

  • 安装 ultralytics 软件包(虚拟环境下)
pipinstall--no-cache-dir --no-deps torch# 省内存pipinstallultralytics
  • 验证安装
python3 -c"import ultralytics, sys, torch; print('ultralytics', ultralytics.__version__, '| torch', torch.__version__, '| Python', sys.version.split()[0])"
  • 输出相应版本号

详见:ultralytics .

YOLO26

Ultralytics YOLO26 是 YOLO 系列实时对象检测器的最新演进,从头开始专为边缘和低功耗设备而设计。它引入了简化的设计,消除了不必要的复杂性,同时集成了有针对性的创新,以实现更快、更轻、更易于访问的部署。

YOLO26 的架构遵循三个核心原则:

  • 简洁性:YOLO26是端到端模型,直接生成预测结果,无需非极大值抑制(NMS)。通过消除这一后处理步骤,推理变得更快、更轻量。
  • 部署效率:端到端设计消除了管道的整个阶段,从而大大简化了集成,减少了延迟。
  • 训练创新:YOLO26 引入了MuSGD 优化器,带来了增强的稳定性和更快的收敛,将语言模型中的优化进展转移到计算机视觉领域。
  • 任务特定优化:YOLO26 针对专业任务引入了有针对性的改进,包括用于 Segmentation 的语义分割损失和多尺度原型模块,用于高精度 姿势估计 的残差对数似然估计 (RLE),以及通过角度损失优化解码以解决 旋转框检测 中的边界问题。

这些创新共同提供了一个模型系列,该模型系列在小对象上实现了更高的精度,提供了无缝部署,并且在 CPU 上的运行速度提高了 43%,使其更适合资源受限环境。

详见:YOLO26 | Ultralytics .

模型获取

下载所需模型文件;

wgethttps://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26n.ptwgethttps://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26n-seg.ptwgethttps://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26n-cls.ptwgethttps://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26n-pose.ptwgethttps://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26n-obb.pt

将文件存放在./model路径。

流程图

开始

载入模型

载入图片

YOLO检测/识别

绘制标签

弹窗显示

退出

目标检测

目标检测是一项涉及识别图像或视频流中目标的位置和类别的任务。

目标检测器的输出是一组边界框,这些边界框包围了图像中的目标,以及每个框的类别标签和置信度分数。

详见:Object Detection .

代码

终端执行touch or.py新建程序文件,并添加如下代码

importcv2fromultralyticsimportYOLO model=YOLO('./model/yolo26n.pt')# 加载模型img=cv2.imread('./img/road.jpg')# 加载图片results=model(img,imgsz=640,conf=0.25)# 返回 Boxesannotated=results[0].plot()# 画框和标签cv2.imshow("YOLO Detection",annotated)# 弹窗显示cv2.waitKey(0)cv2.destroyAllWindows()

保存代码。

效果

  • 终端执行python or.py指令,对图片进行物体识别
  • 终端打印识别到的物体、置信度、耗时等信息

  • 弹窗显示识别结果

实例分割

实例分割是识别图像中的各个对象,并将它们与图像的其余部分分割开来。

实例分割模型的输出是一组掩码或轮廓,它们勾勒出图像中每个对象,以及每个对象的类别标签和置信度分数。

详见:Instance Segmentation .

代码

终端执行touch seg.py新建程序文件,并添加如下代码

importcv2fromultralyticsimportYOLO model=YOLO('./model/yolo26n-seg.pt')# 分割模型img=cv2.imread('./img/bicycle.jpg')results=model(img,imgsz=640,conf=0.25)# 推理分割annotated=results[0].plot(boxes=False,labels=False)# maskcv2.namedWindow("YOLO26-Seg",cv2.WINDOW_NORMAL)cv2.imshow("YOLO26-Seg",annotated)cv2.waitKey(0)cv2.destroyAllWindows()

保存代码。

效果

  • 终端执行python seg.py指令,对目标进行图像分割
  • 终端打印识别到的物体、坐标、耗时等信息

  • 弹窗显示图像分割结果

图像分类

图像分类是将整个图像分类到一组预定义的类别中。

图像分类器的输出是单个类别标签和一个置信度分数。

详见:Image Classification .

代码

终端执行touch cls.py新建程序文件,并添加如下代码

importcv2fromultralyticsimportYOLO model=YOLO('./model/yolo26n-cls.pt')# 加载模型img=cv2.imread('./img/road.jpg')# 加载图片results=model(img,imgsz=640,conf=0.25)# 返回 Boxesannotated=results[0].plot()# 画框和标签cv2.imshow("YOLO-Classify",annotated)# 弹窗显示cv2.waitKey(0)cv2.destroyAllWindows()

保存代码。

效果

  • 终端执行python cls.py指令,对图片目标进行分类;
  • 终端打印识别到的物体、置信度、耗时、坐标等信息

  • 弹窗显示图像分类结果

姿态估计

姿势估计是一项涉及识别图像中特定点的位置的任务,这些点通常称为关键点。关键点可以代表对象的各个部分,例如关节、地标或其他独特特征。

姿势估计模型的输出是一组点,这些点代表图像中对象上的关键点,通常还包括每个点的置信度分数。

详见:Pose Estimation .

代码

终端执行touch pos.py新建程序文件,并添加如下代码

importcv2fromultralyticsimportYOLO model=YOLO('./model/yolo26n-pose.pt')# 关键点模型img=cv2.imread('./img/dance.jpg')results=model(img,imgsz=640,conf=0.25)# 返回 Keypoints# annotated = results[0].plot(kpt_radius=4, kpt_line=True) # 画点+连线annotated=results[0].plot(boxes=False,# 无外框labels=False,# 无标签conf=False,# 无置信度kpt_radius=4,# 点大小kpt_line=True# 骨架连线)cv2.imshow("YOLO-Pose",annotated)cv2.waitKey(0)cv2.destroyAllWindows()

保存代码。

效果

  • 终端执行python pos.py指令,对人体姿态进行关键点标注;
  • 终端打印识别到的人体数量、推理速度、置信度、耗时等信息

  • 弹窗显示姿态估计结果

旋转框检测

定向对象检测通过引入一个额外的角度来更准确地定位图像中的对象,从而比标准对象检测更进一步。

定向目标检测器的输出是一组旋转的边界框,这些边界框精确地包围了图像中的目标,以及每个框的类别标签和置信度分数。

详见:Oriented Bounding Boxes Object Detection .

代码

终端执行touch obb.py新建程序文件,并添加如下代码

importcv2fromultralyticsimportYOLO model=YOLO('./model/yolo26n-obb.pt')# 加载模型img=cv2.imread('./img/parking.jpg')# 加载图片results=model(img,imgsz=640,conf=0.25)# 返回 Boxesannotated=results[0].plot(labels=False)# 画框cv2.imshow("YOLO-obb",annotated)# 弹窗显示cv2.waitKey(0)cv2.destroyAllWindows()

保存代码。

效果

  • 终端执行python obb.py指令,对图片进行目标识别和框选;
  • 终端打印识别到的车辆种类、数量、置信度、耗时等信息

  • 弹窗显示旋转框标注结果

总结

本文介绍了工业树莓派 CM0 NANO 单板计算机结合 OpenCV 和 Ultralytics 库实现 YOLO26 板端部署,并实现目标识别、姿态估计、实例分割、图像分类、旋转框检测的项目设计,包括环境部署、模型获取、关键代码、效果演示等,为相关产品在边缘 AI 领域的快速开发和应用设计提供了参考。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询