ultralytics yolo入门实践

一、配置本地Python环境

二、下载YOLO源码并解压

复制代码
https://github.com/ultralytics/ultralytics/releases

解压后的目录结构如下:

三、安装YOLO

  1. 可以直接使用pip安装,但是这样安装无法对源码进行修改

  2. 源码安装,源码安装后,可以直接修改源代码。

源码安装方式,进入项目目录后,执行:

复制代码
pip  install  -e  .

四、体验一下使用已有的模型进行预测

  1. 命令行执行预测
复制代码
yolo task='detect' mode='predict' model='yolo26n.pt' source='bus.jpg'
复制代码
yolo predict model='yolov8n.pt' source="bus.jpg"

参数说明:

model:指定用哪个模型进行预测(在执行时会自动下载这个模型,或者也可以提前下载好放在项目里)

source:指定想要预测的图片或视频

执行结果会保存在runs目录下:

  1. 代码行执行预测
复制代码
from ultralytics import YOLO

yolo = YOLO('yolov8n.pt', task='detect')
result = yolo(source='bus.jpg', save=True)

参数说明:

save:是否保存结果,存到run目录

conf: 表示置信度多少以下不显示

... ...

这些参数也可以直接在文件中指定:

五、训练自己的模型

上面用到的是YOLO已经训练好的模型进行预测的,我们要在它的模型基础上,用我们自己的数据集来训练自己的模型。

我在这里用的是电脑桌面截图,通过训练想让模型识别微信和飞书两个应用的图标。

第一步:准备数据集

我这里使用截图工具Pixpin截图,很好用。

第二步:数据集重命名

截图后,将所有图片按顺序命名如:1.png, 2.png, 3.png ...,(这里用到批量重命名工具https://rename.jgrass.xyz/)

第三步:标注数据

标注数据用到标注工具:labelimg

第四步:整理数据的目录结构

数据集目录结构如下:

其中:images和labels中的train和val需要分别一一对应,

labels中还有一个classes.txt,保存类别:

第五步:将数据集放到项目中去

第六步:写yaml配置文件

datasets目录下有很多模板,定义一个自己的即可:

复制代码
path: icons # dataset root dir
train: images/train # train images (relative to 'path') 118287 images
val: images/val # val images (relative to 'path') 5000 images
test:    # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794

# Classes
names:
  0: feishu
  1: wechat

第七步:训练

复制代码
from ultralytics import YOLO
# Load model
model = YOLO('yolo11n.pt')
# Train model
model.train(data='icons.yaml',workers=0, epochs=300, batch=16)

最后一步:用训练出来的模型预测

训练完成后,会在runs路径下生成train目录,找到最后一个train(我这里是train3),train3/weights/best.pt就是训练出来的做好的模型:

#### 用 best.pt 模型进行预测看看效果:

复制代码
from ultralytics import YOLO

yolo = YOLO('best.pt', task='detect')
result = yolo(source='test.png', save=True)

效果如下(效果可能不太好,重在学习过程):

相关推荐
howdoyoudo20260623 分钟前
AI审计手记 #01(数据补全版):107小时、17,600次操作——OpenAI越狱案完整攻击链量化分析
大数据·人工智能·安全·ai·语言模型
空堂与归2 小时前
实时目标检测怎么做到又快又准?YOLOv12架构深度解析
人工智能·yolo·目标检测·计算机视觉·架构
狂云歌2 小时前
AI学习之function calling&mcp
人工智能·学习·ai·ai编程
a187927218312 小时前
从一条直线到大模型输出一个token(五):Transformer Block 全景与层归一化
ai·大模型·llm·transformer·layernorm·deepseek·层归一化
FL16238631293 小时前
电力场景变电站火灾检测数据集VOC+YOLO格式564张2类别
人工智能·yolo·机器学习
苏子寒4 小时前
Nano-VLLM全代码解析笔记(6)-embed_head和linear
pytorch·笔记·python·机器学习·ai·nlp·vllm
liulilittle5 小时前
长上下文的成本结构与「甜点区间」——从推理引擎的物理约束看 200K/256K/400K
c++·人工智能·ai·llm·注意力·qkv
jay神6 小时前
27届计算机专业深度学习选题推荐
人工智能·深度学习·yolo·机器学习·计算机视觉
章老师说7 小时前
壬远 AI 网关 v0.4.0 正式发布:模型定价、RMB 配额与多 Key 路由,让企业级 AI 流量治理再进一步
人工智能·ai·开源·负载均衡·ai-native
Roadinforest7 小时前
Claude Code 架构深度解析:从 Agent Loop 到 Tool、MCP 与 Context
ai·架构·llm·agent·anthropic·claudecode