学习python使用Ultralytics的YOLO26进行分割的基本用法

  Ultralytics的YOLO26模型提供专门的分割模型以支持实例分割,其主要预训练模型及参数如下表所示,其中的mAPbox指标用于评估模型目标检测的能力,即预测的边界框(Bounding Box)与真实物体框的重合度,而mAPmask指标用于评估模型实例分割的能力,即预测的像素级轮廓掩码(Mask)与真实物体轮廓的重合度。

  实例分割模型的输出是一组掩码或轮廓,它们勾勒出图像中每个对象,以及每个对象的类别标签和置信度分数。YOLO26的实例分割模型的输出数据形状为N, H, W,也即result.masks.data的数据形状,其中N为从图片中检测到的目标个数,H与输入模型图像的像素高度相同,W与输入模型图像的像素宽度相同。同时检测结果中的result.boxes属性保存检测到所有目标的边界框,result.boxes.data属性的数据形状为N,6,保存所有目标的坐标、置信度及类别。不过将分割模型转换为onnx格式后,其输出形状变为1,300,381,32,160,160的形式,具体解析方式后续再学习。


  最后是示例程序及程序运行效果,如下所示:

python 复制代码
from ultralytics import YOLO

# Load a model
model = YOLO(r"E:\MyPrograms\Python\ultralytics\yolo26m-seg.pt")

# Predict with the model
results = model("ertong.jpg")  

# Access the results
for result in results:    
    xy = result.masks.xy  # mask in polygon format
    xyn = result.masks.xyn  # normalized    
    data = result.masks.data  # mask in matrix format (num_objects x H x W)
    print(result.boxes.data.shape)
    print(result.boxes.data)
    result.show()

参考文献:

1https://docs.ultralytics.com/zh/models/yolo26/

2https://docs.ultralytics.com/zh/tasks/segment/

3https://deepwiki.com/ultralytics/ultralytics/5.2-annotation-and-plotting-utilities

4https://docs.ultralytics.com/reference/engine/results/#ultralytics.engine.results.Masks

相关推荐
Csvn1 天前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽1 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户556918817531 天前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱2 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei2 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
aqi002 天前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
Csvn2 天前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python
金銀銅鐵3 天前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup113 天前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill