当前位置:   article > 正文

UltralyticsYOLOv8_ultralytics使用(1)_yolov8 视频文件

yolov8 视频文件

或者定义一个包括子目录在内的递归 glob 搜索,以查找所有 JPG 文件

source = ‘path/to/dir/**/*.jpg’

Run inference on the source

results = model(source, stream=True) # generator of Results objects


**12.YouTube**:对 YouTube 视频进行推理通过使用 stream=True此外,您还可以创建一个结果对象生成器,以减少长视频的内存使用量。



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a pretrained YOLOv8n model

model = YOLO(‘yolov8n.pt’)

Define source as YouTube video URL

source = ‘https://youtu.be/LNwODJXcvt4’

Run inference on the source

results = model(source, stream=True) # generator of Results objects


**13.Steams流**:使用 RTSP、RTMP、TCP 和 IP 地址协议对远程流媒体源进行推理。如果在一个 \*.streams 文本文件,则将运行批处理推理,即 8 个数据流将以 8 的批处理大小运行,否则单个数据流将以 1 的批处理大小运行。



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a pretrained YOLOv8n model

model = YOLO(‘yolov8n.pt’)

Single stream with batch-size 1 inference

单个流,批处理大小为1的推理

source = ‘rtsp://example.com/media.mp4’ # RTSP, RTMP, TCP or IP streaming address

RTSP,RTMP,TCP或IP流地址

Multiple streams with batched inference (i.e. batch-size 8 for 8 streams)

多个流,批处理推理(例如,8个流的批处理大小为8)

source = ‘path/to/list.streams’ # *.streams text file with one streaming address per row

*.streams文本文件,每行一个流地址

Run inference on the source

results = model(source, stream=True) # generator of Results objects


### Working with Results



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a pretrained YOLOv8n model

加载预训练的YOLOv8n模型

model = YOLO(‘yolov8n.pt’)

Run inference on an image

对一张图片进行推理

results = model(‘bus.jpg’) # list of 1 Results object

结果是一个Results对象的列表,其中包含1个对象

results = model([‘bus.jpg’, ‘zidane.jpg’]) # list of 2 Results objects

结果是一个Results对象的列表,其中包含2个对象


**1.Boxes**:oxes 对象可用于索引、操作和将边界框转换为不同格式。



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a pretrained YOLOv8n model

model = YOLO(‘yolov8n.pt’)

Run inference on an image

results = model(‘bus.jpg’) # results list

View results

for r in results:
print(r.boxes) # print the Boxes object containing the detection bounding boxes
# 打印包含检测边界框的 Boxes 对象


**1.Masks**:Masks 对象可用于索引、操作和将掩码转换为线段。



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a pretrained YOLOv8n-seg Segment model

model = YOLO(‘yolov8n-seg.pt’) # 加载预训练的 YOLOv8n-seg 分割模型

Run inference on an image

results = model(‘bus.jpg’) # 在一张图片上进行推理,返回结果列表

View results

for r in results:
print(r.masks) # 打印包含检测到的实例掩码的 Masks 对象


**3.Keypoints**:Keypoints 对象可用于索引、处理和归一化坐标。



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a pretrained YOLOv8n-pose Pose model

加载预训练的 YOLOv8n-pose 姿势模型

model = YOLO(‘yolov8n-pose.pt’)

Run inference on an image

在一张图像上运行推理

results = model(‘bus.jpg’) # results list

View results

查看结果

for r in results:
print(r.keypoints) # print the Keypoints object containing the detected keypoints
# 打印包含检测到的关键点的 Keypoints 对象


**4.Probs**:Probs 对象可用于索引、获取 top1 和 top5 分类指数和分数。



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a pretrained YOLOv8n-cls Classify model

加载预训练的 YOLOv8n-cls 分类模型

model = YOLO(‘yolov8n-cls.pt’)

Run inference on an image

在一张图片上进行推断

results = model(‘bus.jpg’) # results list

View results

查看结果

for r in results:
print(r.probs) # print the Probs object containing the detected class probabilities
# 打印包含检测到的类别概率的 Probs 对象


**5.OBB**:OBB 对象可用于索引、操作和将定向边界框转换为不同格式。



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a pretrained YOLOv8n model

model = YOLO(‘yolov8n-obb.pt’)

Run inference on an image

results = model(‘bus.jpg’) # results list

View results

for r in results:
print(r.obb) # print the OBB object containing the oriented detection bounding boxes
# 打印包含定向检测边界框的 OBB 对象


### 绘制结果


"(《世界人权宣言》) plot() 方法中的 Results 对象,将检测到的对象(如边界框、遮罩、关键点和概率)叠加到原始图像上,从而实现预测的可视化。该方法以 NumPy 数组形式返回注释图像,便于显示或保存。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

from PIL import Image # 导入PIL库中的Image模块
from ultralytics import YOLO # 导入YOLO模型的ultralytics库

Load a pretrained YOLOv8n model

model = YOLO(‘yolov8n.pt’) # 加载预训练的YOLOv8n模型

Run inference on ‘bus.jpg’

results = model([‘bus.jpg’, ‘zidane.jpg’]) # 对 ‘bus.jpg’ 运行推断,返回结果列表

Visualize the results

for i, r in enumerate(results):
# Plot results image
im_bgr = r.plot() # 获取结果图像的BGR顺序的numpy数组
im_rgb = Image.fromarray(im_bgr[…, ::-1]) # 转换为RGB顺序的PIL图像

# Show results to screen (in supported environments)
r.show()  # 在支持的环境中显示结果图像

# Save results to disk
r.save(filename=f'results{i}.jpg')  # 将结果保存到磁盘上,文件名为'results{i}.jpg'
  • 1
  • 2
  • 3
  • 4
  • 5

### 线程安全推理


在不同线程并行运行多个YOLO 模型时,确保推理过程中的线程安全至关重要。线程安全推理可确保每个线程的预测都是独立的,不会相互干扰,从而避免出现竞赛条件,并确保输出结果的一致性和可靠性。


在多线程应用程序中使用YOLO 模型时,必须为每个线程实例化单独的模型对象,或使用线程本地存储以防止冲突:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

from ultralytics import YOLO
from threading import Thread

def thread_safe_predict(image_path):
# Instantiate a new model inside the thread
# 在线程内实例化一个新的模型
local_model = YOLO(“yolov8n.pt”)
results = local_model.predict(image_path)
# Process results
# 处理结果

Starting threads that each have their own model instance

启动每个具有自己模型实例的线程

Thread(target=thread_safe_predict, args=(“image1.jpg”,)).start()
Thread(target=thread_safe_predict, args=(“image2.jpg”,)).start()


### 流媒体源 for-循环


Python 下面是一个使用 OpenCV (cv2)和YOLOv8 对视频帧进行推理。本脚本假定您已经安装了必要的软件包 (opencv-python 和 ultralytics).



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

import cv2
from ultralytics import YOLO

Load the YOLOv8 model 加载YOLOv8模型

model = YOLO(‘yolov8n.pt’)

Open the video file 打开视频文件

video_path = “path/to/your/video/file.mp4”
cap = cv2.VideoCapture(video_path)

Loop through the video frames 循环遍历视频帧

while cap.isOpened():
# Read a frame from the video 从视频中读取一帧
success, frame = cap.read()

if success:
    # Run YOLOv8 inference on the frame 在帧上运行YOLOv8推断
    results = model(frame)

    # Visualize the results on the frame 在帧上可视化结果
    annotated_frame = results[0].plot()

    # Display the annotated frame 显示带注释的帧
    cv2.imshow("YOLOv8 Inference", annotated_frame)

    # Break the loop if 'q' is pressed 如果按下 'q' 键,则中断循环
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break
else:
    # Break the loop if the end of the video is reached 如果到达视频的末尾,则中断循环
    break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

Release the video capture object and close the display window 释放视频捕获对象并关闭显示窗口

cap.release()
cv2.destroyAllWindows()


## 三、训练模型


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4d5c58135e924caab9c0e62bf1a584b7.png#pic_center)  
 训练深度学习模型包括向其输入数据并调整其参数,使其能够做出准确的预测。


### 使用示例



> 
> epochs:次数
> 
> 
> 


在图像大小为 640 的 COCO128 数据集上对YOLOv8n 进行 100 次训练。可以使用 device 参数。如果没有传递参数,GPU device=0 将被使用,否则 device=cpu 将被使用。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n.yaml’) # build a new model from YAML
model = YOLO(‘yolov8n.pt’) # load a pretrained model (recommended for training)
model = YOLO(‘yolov8n.yaml’).load(‘yolov8n.pt’) # build from YAML and transfer weights

从YAML文件构建并加载权重

Train the model

results = model.train(data=‘coco128.yaml’, epochs=100, imgsz=640)


**1.多 GPU 培训**:多 GPU 训练通过在多个 GPU 上分配训练负载,可以更有效地利用可用的硬件资源。该功能可通过Python API 和命令行界面使用。要启用多 GPU 训练,请指定要使用的 GPU 设备 ID。



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n.pt’) # load a pretrained model (recommended for training)

Train the model with 2 GPUs

results = model.train(data=‘coco128.yaml’, epochs=100, imgsz=640, device=[0, 1])


**2.苹果 M1 和 M2 MPS 培训**:Ultralytics YOLO 机型中集成了对 Apple M1 和 M2 芯片的支持,现在可以在使用强大的 Metal Performance Shaders (MPS) 框架的设备上训练模型。MPS 提供了一种在苹果定制芯片上执行计算和图像处理任务的高性能方法。


要在 Apple M1 和 M2 芯片上启用训练,应在启动训练程序时指定 "mps "为设备。下面是一个示例,说明如何在Python 和通过命令行执行此操作:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n.pt’) # load a pretrained model (recommended for training)

Train the model with 2 GPUs

results = model.train(data=‘coco128.yaml’, epochs=100, imgsz=640, device=‘mps’)


**3.恢复中断的培训**:在使用深度学习模型时,从先前保存的状态恢复训练是一项至关重要的功能。这在各种情况下都能派上用场,比如当训练过程意外中断时,或者当你希望用新数据或更多的历时继续训练模型时。


恢复训练时,Ultralytics YOLO 会加载上次保存模型的权重,并恢复优化器状态、学习率调度器和历时编号。这样,您就可以从上次中断的地方无缝地继续训练过程。


Ultralytics YOLO 您可以通过设置 resume 参数 True 在调用 train 方法的路径,并指定 .pt 文件,其中包含经过部分训练的模型权重。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

from ultralytics import YOLO

Load a model

model = YOLO(‘path/to/last.pt’) # load a partially trained model

Resume training

results = model.train(resume=True)


通过设置 resume=True,"… train 函数将使用存储在 "path/to/last.pt “文件中的状态,从中断处继续训练。如果 resume 参数被省略或设置为 False,”… train 功能将开始新的培训课程。


请记住,默认情况下,检查点会在每个纪元结束时保存,或者使用 save\_period 参数,因此您必须至少完成一个纪元才能恢复训练运行。


### Train Settings


YOLO 模型的训练设置包括训练过程中使用的各种超参数和配置。这些设置会影响模型的性能、速度和准确性。关键的训练设置包括批量大小、学习率、动量和权重衰减。此外,优化器、损失函数和训练数据集组成的选择也会影响训练过程。对这些设置进行仔细的调整和实验对于优化性能至关重要。


### 增强设置和超参数


增强技术通过在训练数据中引入可变性,帮助模型更好地泛化到未见数据中,对提高YOLO 模型的稳健性和性能至关重要。


### 记录


在训练YOLOv8 模型的过程中,您可能会发现跟踪模型在一段时间内的表现很有价值。这就是日志发挥作用的地方。Ultralytics’YOLO 支持三种类型的日志记录器:Comet 、ClearML 和 TensorBoard。


要使用记录仪,请从上面代码片段的下拉菜单中选择并运行。所选记录仪将被安装和初始化。


## 四、探索任务


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7b539a9ec7f44053883efb0d3a7ca350.png#pic_center)  
 YOLOv8 是一个支持多种计算机视觉任务的人工智能框架。该框架可用于执行检测、分割、obb、分类和姿态估计。


### Detection - 检测


检测是YOLOv8 支持的主要任务。它包括检测图像或视频帧中的物体,并在其周围绘制边界框。YOLOv8 可在单幅图像或视频帧中高精度、高速度地检测多个物体。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b74ff83435554e88af354206453c9e2e.png#pic_center)  
 物体检测是一项涉及识别图像或视频流中物体的位置和类别的任务。


物体检测器的输出是一组包围图像中物体的边框,以及每个边框的类标签和置信度分数。如果您需要识别场景中感兴趣的物体,但又不需要知道物体的具体位置或确切形状,那么物体检测就是一个不错的选择。  
 **1.Models**-模型


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0b98af287e1d4a31a714015560b18eb3.png#pic_center)  
 **2.Train**-训练



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n.yaml’) # build a new model from YAML
model = YOLO(‘yolov8n.pt’) # load a pretrained model (recommended for training)
model = YOLO(‘yolov8n.yaml’).load(‘yolov8n.pt’) # build from YAML and transfer weights

Train the model

results = model.train(data=‘coco128.yaml’, epochs=100, imgsz=640)


Dataset format


**3.Val**-验证  
 在 COCO128 数据集上验证训练有素的YOLOv8n 模型的准确性。无需传递参数,因为 model 保留培训 data 和参数作为模型属性。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n.pt’) # load an official model 加载官方模型
model = YOLO(‘path/to/best.pt’) # load a custom model 加载自定义模型

Validate the model

metrics = model.val() # no arguments needed, dataset and settings remembered 验证模型,不需要参数,数据集和设置被记住
metrics.box.map # map50-95 平均精度(mean average precision)计算结果,考虑不同IoU阈值的mAP
metrics.box.map50 # map50 在50% IoU 阈值下的平均精度
metrics.box.map75 # map75 在75% IoU 阈值下的平均精度
metrics.box.maps # a list contains map50-95 of each category 包含每个类别的50%-95% IoU阈值下的平均精度列表



> 
> metrics:指标
> 
> 
> 


**4.Predict**-预测  
 使用训练有素的YOLOv8n 模型对图像进行预测。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom model

Predict with the model

results = model(‘https://ultralytics.com/images/bus.jpg’) # predict on an image


**5.Export**-输出  
 将YOLOv8n 模型导出为不同格式,如ONNX,CoreML 等。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom trained model

Export the model

model.export(format=‘onnx’)


### Segmentation - 分割


分割是一项根据图像内容将图像分割成不同区域的任务。每个区域根据其内容分配一个标签。这项任务在图像分割和医学成像等应用中非常有用。YOLOv8 使用 U-Net 架构的变体来执行分割。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/68916175e4b24f21be366c33b2218c8a.png#pic_center)  
 实例分割比物体检测更进一步,它涉及识别图像中的单个物体,并将它们与图像的其他部分分割开来。


实例分割模型的输出是一组勾勒出图像中每个物体轮廓的遮罩或轮廓线,以及每个物体的类标签和置信度分数。当你不仅需要知道物体在图像中的位置,还需要知道它们的具体形状时,实例分割就非常有用了。  
 **1.Models**


**2.Train**  
 在图像大小为 640 的 COCO128-seg 数据集上训练YOLOv8n-seg,100 个历元。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-seg.yaml’) # build a new model from YAML
model = YOLO(‘yolov8n-seg.pt’) # load a pretrained model (recommended for training)
model = YOLO(‘yolov8n-seg.yaml’).load(‘yolov8n.pt’) # build from YAML and transfer weights

Train the model

results = model.train(data=‘coco128-seg.yaml’, epochs=100, imgsz=640)


**3.Val**  
 在 COCO128-seg 数据集上验证训练有素的YOLOv8n-seg 模型的准确性。无需传递参数,因为 model 保留培训 data 和参数作为模型属性。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-seg.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom model

Validate the model

metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95(B)
metrics.box.map50 # map50(B)
metrics.box.map75 # map75(B)
metrics.box.maps # a list contains map50-95(B) of each category
metrics.seg.map # map50-95(M)
metrics.seg.map50 # map50(M)
metrics.seg.map75 # map75(M)
metrics.seg.maps # a list contains map50-95(M) of each category


**4.Predict**  
 使用训练有素的YOLOv8n-seg 模型对图像进行预测。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-seg.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom model

Predict with the model

results = model(‘https://ultralytics.com/images/bus.jpg’) # predict on an image


**5.Export**  
 将YOLOv8n-seg 模型导出为不同格式,如ONNX,CoreML 等。



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-seg.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom trained model

Export the model

model.export(format=‘onnx’)


### Classification - 分类


YOLOv8 可用于根据图像内容对图像进行分类。它使用 EfficientNet 架构的一种变体来执行分类。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1eb9d4c625fd4553a2dcb487e0c9b2ed.png#pic_center)  
 图像分类是三项任务中最简单的一项,涉及将整幅图像归入一组预定义类别中的某一类。


图像分类器的输出是单一类别标签和置信度分数。当你只需要知道图像属于哪一类,而不需要知道该类对象的位置或确切形状时,图像分类就非常有用。  
 **1.Models**  
 **2.Train**



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-cls.yaml’) # build a new model from YAML
model = YOLO(‘yolov8n-cls.pt’) # load a pretrained model (recommended for training)
model = YOLO(‘yolov8n-cls.yaml’).load(‘yolov8n-cls.pt’) # build from YAML and transfer weights

Train the model

results = model.train(data=‘mnist160’, epochs=100, imgsz=64)


**3.Val**



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-cls.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom model

Validate the model

metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.top1 # top1 accuracy
metrics.top5 # top5 accuracy


**4.Predict**



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-cls.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom model

Predict with the model

results = model(‘https://ultralytics.com/images/bus.jpg’) # predict on an image


**5.Export**



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-cls.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom trained model

Export the model

model.export(format=‘onnx’)


### Pose - 姿态


姿势/关键点检测是一项涉及检测图像或视频帧中特定点的任务。这些点被称为关键点,用于跟踪运动或姿势估计。YOLOv8 可以高精度、高速度地检测图像或视频帧中的关键点。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d896ed25742345b494caedad0499cda6.png#pic_center)  
 姿态估计是一项涉及识别图像中特定点(通常称为关键点)位置的任务。关键点可以代表物体的各个部分,如关节、地标或其他显著特征。关键点的位置通常用一组二维 [x, y] 或 3D [x, y, visible] 坐标


姿态估计模型的输出是一组代表图像中物体关键点的点,通常还包括每个点的置信度分数。当您需要识别场景中物体的特定部分及其相互之间的位置关系时,姿态估计是一个不错的选择。  
 **1.Models**  
 **2.Train**



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-pose.yaml’) # build a new model from YAML
model = YOLO(‘yolov8n-pose.pt’) # load a pretrained model (recommended for training)
model = YOLO(‘yolov8n-pose.yaml’).load(‘yolov8n-pose.pt’) # build from YAML and transfer weights

Train the model

results = model.train(data=‘coco8-pose.yaml’, epochs=100, imgsz=640)


**3.Val**



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-pose.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom model

Validate the model

metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category


**4.Predict**



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-pose.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom model

Predict with the model

results = model(‘https://ultralytics.com/images/bus.jpg’) # predict on an image


**5.Export**



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-pose.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom trained model

Export the model

model.export(format=‘onnx’)


### Obb - 目标边界框 (Oriented Bounding Box)


YOLOv8 可以高精度、高速度地检测图像或视频帧中的旋转物体。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a25564cdb6a44ddd8eee75318edd2c58.png#pic_center)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/506d1e15a6524d0db1bbb95a467cb4da.png#pic_center)  
 定向物体检测比物体检测更进一步,它引入了一个额外的角度来更准确地定位图像中的物体。


定向物体检测器的输出结果是一组旋转的边界框,这些边界框精确地包围了图像中的物体,同时还包括每个边界框的类标签和置信度分数。当你需要识别场景中感兴趣的物体,但又不需要知道物体的具体位置或确切形状时,物体检测是一个不错的选择。  
 **1.Models**  
 **2.Train**



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-obb.yaml’) # build a new model from YAML
model = YOLO(‘yolov8n-obb.pt’) # load a pretrained model (recommended for training)
model = YOLO(‘yolov8n-obb.yaml’).load(‘yolov8n.pt’) # build from YAML and transfer weights

Train the model

results = model.train(data=‘dota8.yaml’, epochs=100, imgsz=640)


**3.Val**



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-obb.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom model

Validate the model

metrics = model.val(data=‘dota8.yaml’) # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95(B)
metrics.box.map50 # map50(B)
metrics.box.map75 # map75(B)
metrics.box.maps # a list contains map50-95(B) of each category


**4.Predict**



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-obb.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom model

Predict with the model

results = model(‘https://ultralytics.com/images/bus.jpg’) # predict on an image


**5.Export**



  • 1
  • 2
  • 3
  • 4
  • 5

from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n-obb.pt’) # load an official model
model = YOLO(‘path/to/best.pt’) # load a custom trained model

Export the model

model.export(format=‘onnx’)


## 五、探索数据集


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/455a95f528e7485baa81f8c929c6552a.png#pic_center)


Ultralytics Explorer 是一款使用语义搜索、SQL 查询、向量相似性搜索甚至使用自然语言探索 CV 数据集的工具。它也是一个Python API,用于访问相同的功能。


**1.安装可选依赖项**  
 资源管理器的部分功能依赖于外部库。这些库会在使用时自动安装。要手动安装这些依赖库,请使用以下命令:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

pip install ultralytics[explorer]



> 
> Explorer 采用嵌入式/语义搜索和 SQL 查询技术,由LanceDB无服务器矢量数据库提供支持。与传统的内存数据库不同,它是在不牺牲性能的情况下持久化在磁盘上的,因此您可以在本地扩展到 COCO 等大型数据集,而不会耗尽内存。
> 
> 
> 


**2.资源管理器应用程序接口**  
 这是一个用于探索数据集的Python API。它还为 GUI Explorer 提供了动力。您可以使用它创建自己的探索笔记本或脚本,以便深入了解您的数据集。


**3.图形用户界面资源管理器的使用**  
 该 GUI 演示可在浏览器中运行,允许您为数据集创建嵌入,搜索相似图像,运行 SQL 查询并执行语义搜索。可使用以下命令运行:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

yolo explorer



> 
 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/7bb5b7929f9dcc7024564a5d42aac529.png)

![img](https://img-blog.csdnimg.cn/img_convert/b3241879afbaca7a6402cf85e02e7b84.png)

![img](https://img-blog.csdnimg.cn/img_convert/ff593ff8f2666436a2326debc0c1d874.png)

![img](https://img-blog.csdnimg.cn/img_convert/b79185da9850815aeb25ad1500391157.png)

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

的使用**  
 该 GUI 演示可在浏览器中运行,允许您为数据集创建嵌入,搜索相似图像,运行 SQL 查询并执行语义搜索。可使用以下命令运行:



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

yolo explorer



> 
 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

[外链图片转存中...(img-aBoKN3Ou-1713708663629)]

[外链图片转存中...(img-wSLsPCMR-1713708663630)]

[外链图片转存中...(img-fPNu9wXy-1713708663631)]

[外链图片转存中...(img-4ODItqNj-1713708663631)]

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

![](https://img-blog.csdnimg.cn/img_convert/069edfcf0625d5c5d90a427e0e0fc515.jpeg)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/863048
推荐阅读
相关标签
  

闽ICP备14008679号