【Arduino UNO Q】物体识别
本文介绍了 Arduino UNO Q 开发板结合 OpenCV 和 Ultralytics 库实现 YOLO26 板端部署,并实现物体识别的项目设计,包括环境部署、模型获取、流程图、工程代码、效果演示等。
项目介绍
准备工作:OpenCV 安装、Ultralytics 软件包安装、YOLO26 预训练模型获取等;
YOLO26:目标检测、实例分割、图像分类、姿态估计、旋转框检测等;
准备工作
包括硬件连接、OpenCV 安装、Ultralytics 库部署、YOLO26 模型下载等。
硬件连接
连接显示屏(或 SSH 远程登录、数据线 ADB 登录);
连接鼠标键盘;
WiFi 连接无线网;
使用 PD 电源供电;


OpenCV
终端执行指令
sudo apt install python3-opencv python3 -c "import cv2; print(cv2.__version__)"
输出 opencv 版本号


创建并激活虚拟环境
sudo apt install python3-venv python3 -m venv .venv source .venv/bin/activate


升级 pip 并安装 OpenCV 全家桶
pip install --upgrade pip pip install opencv-python opencv-contrib-python
验证安装
python -c "import cv2,sys,numpy;print('OpenCV:',cv2.__version__,'NumPy:',numpy.__version__)"输出版本号


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


在目标检测、跟踪、实例分割、图像分类 和 姿态估计 等任务中表现出色。
安装 ultralytics 软件包
# 安装 CPU 版 PyTorch(不装 CUDA,避免内存占用) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu pip install -U ultralytics
验证安装
python -c "import ultralytics, sys, torch; print('ultralytics', ultralytics.__version__, '| torch', torch.__version__, '| Python', sys.version.split()[0])"输出相应版本号


详见:ultralytics .
YOLO26
YOLO26 是 Ultralytics 为 YOLO 系列模型算法的最新演进,专为边缘设备开发,以实现更快、更轻、更易于访问的部署。


详见:YOLO26 | Ultralytics .
优化
根据 YOLO26n 在十种不同格式(PyTorch, TorchScript, ONNX, OpenVINO, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch)的基准测试结果,包括每种组合的状态、大小、mAP50-95(B) 指标和推理时间,


使用 NCNN 格式的模型速度最快,所需推理时间最短,因此这里采用 NCNN 推理的方案。
流程图

工程代码
新建 or_ncnn.py 文件,添加如下代码
from ultralytics import YOLO
import cv2
# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates 'yolo26n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("yolo26n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Windows show results
img = results[0].plot()
cv2.namedWindow("Results", cv2.WINDOW_NORMAL)
cv2.imshow("Results", img)
cv2.waitKey(0)
cv2.destroyAllWindows()保存代码;
物体识别
终端执行 python or.py 指令运行程序,终端打印处理信息和识别结果


弹窗显示物体识别结果


更多效果


运动


桌面


总结
本文介绍了 Arduino UNO Q 开发板结合 OpenCV 和 Ultralytics 库实现 YOLO26 板端部署,并实现物体识别的项目设计,包括环境部署、模型获取、流程图、工程代码、效果演示等,为相关产品在边缘 AI 领域的快速开发和应用设计提供了参考。
我要赚赏金
