YOLO安装与试用(YOLO26 / Windows)
前言
最近因为工作需要用到图像分类,这里就使用YOLO进行相关工作。
YOLO是一款广受好评的实时目标检测与图像分割模型。YOLO基于深度学习和 计算机视觉领域的最新进展构建,具备端到端NMS 推理和优化的边缘部署能力。其精简的设计使其适用于各种应用场景,并能轻松适配从边缘设备到云 API 的不同硬件平台。
YOLO有非常多版本,当前最新版本是YOLO26,本文将以此进行试用。
YOLO简史
YOLO (You Only Look Once)是一款广受欢迎的物体检测与图像分割模型,由华盛顿大学的约瑟夫·雷德蒙(Joseph Redmon)和阿里·法哈迪(Ali Farhadi)开发。YOLO 于2015年推出,因其高速和高精度而YOLO 好评。
- YOLOv2 于 2016 年发布,通过引入批量归一化、锚框和维度聚类,对原始模型进行了改进。
- YOLOv3 于 2018 年发布,通过采用更高效的骨干网络、多个锚点以及空间金字塔池化技术,进一步提升了模型的性能。
- YOLOv4于 2020 年发布,引入了诸如马赛克数据增强、全新的无锚点检测头以及新的损失函数等创新技术。
- YOLOv5 进一步提升了模型的性能,并新增了超参数优化、集成实验跟踪以及自动导出至常用格式等功能。
- YOLOv6 YOLOv6 于 2022年由美团开源,并被应用于该公司多款自动配送机器人中。
- YOLOv7 在COCO 数据集上增加了姿势估计 等额外任务。
- YOLOv8Ultralytics于2023年发布的YOLOv8,引入了新功能和改进,以提升性能、灵活性和效率,支持全范围的视觉AI任务。
- YOLOv9 引入了可编程梯度信息(PGI)和通用高效层聚合网络(GELAN)等创新方法。
- YOLOv10 由清华大学的研究人员利用 UltralyticsPython ,通过引入一个端到端(End-to-End)头部,消除了对非最大抑制(NMS)算法的需求,从而实现了实时目标检测技术的突破。
- YOLO11:YOLO11 于2024年9月发布,在物体检测、分割、姿势估计 、跟踪和分类等多项任务中YOLO11 优异,可部署于各类AI应用和领域。
- YOLO26🚀:Ultralytics 的新一代YOLO 专为边缘部署优化,支持端到端NMS 推理。
可以看出YOLO有很多版本,来源于很多团队,YOLOv5开始很多版本由Ultralytics维护。
项目地址:https://github.com/ultralytics/ultralytics
文档首页:https://docs.ultralytics.com/


工具安装
当前一些版本的YOLO使用都是基于Python和PyTorch的,这些需要前置安装。
Python
Python:https://www.python.org/
Python安装没什么特别好说的,在后面通过工具安装下面的库的时候可能需要换源或者科学上网。
PyTorch
PyTorch:https://pytorch.org/
PyTorch分为多个版本需要根据自己的实际情况安装,官网提供了工具可用选择合适的下载命令:https://pytorch.org/get-started/locally/
比如我的电脑上有英伟达的显卡,则可以使用 nvidia-smi 命令来查看英伟达的CUDA版本来选择合适的PyTorch版本进行安装:


PyTorch比较大。安装完成后可以使用下面代码运行查看安装情况:
import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.cuda.is_available())

可以使用 pip3 uninstall torch torchvision 来卸载PyTorch。
Ultralytics
使用 pip install -U ultralytics 可以安装相关的包包括依赖的包,其中包括了PyTorch,但是这样安装的话PyTorch默认安装的是不支持GPU的版本,所以还是先手动安装PyTorch再安装Ultralytics比较合适:
安装完成后可以使用下面代码运行查看安装情况:
import ultralytics
print(ultralytics.__version__)

功能试用
YOLO各功能都是都是基于模型展开的,比如使用模型进行预测、分类等工作,如果模型不好用,还需要自己训练模块。官方提供了一些预先训练好的模型,可以在官方项目页面下载到(https://github.com/ultralytics/assets)。如果网络没问题,现在直接运行官方示例代码时也会自动下载。
官方提供的预训练模型有 n、s、m、l、x 几个尺寸,越后面的越大,运行时越慢,但是结果精度越高。
预测
预测算是YOLO最基础的功能了,检测图片中有什么东西,位置分别是哪里。使用官方提供的代码和预训练模型可以直接进行预测:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26x.pt") # pretrained YOLO26n model
# Run batched inference on a list of images
results = model(["images/R0000457.jpg", "images/R0001258.jpg", "images/R0003438.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

上面对三张图片进行的测试,可以看到预训练模块可以检测出一些常见的被训练过的物件,无法检测出未被训练过的东西。这就留下了很多可以工作的空间,对于一些特定的需求需要进行特定的训练。
当然即使只是使用已有的模型进行检测,使用时也有很多参数可以用来更细化的设置,使结果更加符合需求。
训练模型
前面演示中使用的预训练的模型可能有很多东西检测不出来,也可能检出的准确率不够高,所以很多特定应用场景下都是需要自己准备数据进行的。使用官方示例代码可以直接进行训练的测试:
from ultralytics import YOLO
if __name__ == "__main__":
# Load a model
# model = YOLO("yolo26x.yaml") # build a new model from YAML
model = YOLO("yolo26x.pt") # load a pretrained model (recommended for training)
# model = YOLO("yolo26x.yaml").load("yolo26x.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
上面测试中会去下载 coco8 训练数据,就几张图片和图片对应的标注信息,只是做个训练的示范,如果有自己数据需要训练可以参考这个来准备数据集进行训练。

训练完成后得到的 best.pt 就是训练过程中得到的最佳的模型了,后续就可以拿来使用了。
后记
现在YOLO的入门使用真的是太方便了,但从使用的角度来说几乎不需要深入了解任何东西,直接拿来就能用。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)