继YOLOv5大成之后,Ultralytics 又推出了YOLOv8。
github地址:https://github.com/ultralytics/ultralytics
权重:https://github.com/ultralytics/assets/releases
文档:https://docs.ultralytics.com/
目录
1 YOLO:简史
YOLO(You Only Look Once)是一种流行的目标检测和图像分割模型,由华盛顿大学的Joseph Redmon和Ali Farhadi推出。YOLO于2015年推出,以其高速和准确迅速走红。
YOLOv1:2015年Joseph Redmon和Ali Farhadi等人(华盛顿大学)提出,以其高速和准确迅速走红。。
YOLOv2:2016年Joseph Redmon和Ali Farhadi等人(华盛顿大学)提出,通过合并batch normalization、锚框和dimension clusters来改进原始模型。
YOLOv3:2018年Joseph Redmon和Ali Farhadi等人(华盛顿大学)提出。YOLOv1-v3作者Joseph Redmon宣布退出CV界,不再官方推出YOLO新工作。v3使用更高效的骨干网络、多个锚点和空间金字塔池化进一步增强了该模型的性能。
YOLOv4:2020年Alexey Bochkovskiy和Chien-Yao Wang等人提出。引入了Mosaic数据增强、新的无锚检测头和新的损失函数等创新。
YOLOv5:2020年Ultralytics公司提出。YOLOv5进一步提高了模型的性能,并添加了超参数优化、集成实验跟踪和自动导出到流行导出格式等新功能。
YOLOv6:2022年美团公司提出。目前正在该公司的许多自动配送机器人中使用。
YOLOv7:2022年Alexey Bochkovskiy和Chien-Yao Wang等人提出。YOLOv7在COCO关键点数据集上添加了额外的任务,如姿态估计。
YOLOv8:2023年Ultralytics公司提出。
2 YOLOv8
Ultralytics YOLOv8是YOLO目标检测和图像分割模型的最新版本。作为一款尖端、最先进的(SOTA)模型,YOLOv8在之前版本成功的基础上,引入了新的功能和改进,以增强性能、灵活性和效率。
YOLOv8的设计非常注重速度、尺寸和准确性,使其成为各种视觉人工智能任务的有力选择。它通过引入新的骨干网络、新的无锚分裂头和新的损失函数等创新,性能优于以前的版本。这些改进使YOLOv8能够提供卓越的结果,同时保持小尺寸和高速度。
此外,YOLOv8支持全方位的AI视觉任务,包括检测、分割、姿态估计、跟踪和分类。这种多功能性允许用户在不同的应用程序和域中使用YOLOv8的功能。
3 安装
方法一:pip install
pip3 install ultralytics
方法二:git clone
git clone https://github.com/ultralytics/ultralytics
cd ultralytics
pip install -e .
4 使用
(1)command line interface (CLI)
Ultralytics yolo命令使用以下语法:
yolo TASK MODE ARGS
Where TASK (optional) is one of [detect, segment, classify]
MODE (required) is one of [train, val, predict, export, track] ARGS (optional) are any number of custom 'arg=value' pairs like 'imgsz=320' that override defaults.
示例1:
yolo predict model=yolov8n.pt imgsz=640 conf=0.25
结果:
报错:
cv.gapi.wip.GStreamerPipeline = cv.gapi_wip_gst_GStreamerPipeline
AttributeError: partially initialized module 'cv2' has no attribute 'gapi_wip_gst_GStreamerPipeline' (most likely due to a circular import)
解决方法:
pip install opencv-python install "opencv-python-headless<4.3"
示例2:
yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01
示例3:Train
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640
示例4:Val
yolo detect val model=yolov8n.pt
示例5:Predict
yolo detect predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
示例6:Export
yolo export model=yolov8n.pt format=onnx
可用的YOLOv8导出格式如下表所示。您可以使用format参数导出到任何格式,即format='onnx'或format='engine'。
(2)使用Python
- 代码
from ultralytics import YOLO
from PIL import Image
# 加载预训练的 YOLOv8n 模型
model = YOLO('yolov8n.pt')
# 推理
results = model('Test.jpg') # Results 对象列表
# 展示结果
for r in results:
im_array = r.plot() # 绘制包含预测结果的BGR numpy数组
im = Image.fromarray(im_array[..., ::-1]) # RGB PIL图像
im.show() # 显示图像
im.save('results.jpg') # 保存图像
pass
- 结果图
Results
对象具有以下属性:
Results
对象具有以下方法: