YOLOV8的学习记录(二) yolo8的几个内置模型简介
YOLOv8 是一个多功能的计算机视觉框架,支持多种任务,包括分类(Classify)、检测(Detect)、旋转目标检测(OBB)、姿态估计(Pose)、实例分割(Segment)。
1. Classify(图像分类)
• 特点 图像分类任务是将整张图像归类到预定义的类别中。
• 输出 类别标签和置信度分数。
• 适用场合 适用于场景识别、物体类别判断等任务。
• 用法:
from ultralytics import YOLO# 加载预训练的分类模型
model = YOLO('yolov8n-cls.pt')# 进行推理
results = model('path/to/image.jpg')
• 返回值内容
probs:一个形状为 (num_classes,) 的张量,包含了输入图像属于每个类别的概率。
names:一个字典,将类别索引映射到类别名称。
for result in results:probs = result.probsnames = result.namespredicted_class_index = probs.argmax()predicted_class_name = names[predicted_class_index]confidence = probs[predicted_class_index].item()print(f"Predicted class: {predicted_class_name}, Confidence: {confidence:.2f}")
• 特点
任务单一:专注于将输入图像分类到预定义的类别中,输出一个类别标签和对应的置信度。
轻量级设计:模型结构相对简单,推理速度快,适合对大量图像进行快速分类。
2. Detect(目标检测)
• 特点 检测图像中的物体,并返回每个物体的边界框、类别标签和置信度。
• 适用场合 安防监控、自动驾驶等场景。
• 用法:
from ultralytics import YOLO# 加载预训练的目标检测模型
model = YOLO('yolov8n.pt')# 对单张图像进行目标检测
results = model('path/to/image.jpg')# 对视频文件进行目标检测
results = model('path/to/video.mp4')
• 返回值内容
boxes:一个 Boxes 对象,包含以下属性:
xyxy:形状为 (num_detections, 4) 的张量,每个检测框的坐标 (x1, y1, x2, y2),表示左上角和右下角的坐标。
cls:形状为 (num_detections,) 的张量,每个检测框的类别索引。
conf:形状为 (num_detections,) 的张量,每个检测框的置信度。
names:一个字典,将类别索引映射到类别名称。
for result in results:boxes = result.boxesnames = result.namesfor box in boxes:xyxy = box.xyxy[0].cpu().numpy()cls = int(box.cls.item())conf = box.conf.item()class_name = names[cls]print(f"Class: {class_name}, Confidence: {conf:.2f}, Bbox: {xyxy}")
3. OBB(旋转目标检测)
• 特点 检测图像中的旋转目标,并返回旋转后的边界框。
• 适用场合 适用于航空图像、卫星图像等场景,以及文字和特定标志检测,其中目标可能呈现旋转状态。
• 用法:
from ultralytics import YOLO# 加载预训练的旋转目标检测模型
model = YOLO('yolov8n-obb.pt')# 进行推理
results = model('path/to/image.jpg')
• 返回值内容
旋转边界框: [x, y, w, h, angle] 格式,表示旋转后的边界框。
类别标签:检测到的物体类别。
置信度分数:模型对该检测的置信度。
4. Pose(姿态估计)
• 特点 检测图像中物体的关键点位置。
• 适用场合 常用于人体姿态估计、动物姿态分析等场景。
用于检测图像或视频中人体的关键点位置,如关节、面部特征点等,可用于动作分析、姿态识别等领域。能够同时检测多个人体的姿态,并输出每个关键点的坐标。
• 用法:
from ultralytics import YOLO# 加载预训练模型
model = YOLO("yolov8n-pose.pt") # 使用姿态估计模型# 预测图像
results = model("path/to/image.jpg")
• 预测返回值
关键点坐标: [x, y] 格式,表示关键点的位置。
置信度分数:模型对每个关键点的置信度。
for result in results:keypoints = result.keypointsboxes = result.boxesnames = result.namesfor i in range(len(boxes)):person_keypoints = keypoints.xy[i].cpu().numpy()person_conf = keypoints.conf[i].cpu().numpy()print(f"Person {i} keypoints: {person_keypoints}")print(f"Person {i} keypoints confidence: {person_conf}")
5. Segment(实例分割)
• 特点 检测图像中的物体,并为每个物体生成分割掩码。不仅能够检测目标的边界框和类别,还能够区分同一类别中的不同实例,精确地分割出每个目标的像素级掩码,,如医学图像分析、自动驾驶等。还
• 适用场合 适用于需要对目标进行精细分割的场景,如医学图像分割、自动驾驶中的道路分割等场景。
• 用法:
from ultralytics import YOLO# 加载预训练的实例分割模型
model = YOLO('yolov8n-seg.pt')# 进行推理
results = model('path/to/image.jpg')
• 预测返回值
boxes:一个 Boxes 对象,包含每个检测框的坐标、类别索引和置信度。
masks:一个 Masks 对象,包含以下属性:
data:形状为 (num_detections, height, width) 的张量,每个检测实例的二进制掩码。
xy:每个掩码的多边形坐标。
names:一个字典,将类别索引映射到类别名称。
for result in results:boxes = result.boxesmasks = result.masksnames = result.namesfor i in range(len(boxes)):cls = int(boxes.cls[i].item())conf = boxes.conf[i].item()mask = masks.data[i].cpu().numpy()class_name = names[cls]print(f"Class: {class_name}, Confidence: {conf:.2f}")
相关文章:
YOLOV8的学习记录(二) yolo8的几个内置模型简介
YOLOv8 是一个多功能的计算机视觉框架,支持多种任务,包括分类(Classify)、检测(Detect)、旋转目标检测(OBB)、姿态估计(Pose)、实例分割(Segment&…...
免费deepseek的API获取教程及将API接入word或WPS中
免费deepseek的API获取教程: 1 https://cloud.siliconflow.cn/中注册时填写邀请码:GAejkK6X即可获取2000 万 Tokens; 2 按照图中步骤进行操作 将API接入word或WPS中 1 打开一个word,文件-选项-自定义功能区-勾选开发工具-左侧的信任中心-信任中心设置…...
Windows操作系统部署Tomcat详细讲解
Tomcat是一个开源的Java Servlet容器,用于处理Java Web应用程序的请求和响应。以下是关于Tomcat的用法大全: 一、安装Tomcat 下载 访问Apache Tomcat官方网站(https://tomcat.apache.org/),根据你的操作系统…...
深入解析A2DP v1.4协议:蓝牙高质量音频传输的技术与实现
1. A2DP概述 A2DP(Advanced Audio Distribution Profile)是一种高质量音频流媒体协议,旨在实现高质量音频内容的分发,通常用于通过蓝牙设备传输音频数据,例如将音乐从便携式播放器传输到耳机或扬声器。与传统的蓝牙语…...
(三)Axure制作转动的唱片
效果图 属性: 图标库:iconfont-阿里巴巴矢量图标库 方形图片转为圆角图片,裁剪,然后加圆角, 唱片和底图是两个图片,点击播放,唱片在旋转。 主要是播放按钮和停止按钮,两个动态面板…...
VueRouter 实例
分析下列代码 const router new VueRouter({mode:history,routes }) 1.const router new VueRouter({ ... })用来创建一个 Vue Router 实例,用于管理 Vue.js 应用的路由。2.mode: history: 作用:启用 HTML5 History 模式,去除…...
Docker 镜像标签使用
写在前面 当使用命令 docker pull mysql 拉取镜像时,其实等价于如下命令 docker pull mysql:latest latest 是默认的标签,字面上理解为最新版本的镜像,实质上 latest 只是镜像的标签名称,跟具体某个版本号地位一样,…...
ASP.NET Core SixLabors.ImageSharp 位图图像创建和下载
从 MVC 控制器内部创建位图图像并将其发送到浏览器;用 C# 编写并与 Linux 和 Windows 服务器兼容。 使用从 ASP.NET MVC 中的控制器下载任何文件类型File。 此示例创建一个位图 (jpeg) 并将其发送到浏览器。它需要 NuGet 包SixLabors.ImageSharp v1.0.4。 另请参…...
蓝桥杯篇---超声波距离测量频率测量
文章目录 简介第一部分:超声波的简介工作原理1.发射超声波2.接收反射波3.计算时间差4.计算距离 硬件连接1.Trig2.Echo 示例代码代码说明注意事项1.声速2.延时精度3.硬件连接 第二部分:频率测量简介频率测量原理1.信号输入2.计数3.计算频率 硬件连接示例代…...
机器学习所需要的数学知识【01】
总览 导数 行列式 偏导数 概理论 凸优化-梯度下降 kkt条件...
【D2】神经网络初步学习
总结:学习了 PyTorch 中的基本概念和常用功能,张量(Tensor)的操作、自动微分(Autograd)、正向传播、反向传播。通过了解认识LeNet 模型,定义神经网络类,熟悉卷积神经网络的基本结构和…...
变相提高大模型上下文长度-RAG文档压缩-3.优化map-reduce(reranker过滤+社区聚类)
我遇到的业务问题实际上是RAG需要处理很多同一对象的日常报告,不像常识类问题,它的相关Document更多而且更分散,日常报告代表数据库里有很多它的内容,而且对象可能只在段落中的几句话提及到。top-k数量受限于大模型长度࿰…...
电解电容的参数指标
容量 这个值通常是室温25℃,在一定频率和幅度的交流信号下测得的容量。容量会随着温度、直流电压、交流电压值的变化而改变。 额定电压 施加在电容上的最大直流电压,通常要求降额使用。 例如额定电压是4V,降额到70%使用,最高施…...
计时器任务实现(保存视频和图像)
下面是一个简单的计时器任务实现,可持续地每秒保存一幅图像,也可持续地每60秒保存一个视频,图像和视频均以当前时间命名: TimerTask类的实现如下: class TimerTask { public:TimerTask(const std::string& path):…...
Django 美化使用ModelForm的输入框
在初次使用ModelForm时,我的html文件代码如下,主要内容是显示一个卡片式表单,通过循环遍历 form 对象动态生成表单字段 {% extends layout.html %}{% block content %} <div class"container"><div class"c1"&g…...
应用层优秀的共享民宿物联网框架该怎么选?
有一说一,应用层优秀的物联网框架通常能帮助提升用户体验、提高运营效率、节能减排等等优势,很多老板也很注重这个层面的设计和打磨,那么对于选择应用层优秀的共享民宿物联网框架时,大家可以从哪几个关键因素进行考量呢࿱…...
【kafka系列】生产者
目录 发送流程 1. 流程逻辑分析 阶段一:主线程处理 阶段二:Sender 线程异步发送 核心设计思想 2. 流程 关键点总结 重要参数 一、核心必填参数 二、可靠性相关参数 三、性能优化参数 四、高级配置 五、安全性配置(可选࿰…...
HCIA-路由器相关知识和面试问题
二、 路由器 2.1 关于路由器的知识 2.1.1 什么是路由器 路由器是一种网络层互联设备,主要用于连接多个逻辑上分开的网络,实现不同网络之间的数据路由和通信。它能根据网络层地址(如 IP 地址)来转发数据包,在网络中起…...
Unity 获取独立显卡数量
获取独立显卡数量 导入插件包打开Demo 运行看控制台日志 public class GetGraphicCountDemo : MonoBehaviour{public int count;// Start is called before the first frame updatevoid Start(){count this.GetIndependentGraphicsDeviceCount();}}...
【stm32】定时器输出PWM波形(hal库)
一. PWM基本原理 PWM是一种通过调节信号的占空比(Duty Cycle)来控制输出平均电压的技术。占空比是指高电平时间与整个周期时间的比值。例如: - 占空比为50%时,输出平均电压为电源电压的一半。 - 占空比为100%时,输出始…...
Deepseek R1模型本地化部署+API接口调用详细教程:释放AI生产力
文章目录 前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装ollama2部署DeepSeek R1模型删除已存在模型,以7b模型为例 三、DeepSeek API接口调用Cline配置 前言 随着最近人工智能 DeepSeek 的爆火,越来越多的技术大佬们开始关注如…...
Mac ARM 架构的命令行(终端)中,删除整行的快捷键是:Ctrl + U
在 Mac ARM 架构的命令行(终端)中,删除整行的快捷键是: Ctrl U这个快捷键会删除光标所在位置到行首之间的所有内容。如果你想删除光标后面的所有内容,可以使用: Ctrl K这两个快捷键可以帮助你快速清除当…...
用pytorch实现一个简单的图片预测类别
前言: 在阅读本文之前,你需要了解Python,Pytorch,神经网络的一些基础知识,比如什么是数据集,什么是张量,什么是神经网络,如何简单使用tensorboard,DataLoader。 本次模型训练使用的是…...
深度学习框架探秘|TensorFlow:AI 世界的万能钥匙
在人工智能(AI)蓬勃发展的时代,各种强大的工具和框架如雨后春笋般涌现,而 TensorFlow 无疑是其中最耀眼的明星之一。它不仅被广泛应用于学术界的前沿研究,更是工业界实现 AI 落地的关键技术。今天,就让我们…...
Linux: 调整套接字缓冲区大小相关内核参数
Linux: 调整套接字缓冲区大小相关内核参数 内核参数关于套接字缓冲区大小相关的设置,这些参数控制了TCP和UDP套接字的接收和发送缓冲区的最大值、默认值以及动态调整范围。 当前配置 net.core.rmem_max 212992 # 最大接收缓冲区大小(字节&#…...
Linux 服务器部署deepseek
把手教你在linux服务器部署deepseek,打造专属自己的数据库知识库 正文开始 第一步:安装Ollama 打开官方网址:https://ollama.com/download/linux 下载Ollama linux版本 复制命令到linux操作系统执行 [rootpostgresql ~]# curl -fsSL http…...
性能测试工具
Postman Postman 是一款功能强大的API开发协作平台,支持构建、测试和记录 API。这款工具提供了直观的图形界面来发送请求并查看响应数据。它还允许创建复杂的 HTTP 请求序列,并能通过内置脚本引擎实现自动化测试场景。 对于团队合作而言,Po…...
DeepSeek、Kimi、文心一言、通义千问:AI 大语言模型的对比分析
在人工智能领域,DeepSeek、Kimi、文心一言和通义千问作为国内领先的 AI 大语言模型,各自展现出了独特的特点和优势。本文将从技术基础、应用场景、用户体验和价格与性价比等方面对这四个模型进行对比分析,帮助您更好地了解它们的特点和优势。…...
反转链表2(92)
92. 反转链表 II - 力扣(LeetCode) 相关题目:206. 反转链表 - 力扣(LeetCode) 解法: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(…...
CSDN、markdown环境下如何插入各种图(流程图,时序图,甘特图)
流程图 横向流程图 mermaid graph LRA[方形] --> B{条件a}B -->|满足| C(圆角)B -->|不满足| D(圆角)C --> E[输出结果1]D --> E效果图: 竖向流程图 mermaid graph TDC{条件a} --> |a1| A[方形]C --> |a2| F[竖向流程图]A --> B(圆角)B …...
