前面已经调通了Linux系统,包括SSH,VNC,Python等等
本篇玩个“大”的——大模型yolo,图片分割识别等。
注意:全程需要在连接网络的情况下运行。
如图:开发板通过Type-C连接到PC机共享上网,PC机通过SSH远程连接、操作开发板。
YOLOv11 是YOLO系列的最新里程碑,通过架构优化和训练策略升级,在精度、速度和多功能性 上全面超越前代版本(如YOLOv8)。它适用于需要高精度实时检测的场景(如自动驾驶、视频监控),同时也为边缘设备部署提供了更高效的选择
ultralytics 是一个专注于计算机视觉任务的 Python 库,尤其以 YOLO(You Only Look Once) 系列模型为核心,提供了简单易用的接口,支持目标检测、实例分割、姿态估计等任务。本文将详细介绍 ultralytics 库的功能、安装方法、核心模块以及使用示例。
输入命令 pip install ultralytics 开始安装
ultralytics官方网站有各种大模型实例,见如下链接。
https://docs.ultralytics.com/zh/modes/predict/#keypoints
yolo1.py
from ultralytics import YOLO # Load a pretrained YOLO11n model model = YOLO("yolo11n.pt") # Run inference on an image results = model("https://ultralytics.com/images/bus.jpg") # results list # View results for r in results: print(r.boxes) # print the Boxes object containing the detection bounding boxes
olo11n.pt是一个预训练的模型,会自动下载到/home/用户名 目录。
https://ultralytics.com/images/bus.jpg 是官网素材,会自动下载到/home/用户名 目录
Boxes 对象可用于索引、操作和将边界框转换为不同的格式。
运行结果如下:
会打印识别的4个定位框。但是不够直观。
yolo2.py
from PIL import Image from ultralytics import YOLO # Load a pretrained YOLO11n model model = YOLO("yolo11n.pt") # Run inference on 'bus.jpg' results = model(["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"]) # results list # Visualize the results for i, r in enumerate(results): # Plot results image im_bgr = r.plot() # BGR-order numpy array im_rgb = Image.fromarray(im_bgr[..., ::-1]) # RGB-order PIL image # Show results to screen (in supported environments) r.show() # Save results to disk r.save(filename=f"results{i}.jpg")
字段 plot() 方法在 Results 对象通过将检测到的对象(例如边界框、掩码、关键点和概率)叠加到原始图像上,从而方便预测的可视化。此方法将带注释的图像作为 NumPy 数组返回,从而可以轻松显示或保存。
运行结果:
识别结果:
0: 640x640 4 persons, 1 bus, 5962.5ms
1: 640x640 2 persons, 1 tie, 5962.5ms
Speed: 60.2ms preprocess, 5962.5ms inference, 54.9ms postprocess per image at shape (1, 3, 640, 640)
在/home/用户名 目录,自动生成results0.jpg results1.jpg
再接再厉,用自己本地的图片作识别检测效果如何呢?
yolo3.py
from ultralytics import YOLO # Load a model model = YOLO("yolo11n.pt") # pretrained YOLO11n model # Run batched inference on a list of images results = model(["pic.jpg"]) # return a list of Results objects # Process results list for result in results: boxes = result.boxes # Boxes object for bounding box outputs masks = result.masks # Masks object for segmentation masks outputs keypoints = result.keypoints # Keypoints object for pose outputs probs = result.probs # Probs object for classification outputs obb = result.obb # Oriented boxes object for OBB outputs result.show() # display to screen result.save(filename="result.jpg") # save to disk
这里的pic.jpg是我/home/用户名 目录下上传的图片
运行python yolo3.py结果如下:
图片较大,花了挺长时间:5秒
0: 480x640 1 person, 5570.7ms
Speed: 137.8ms preprocess, 5570.7ms inference, 63.5ms postprocess per image at shape (1, 3, 480, 640)
/home/用户名 目录下生成了result.jpg文件