1 yolo介绍:
Ultralytics 基于多年在计算机视觉和人工智能领域的基础研究,创造了尖端的、最先进的(SOTA)YOLO 模型。模型不断更新以提高性能和灵活性,具有速度快、精度高和易于使用的特点。它们在目标检测、跟踪、实例分割、图像分类和姿态估计任务中表现出色。

官网 地址 https://docs.ultralytics.com/zh/

使用场景:
在这里插入图片描述

2 安装环境方式有多种包括 pip、conda 和 Docker,也可以自定义安装,本次使用最简单的方式安装;

依赖PyTorch需要安装

pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

会自动下载其他依赖项;

3 使用方式
YOLO 中有哪些不同的可用模式?
在这里插入图片描述

3.1 通过Ultralytics 命令行界面 (CLI) 允许简单的单行命令,而无需 Python 环境;
3.2 Python方式执行,本次选择这种方式;
3.3 Ultralytics 回调?
Ultralytics 回调是专门的切入点,在模型运行的关键阶段(如训练、验证、导出和预测)期间触发。代码中的回调函数。

4 使用什么模型?
版本介绍:
YOLOv3 到最新的 YOLO11,每个版本中会提供可以用的通用模型,详情见https://docs.ultralytics.com/zh/models/yolo11/#supported-tasks-and-modes
如:
在这里插入图片描述

模型怎么下载?
如下进行测试时会用到模型;
首次使用时会自动下载 或者点击如下红框下载:但是很可能访问不了;
提供下个人地址:https://download.csdn.net/download/wangzhongyu_/91897517在这里插入图片描述

5 测试,官网中的解决方案可运行测试;
如下一个例子:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# region_points = [(20, 400), (1080, 400)]                                      # line counting
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]  # rectangle region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)]   # polygon region

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize object counter object
counter = solutions.ObjectCounter(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",  # model="yolo11n-obb.pt" for object counting with OBB model.
    # classes=[0, 2],  # count specific classes i.e. person and car with COCO pretrained model.
    # tracker="botsort.yaml",  # choose trackers i.e "bytetrack.yaml"
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = counter(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

注:使用时API查阅地址:https://docs.ultralytics.com/reference/cfg/init/
源码可以下载到本地查看(https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/init.py)

6 模型训练
什么是Ultralytics HUB?
Web 工具平台,用于在一个地方训练和部署您所有的 YOLOv5、YOLOv8 和 YOLO11 模型!访问地址:https://www.ultralytics.com/hub;
怎么根据预训练模型训练自己需要的模型呢?后面试下。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐