如何加载yolov8n.pt模型?Yolo-v8.3调用代码实例详解

想用YOLOv8做目标检测,第一步就是把模型加载起来。你可能已经下载好了yolov8n.pt这个预训练模型文件,但面对一堆代码和文档,不知道从哪下手。别担心,这篇文章就是为你准备的。

我会带你从零开始,一步步搞清楚怎么在YOLO-v8.3的环境里,把yolov8n.pt这个模型成功加载起来,并且跑一个完整的推理流程。整个过程就像搭积木,我会把每一步都拆开讲清楚,保证你看完就能自己动手操作。

1. 准备工作:认识你的工具和环境

在开始写代码之前,我们得先了解一下手头的“工具箱”。你提到的YOLO-V8镜像,就是一个已经为你配好的深度学习环境,省去了自己安装各种依赖的麻烦。

1.1 YOLOv8 镜像里有什么?

这个镜像可以理解为一个打包好的软件集装箱,里面已经安装好了运行YOLOv8所需的一切。主要包含两部分:

  • PyTorch深度学习框架:这是YOLOv8的“发动机”,所有复杂的计算都在它上面运行。
  • Ultralytics YOLOv8库:这是YOLOv8的“专用工具箱”,提供了加载模型、训练、推理等一系列方便的函数。

你不需要关心怎么安装PyTorch或者配置CUDA,镜像已经帮你搞定了。你要做的,就是学会怎么使用这个工具箱。

1.2 如何进入这个环境?

镜像提供了几种使用方式,对于我们要做的模型加载和测试来说,最方便的是通过Jupyter Notebook或者SSH终端

  • Jupyter Notebook(推荐新手):它提供了一个网页版的代码编辑和运行环境,就像在网页上写Python笔记。你可以一段段地运行代码,立刻看到结果,非常适合学习和调试。你只需要在浏览器中打开镜像提供的那个链接(通常是一个IP地址加端口号)就能用。
  • SSH终端:如果你更习惯在命令行里操作,可以通过SSH连接到这个环境。这种方式更直接,适合批量运行脚本。

无论用哪种方式,最终你都会在一个已经配置好YOLOv8的环境中,接下来我们就可以专心写代码了。

2. 核心步骤:加载yolov8n.pt模型

现在进入正题。加载模型听起来很高深,其实在Ultralytics库的帮助下,只需要几行代码。我们一行行来看。

2.1 第一步:导入必要的工具

任何Python程序开始都要导入需要的库。对于YOLOv8,我们主要用它自家的ultralytics包。

from ultralytics import YOLO

这行代码的意思是说:“我要使用ultralytics这个工具箱里的YOLO这个工具。” 就这么简单。

2.2 第二步:加载模型文件

这是最关键的一步。假设你的yolov8n.pt模型文件已经放在当前代码所在的目录下。

model = YOLO("yolov8n.pt")

这行代码做了什么事?

  • YOLO()是一个类,或者说是一个模型加载器。
  • 我们把模型文件的路径"yolov8n.pt"传给它。
  • 它就会读取这个文件,把里面保存的模型结构、还有它已经学到的“知识”(即预训练的权重)全部加载到内存里,并准备好。
  • 最后,把这个准备好的模型对象赋值给变量model。之后我们所有操作,比如让模型看图片、做预测,都是通过这个model变量来进行的。

文件路径小提示

  • 如果yolov8n.pt和你的Python脚本在同一个文件夹,直接写文件名"yolov8n.pt"就行。
  • 如果在别的文件夹,需要写上路径,比如“./models/yolov8n.pt”或者“/home/user/downloads/yolov8n.pt”

2.3 第三步:(可选)看看模型长什么样

模型加载好后,你可能想了解一下它,比如它有多少层、参数总量是多少。这步不是必须的,但有助于你理解自己在操作一个多大的模型。

model.info()

运行这行代码,它会在终端或Notebook里打印出模型的结构信息。你会看到一些关于这个模型的总结,比如:

  • 模型的层数(layers)
  • 参数数量(parameters)
  • 梯度数量(gradients)
  • 等等。

对于yolov8n.pt这个“nano”版本的小模型,它的参数量相对较少,运行速度很快,非常适合在电脑上快速测试和部署。

3. 让模型动起来:进行图片推理

模型加载好了,不能让它闲着。我们得找张图片让它“看看”,并告诉我们它发现了什么。这就是推理(Inference)。

3.1 准备一张测试图片

你需要准备一张包含物体的图片。比如,一张街景图,里面可能有汽车、行人、红绿灯等。为了方便,YOLO官方示例经常用一张名为bus.jpg的图片。你需要把这张图片放到一个你知道的路径下。

3.2 执行推理代码

用下面这行代码,就可以让模型对图片进行预测了:

results = model("path/to/your/image.jpg")
  • “path/to/your/image.jpg”替换成你图片的实际路径,例如“./test_images/bus.jpg”
  • model()这个调用方式非常直观,就是把图片“喂”给模型。
  • 模型分析完后,会把结果返回,我们把它保存在results变量里。

3.3 理解与查看结果

results里面包含了所有检测到的信息。但对于我们人类来说,直接看一堆数字没什么意义。通常我们需要两种更直观的结果:

1. 带标注框的图片 我们最想看的是模型把物体框出来是什么样子。用这行代码可以生成并保存一张画好了检测框的新图片。

results[0].save(“output_image.jpg”)
  • results[0]是因为model()可能处理多张图片,返回一个列表。我们这里只处理一张,所以取第一个结果。
  • .save()方法会把模型识别出的物体(比如人、车),用矩形框标出来,并在框旁边写上是什么物体以及模型有多大的把握(置信度),然后保存成一张新图片output_image.jpg。你打开这张新图片,就能直观地看到检测效果。

2. 结构化的检测数据 有时候我们需要把检测到的信息(比如是什么物体、位置在哪、置信度多少)拿来进一步处理,比如存到数据库里。可以这样查看:

# 获取检测框的信息
boxes = results[0].boxes
print(boxes)

打印出来的boxes对象里,会包含每个检测框的坐标(xyxy格式)、置信度(conf)以及类别ID(cls)。你可以通过这些数据做更多自动化的事情。

4. 完整代码实例与运行

我们把上面所有步骤串起来,形成一个完整的、可以运行的脚本。你可以把下面的代码复制到Jupyter Notebook的一个单元格里,或者保存成一个.py文件通过SSH运行。

# 实例:加载yolov8n.pt模型并进行图片推理

# 1. 导入工具
from ultralytics import YOLO

# 2. 加载预训练模型
# 请确保 yolov8n.pt 文件在当前目录或指定路径下
model = YOLO(“yolov8n.pt”)
print(“模型加载成功!”)

# 3. (可选) 查看模型信息
model.info()

# 4. 对单张图片进行推理
# 将 ‘path/to/bus.jpg‘ 替换为你自己的图片路径
image_path = “path/to/bus.jpg”
results = model(image_path)

# 5. 保存带有检测框的结果图片
results[0].save(“detection_result.jpg”)
print(f“推理完成!结果已保存为 ‘detection_result.jpg‘”)

# 6. (可选) 打印检测到的物体信息
for result in results:
    for box in result.boxes:
        # 获取类别ID、置信度和边框坐标
        class_id = int(box.cls[0])
        confidence = float(box.conf[0])
        coordinates = box.xyxy[0].tolist() # [x1, y1, x2, y2]
        print(f“检测到物体: 类别ID={class_id}, 置信度={confidence:.2f}, 位置={coordinates}”)

运行这个脚本,你会看到:

  1. 终端打印“模型加载成功!”
  2. 可能会打印出一段模型结构信息。
  3. 程序会读取你指定的图片,模型开始工作。
  4. 完成后,在当前目录生成一张名为detection_result.jpg的图片,图片上画满了检测框。
  5. 终端还会列出每一个检测到的物体是什么(类别ID)、模型有多确定(置信度),以及框的具体位置。

5. 可能遇到的问题与解决思路

第一次运行,难免会遇到一些小麻烦。这里列举几个常见的:

  • 问题1:报错 ModuleNotFoundError: No module named ‘ultralytics’ 原因:这说明你的Python环境里没有安装ultralytics库。但在我们提供的镜像里,这不应该发生。 解决:如果你是在自己的机器上运行,需要先安装它:在终端运行 pip install ultralytics。如果是在镜像环境里遇到,请检查是否进入了正确的环境。

  • 问题2:报错 [Errno 2] No such file or directory: ‘yolov8n.pt’ 原因:Python找不到你指定的模型文件。 解决:确认yolov8n.pt文件是否真的在你认为的目录下。可以使用终端命令ls(Linux/Mac)或dir(Windows)来查看当前目录的文件列表。确保代码中的文件路径和文件名完全正确,包括大小写。

  • 问题3:报错找不到图片路径 原因:和问题2类似,图片文件不在指定的位置。 解决:使用绝对路径可以避免这个问题。例如,如果你知道图片在/home/user/images文件夹里,就直接写image_path = “/home/user/images/bus.jpg”

  • 问题4:推理速度很慢 原因:可能是你的电脑没有GPU,或者CUDA没有正确配置,模型只能在CPU上运行。 解决:在镜像环境中,通常已经配置好了GPU支持。你可以通过代码检查:import torch; print(torch.cuda.is_available()),如果输出True,说明GPU可用。YOLO库会自动使用GPU加速。

6. 总结

好了,我们来回顾一下今天学到的内容。加载和使用YOLOv8模型,其实就几个核心步骤,一点都不复杂:

  1. 环境准备:利用现成的YOLO-V8镜像,免去配置烦恼。
  2. 导入库:一行代码 from ultralytics import YOLO 引入工具。
  3. 加载模型:核心就是一行代码 model = YOLO(“yolov8n.pt”),把预训练好的模型读到内存里。
  4. 执行推理:用 results = model(“图片路径”) 让模型去分析图片。
  5. 处理结果:最常用的是 results[0].save() 保存带框的图片,直观查看效果。

整个过程就像使用一个高级的“图片识别工具”:你告诉工具去哪里拿模型(yolov8n.pt),再给它一张图片,它就能帮你把里面的物体找出来并标记好。

yolov8n.pt只是一个开始。Ultralytics官方还提供了不同大小和能力的模型,比如更大的yolov8s.ptyolov8m.pt等,精度更高但速度稍慢。你可以用完全相同的代码,只需更换模型文件名,就能加载它们进行测试。

希望这篇详解能帮你顺利跨出使用YOLOv8的第一步。动手运行一下上面的完整代码,看到检测结果生成的那一刻,你会对整个过程有更深刻的理解。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐