在 AI 视觉领域,目标检测无疑是核心技术之一。而 YOLO 系列算法凭借其高效、精准的特点,一直备受青睐。今天,就让我们深入学习如何使用 Python 结合 Ultralytics 库中的 YOLO v8,训练和开发属于自己的 AI 视觉模型,实现动态目标检测!无论应用于现实场景,还是满足网络需求,掌握这一技能都能让你轻松应对各种识别任务。
YOLO,全称 You Only Look Once,是基于 CNN(卷积神经网络)的算法,在 AI 视觉模型开发领域占据着重要地位。目前,YOLO 由 Ultralytics 公司开发并维护,而 YOLO v8 版本是 Ultralytics 官方发布的最新稳定版本,也是其开源库中强大的算法工具。通过 YOLO,模型能够对输入的图像或视频进行快速分析,一次性预测多个目标的类别和位置,极大地提升了检测效率。
官方网站:Ultralytics.com
在开启 YOLO v8 的学习之旅前,我们需要先搭建好运行环境。具体步骤如下:
打开 PyCharm 的终端或命令行界面,输入以下命令安装 Ultralytics 库:
pip install ultralytics
安装完成后,我们就可以开始使用 YOLO v8 了!
预训练模型是 YOLO v8 快速实现目标检测的关键,它已经在大量数据上进行了训练,具备一定的目标识别能力。我们可以直接加载这些模型,在此基础上进行微调或训练,节省时间和计算资源。
在 Python 代码中,通过以下方式导入 YOLO:
from ultralytics import YOLO
当 Ultralytics 库检测到本地没有 yolov8n.pt 预训练模型时,会自动从官方源下载完整的模型文件。不过,由于网络等原因,自动下载可能会失败。这时,你可以手动从 YOLOv8 官方发布页 下载 yolov8n.pt,并将其放置到你的项目目录下,这样就能顺利使用预训练模型啦!
官网下载:
https://docs.ultralytics.com/zh/models/yolov8/#performance-metrics
小贴士:如果下载速度较慢,可以尝试更换 pip 源,使用国内镜像源,如阿里云、清华大学等镜像源,能显著提升下载速度。
# 加载预训练模型
from ultralytics import YOLO
# 加载预训练模型
model = YOLO("yolov8n.pt") # 使用YOLOv8 Nano版本作为起点
# 查看版本信息
print(model.info())
print("加载完成")
# 加载预训练模型
from ultralytics import YOLO
# 加载预训练模型
model = YOLO("yolov8n.pt") # 使用YOLOv8 Nano版本作为起点
model('./img/r.png', save=True, show=True)
选中 './img/r.png' 图片做为检测目标,检测后的图将保存到
runs
目录下,标记处检测框。
save=True
:保存检测结果show=True
:显示检测结果数据集结构图片
根目录创建 1 个文件夹(可自定义名称),如:xl,下面再创建 2 个文件夹(images 和 labels),images 和 labels 下再分别创建 2 个文件夹(train 和 val)。
images
下的 train
和 val
放入训练图片(png、jpg)。labels
下的 train
和 val
放入图片标注(txt)。准备一些照片素材,通过 YOLO 目标检测标注工具进行标注。可以使用作者写的标注工具《YOLO目标检测标注工具》。关注“Harry技术”公众号,发送 标注 关键字,获取下载地址以及源代码。我已经将工具打包成exe,可以直接使用。
# 加载预训练模型
from ultralytics import YOLO
# 加载预训练模型
model = YOLO("yolov8n.pt") # 使用YOLOv8 Nano版本作为起点
# 训练模型
results = model.train(data="data.yaml", # 使用自定义数据集进行训练
epochs=500, # 训练500个周期
imgsz=640, # 调整图像大小
batch=16, # 减少批次大小
device='cpu' # 使用CPU进行训练
)
print("训练完成")
path: D:\PyProjects\yolo\xl # 预训练模型路径
train: images/train # 训练集
val: images/val # 验证集
nc: 1 # 类别数
names: ['car-number'] # 类别名
为了截图,这里开 30 个周期,建议你实际操作中,训练更多周期次数,多找一些图片内容标注,这样在检测的时候会更接近预期。
训练完成的结果会显示在 runs\detect\train\weights
下,找到 best.pt
测试一下验证结果。在 YOLO(如 YOLOv8)训练过程中,best.pt
和 last.pt
是两种自动生成的模型权重文件,主要区别如下:
best.pt
(最佳模型)last.pt
(最后模型)best.pt
效果好)。总结:
best.pt
(性能更优);last.pt
(保留最新训练状态)。你当前代码中加载 best.pt
是合理的,符合「使用最佳模型推理」的常规场景。
# 加载预训练模型
from ultralytics import YOLO
# 加载预训练模型
# model = YOLO(r'D:\PyProjects\yolo\runs\detect\train\weights\best.pt') # 使用自己训练的模型
model = YOLO("best.pt") # 使用自己训练的模型
# model('./img/1.png', save=True)
# model('./img/2.png', save=True)
# model('./img/3.png', save=True)
# model('./img/4.png', save=True)
# model('./img/5.png', save=True)
# model('./img/6.png', save=True)
# model('./img/7.png', save=True)
# model('./img/8.png', save=True)
# model('./img/9.png', save=True)
# model('./img/2.mp4', save=True, show=True)
通过以上步骤,你就可以使用 Python 和 YOLO v8 训练出属于自己的 AI 视觉目标检测模型啦!赶紧动手试试吧!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有