【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

Python 内置函数:enumerate()、eval()和exec()

Python 内置函数:enumerate()、eval()和exec()

一、enumerate():迭代计数的"索引器" 1.1 基础用法:为迭代对象添加计数 enumerate()函数用于将一个可迭代对象(如列表、元组等)组合为一个索引序列,同时返回索引和对应的元素值。默认计数从0开始,但可通过start参数自定义起始值。 # 基本示例 seasons =['Spring','Summer','Fall','Winter']print(list(enumerate(seasons)))# 输出: [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3,

By Ne0inhk
Python-playwright:一款强大的UI自动化工具、新兴爬虫利器

Python-playwright:一款强大的UI自动化工具、新兴爬虫利器

点击名片关注阿尘blog,一起学习,一起成长 本文主要分享由微软开发的实现Web UI自动化测试工具Playwright库,相比于之前学习过selenium库,playwright对于编写自动化代码绝对是更轻松了,因为它支持脚本录制,如果只求简单点可以不用写一行代码就能够实现自动化,而且playwright有许多强大的api,很多功能比起selenium都轻松简单,好了话不多说,开启正文~ playwright简介和初步使用 1.1 playwright简介 playwright优点(这里就直接摘抄一下官网的哈,不是重点) 任意浏览器 全平台 同一套 API 跨浏览器。 Playwright 支持所有现代渲染引擎,包括:Chromium、WebKit 和 Firefox。 跨平台。 适用于 Windows、Linux、macOS、本地运行、 CI、headless 和 headed。 跨语言。 在 TypeScript, JavaScript, Python, .NET, Java 中使用

By Ne0inhk
【django家居推荐系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案

【django家居推荐系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案

摘 要 Django家居推荐系统是一个基于Django框架开发的电子商务平台,专注于为用户提供便捷的家居购物体验。该系统不仅支持用户注册登录、浏览家居商品和资讯、收藏与购买心仪商品,还提供了详尽的商城公告和个性化的账户管理功能。通过首页展示、家居资讯推送、商品搜索及详情查看等功能模块,用户能够快速获取所需信息并完成购买决策。此外,系统的商城管理部分包括了购物车、订单、地址管理以及售后服务申请等实用功能,极大地提升了用户的购物便利性和满意度。 对于管理员而言,Django家居推荐系统提供了一个全面而强大的后台管理系统。管理员可以通过后台对商品销售数据进行监控,并对系统用户、反馈建议、轮播图、商城公告、家居资讯等进行有效管理。特别值得一提的是,系统支持对商品分类、订单、配送状态以及售后请求的细致化操作,这使得管理员可以高效地维护商城运营秩序,确保用户体验的质量。同时,管理员还能通过添加新的家居资讯、调整轮播图和发布公告等方式,持续更新网站内容,保持平台活力和吸引力。 关键词:Django框架;家居推荐系统;Python语言; Abstract The Django H

By Ne0inhk