【PYTHON-YOLOV8N】关于YOLO的推理训练图片的尺寸

【PYTHON-YOLOV8N】关于YOLO的推理训练图片的尺寸

YOLO(尤其是Ultralytics YOLOv8)对输入图片的尺寸没有严格固定值,但有核心的「默认尺寸」「最佳实践」和「尺寸规则」,以下是详细说明:

一、核心默认尺寸(YOLOv8/YOLOv5/YOLOv7通用)

YOLO系列的默认输入尺寸为 640×640像素(正方形),这是Ultralytics官方推荐的基础尺寸,对应代码/命令中的参数:

  • 推理时:model.predict(source='img.jpg', imgsz=640)
  • 训练时:model.train(data='coco.yaml', imgsz=640)

二、尺寸规则(必须遵守)

  1. 尺寸需是32的整数倍
    YOLO的网络结构包含多次32倍下采样(如640→320→160→80→40→20→10),输入尺寸必须能被32整除,否则会导致特征图尺寸不匹配,报错或精度下降。
    ✅ 合法尺寸:320、416、640、800、960、1280(常用)
    ❌ 非法尺寸:600、700、801(无法被32整除)
  2. 支持非正方形尺寸(YOLOv8+)
    YOLOv8及后续版本支持「矩形推理/训练」(非正方形),只需保证宽高均为32的整数倍即可,例如:
    • 480×640(适配手机竖屏图)
    • 800×1280(适配宽屏图)
      命令示例:model.predict(imgsz=[480, 640])([高, 宽])

三、不通模型不同尺寸的适用场景

|

模型类型具体型号核心特性适用图片大小(imgsz)适用场景速度/精度特点(CPU/单卡GPU)参数量(M)FLOPs(G)
基础检测模型YOLOv8n (nano)极致轻量化,网络深度/宽度最小,推理最快320×320、416×416(推荐);≤640×640移动端/嵌入式设备(如树莓派、手机)、实时性优先的低算力场景(如摄像头实时检测)GPU:~300 FPS,CPU:~20 FPS;精度最低(mAP50≈65)3.28.7
YOLOv8s (small)平衡轻量化与精度,基础版中性价比最高416×416、640×640(推荐);≤800×800通用场景(如安防监控、普通目标检测)、边缘设备(如工业相机)GPU:~200 FPS,CPU:~15 FPS;精度中等(mAP50≈72)11.228.6
YOLOv8m (medium)中等规模,深度/宽度提升,精度显著提高640×640(推荐)、800×800;≤960×960中等算力设备(如中端GPU)、精度要求较高的场景(如电商商品检测、交通标识识别)GPU:~100 FPS,CPU:~8 FPS;精度较高(mAP50≈76)25.978.9
YOLOv8l (large)大规模模型,特征提取能力强800×800、960×960(推荐);≤1280×1280高算力设备(如RTX 30/40系列GPU)、高精度需求(如工业缺陷检测、医疗影像初筛)GPU:~50 FPS,CPU:~4 FPS;精度很高(mAP50≈78)43.7165.2
YOLOv8x (extra large)超大模型,精度天花板,参数量最大960×960、1280×1280(推荐);≤1536×1536服务器级GPU、精度优先无实时性要求的场景(如静态图片分析、数据集标注辅助)GPU:~30 FPS,CPU:~2 FPS;精度最高(mAP50≈79)68.2257.8
轻量化变体YOLOv8n-p2小感受野,适配小尺寸图片(如48×48、96×96)48×48、96×96(推荐);≤320×320小目标检测(如人脸关键点、细小零件检测)、移动端小尺寸图片推理速度比YOLOv8n快10%,精度针对小目标提升5%2.87.5
YOLOv8s-p6多尺度特征融合,适配超大尺寸图片(如1280×1280)1280×1280(推荐)、1536×1536;≤2048×2048远距离目标检测(如无人机航拍、安防远距离监控)速度比YOLOv8s慢15%,大目标精度提升8%12.535.2
实例分割模型YOLOv8n-seg轻量化分割,检测+分割二合一320×320、416×416(推荐);≤640×640移动端分割场景(如简单场景抠图、实时语义分割)GPU:~250 FPS,CPU:~15 FPS;分割精度基础级3.410.1
YOLOv8s-seg平衡分割精度与速度416×416、640×640(推荐);≤800×800通用分割场景(如路面分割、商品轮廓提取)GPU:~180 FPS,CPU:~12 FPS;分割精度中等11.831.4
YOLOv8m-seg中等分割精度640×640(推荐)、800×800;≤960×960工业分割(如零件轮廓检测、缺陷区域分割)GPU:~80 FPS,CPU:~6 FPS;分割精度较高27.285.3
YOLOv8l-seg高精度分割800×800、960×960(推荐);≤1280×1280医疗影像分割(如器官轮廓)、高精度工业质检GPU:~40 FPS,CPU:~3 FPS;分割精度很高45.8176.5
YOLOv8x-seg分割精度天花板960×960、1280×1280(推荐);≤1536×1536科研级分割任务、复杂场景分割(如遥感影像分割)GPU:~25 FPS,CPU:~1 FPS;分割精度最高70.8275.6
姿态估计模型YOLOv8n-pose轻量化姿态估计,检测人体关键点320×320、480×480(推荐);≤640×640移动端人体姿态识别(如健身动作检测、简单行为分析)GPU:~280 FPS,CPU:~18 FPS;关键点检测精度基础级3.39.2
YOLOv8s-pose平衡姿态精度与速度480×480、640×640(推荐);≤800×800通用姿态检测(如监控人体行为、舞蹈动作分析)GPU:~190 FPS,CPU:~14 FPS;关键点检测精度中等11.530.1
YOLOv8m-pose中等姿态精度640×640(推荐)、800×800;≤960×960工业姿态检测(如工人操作规范识别)GPU:~90 FPS,CPU:~7 FPS;关键点检测精度较高26.582.4
YOLOv8l-pose高精度姿态估计800×800、960×960(推荐);≤1280×1280医疗姿态分析(如康复动作检测)、高精度行为识别GPU:~45 FPS,CPU:~3 FPS;关键点检测精度很高44.9172.1
YOLOv8x-pose姿态估计精度天花板960×960、1280×1280(推荐);≤1536×1536科研级姿态分析、复杂行为识别(如体育动作拆解)GPU:~28 FPS,CPU:~2 FPS;关键点检测精度最高69.5268.9
分类模型YOLOv8n-cls轻量化图像分类224×224、320×320(推荐);≤416×416移动端图片分类(如相册分类、简单物品识别)GPU:~350 FPS,CPU:~25 FPS;分类精度基础级2.76.4
YOLOv8s-cls平衡分类精度与速度224×224、416×416(推荐);≤640×640通用分类场景(如商品分类、场景识别)GPU:~220 FPS,CPU:~18 FPS;分类精度中等9.821.5
YOLOv8m-cls中等分类精度224×224、640×640(推荐);≤800×800工业分类(如产品外观分类、物料识别)GPU:~110 FPS,CPU:~9 FPS;分类精度较高22.960.3
YOLOv8l-cls高精度分类224×224、800×800(推荐);≤960×960医疗图像分类(如病灶分类)、复杂场景分类GPU:~55 FPS,CPU:~5 FPS;分类精度很高37.4128.8
YOLOv8x-cls分类精度天花板224×224、960×960(推荐);≤1280×1280科研级分类任务、大规模数据集分类GPU:~35 FPS,CPU:~3 FPS;分类精度最高56.8207.5

四、关键注意事项

  1. 训练与推理尺寸需一致
    若训练时用imgsz=800,推理时也必须用800(或同比例的32倍数),否则会导致检测精度大幅下降。
  2. 自动缩放与填充
    YOLO会自动将输入图片缩放到指定imgsz,并对不足的区域填充黑边(letterbox),无需手动裁剪/缩放图片:
    • 例:输入一张1920×1080的图片,指定imgsz=640,会先按比例缩放到640×360,再在上下填充140像素黑边,最终得到640×640。
  3. 自定义尺寸的设置方法
    • 命令行:yolo detect predict imgsz=800 source='img.jpg'
  4. 小目标检测的特殊优化
    若检测小目标,除了增大尺寸(如800/960),还可配合imgsz+hyp(超参数)调整,或使用YOLOv8的-s小模型(如yolov8s.pt)+大尺寸。

Python代码:

from ultralytics import YOLO model = YOLO('yolov8n.pt')# 正方形尺寸 results = model.predict('img.jpg', imgsz=800)# 非正方形尺寸(高×宽) results = model.predict('img.jpg', imgsz=[480,640])

五、总结

  • 新手/通用场景:直接用默认640×640;
  • 低算力设备(如树莓派、手机):320×320或416×416;
  • 小目标/高精度需求:800×800或960×960;
  • 所有尺寸必须是32的整数倍,训练和推理尺寸保持一致。
  • 分类模型默认适配224×224(经典分类网络输入尺寸),也支持更大尺寸;

Read more

MCP客户端与服务端初使用——让deepseek调用查询天气的mcp来查询天气

MCP客户端与服务端初使用——让deepseek调用查询天气的mcp来查询天气

本系列主要通过调用天气的mcp server查询天气这个例子来学习什么是mcp,以及怎么设计mcp。话不多说,我们开始吧。主要参考的是B站的老哥做的一个教程,我把链接放到这里,大家如果有什么不懂的也可以去看一下。 https://www.bilibili.com/video/BV1NLXCYTEbj?spm_id_from=333.788.videopod.episodes&vd_source=32148098d54c83926572ec0bab6a3b1d https://blog.ZEEKLOG.net/fufan_LLM/article/details/146377471 最终的效果:让deepseek-v3使用天气查询的工具来查询指定地方的天气情况 技术介绍 MCP,即Model Context Protocol(模型上下文协议),是由Claude的母公司Anthropic在2024年底推出的一项创新技术协议。在它刚问世时,并未引起太多关注,反响较为平淡。然而,随着今年智能体Agent领域的迅猛发展,MCP逐渐进入大众视野并受到广泛关注。今年2月,

By Ne0inhk
可以在命令行通过大模型使用上下文协议(MCP)与外部工具交互的软件:小巧的MCPHost

可以在命令行通过大模型使用上下文协议(MCP)与外部工具交互的软件:小巧的MCPHost

小巧的MCPHost MCPHost 可以在命令行下使用,使大型语言模型(LLM)能够通过模型上下文协议(MCP)与外部工具进行交互。目前支持Claude 3.5 Sonnet和Ollama等。本次实践使用自己架设的Deepseek v3模型,跑通了Time MCP服务。  官网:GitHub - mark3labs/mcphost: A CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP). 下载安装 使用非常方便,直接下载解压即可使用。官网提供Windows、Linux和MacOS三个系统的压缩包: https://github.com/

By Ne0inhk
实战篇:Python开发monogod数据库mcp server看完你就会了

实战篇:Python开发monogod数据库mcp server看完你就会了

原创不易,请关注公众号:【爬虫与大模型开发】,大模型的应用开发之路,整理了大模型在现在的企业级应用的实操及大家需要注意的一些AI开发的知识点!持续输出爬虫与大模型的相关文章。 前言 目前mcp协议是给deepseek大模型插上工具链的翅膀,让大模型不仅拥有超高的推理和文本生成能力,还能具备执行大脑意识的工具能力! 如何开发一个mcp? mcp是一种协议,指的是模型上下文协议 (Model Context Protocol)。 官方结成的mcp https://github.com/modelcontextprotocol/python-sdk mcp库 pip install mcp from mcp.server.fastmcp import FastMCP 我们先来做一个简单的案例 from mcp.server.fastmcp import FastMCP import requests mcp = FastMCP("spider") @mcp.tool() def crawl(

By Ne0inhk
AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建

AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 作者:高瑞冬 本文目录 * AI Agent新范式:FastGPT+MCP协议实现工具增强型智能体构建 * 一、MCP协议简介 * 二、创建MCP工具集 * 1. 获取MCP服务地址 * 2. 在FastGPT中创建MCP工具集 * 三、测试MCP工具 * 四、AI模型调用MCP工具 * 1. 调用单个工具 * 2. 调用整个工具集 * 五、私有化部署支持 * 1. 环境准备 * 2. 修改docker-compose.yml文件 * 3. 修改FastGPT配置 * 4. 重启服务 * 六、使用MCP-Proxy集成多个MCP服务 * 1. MCP-Proxy简介 * 2. 安装MCP-Proxy * 3. 配置MCP-Proxy * 4. 将MCP-Proxy与FastGPT集成 * 5. 高级配置

By Ne0inhk