Yolo系列-yolov1

YOLO-V1
经典的one-stage方法
YouOnlyLookOnce,名字就已经说明了一切!把检测问题转化成回归问题,一个CNN就搞定了!可以对视频进行实时检测,应用领域非常广!
在这里插入图片描述核心思想:

Yolov1的核心思想是将对象检测问题转化为一个回归问题,通过单个神经网络直接在输入图像上预测边界框和类别。这个网络被划分为多个网格,每个网格负责检测特定区域内的对象。每个网格预测多个边界框和每个边界框的置信度,以及每个边界框所属的类别。整个网络采用全连接层将所有预测值聚合在一起,并利用非极大值抑制过滤出最终的检测结果。这种方法减少了检测过程中的计算量,提高了检测速度,同时保持了较高的准确率。
在这里插入图片描述网络架构

在这里插入图片描述
YOLOv1(You Only Look Once Version 1)是一种基于卷积神经网络的目标检测算法,由Joseph Redmon于2015年提出。相较于之前的目标检测算法,YOLOv1在速度上有很大的优势,可以实现实时目标检测。

YOLOv1的网络架构可以分为两个阶段:特征提取和目标检测。特征提取使用了一个24层的卷积神经网络,将输入图像经过多次卷积层和池化层处理后,得到一张特征图。目标检测则在这张特征图上完成,将图像分成7x7个网格,并对每个网格预测目标的类别和位置。

YOLOv1的网络架构如下图所示:

yolov1-network-arch

输入图像首先会经过一个卷积层,该卷积层使用Sobel边缘检测滤波器,可以提取图像中的边缘信息。接着经过多个卷积层和池化层处理,最后得到一张7x7x1024的特征图。这张特征图被分为7x7个网格,每个网格预测两个边界框(bounding box),每个边界框包含5个预测值:x、y、w、h和置信度(confidence)。x和y表示边界框中心在网格中的位置,w和h表示边界框的宽度和高度,置信度表示该边界框包含目标的概率。

YOLOv1的训练过程使用了交叉熵损失函数,并且将不同类别的损失进行了加权,使得小目标和大目标的权重相等,避免了某些类别在预测时过度占据了损失函数。此外,YOLOv1的训练过程采用了多尺度输入图像,以更好地处理不同大小的目标。

虽然YOLOv1在速度上有很大的优势,但是在检测精度方面并不是最优的。随后的YOLOv2、YOLOv3和YOLOv4等版本不断推出,对YOLOv1的网络架构进行了改进和优化,提高了检测精度和速度。

每个数字的含义

在这里插入图片描述
损失函数
在这里插入图片描述在这里插入图片描述
NMS(非极大值抑制)

在这里插入图片描述NMS (Non-maximum suppression,非极大值抑制)是一种在计算机视觉中常用的技术,主要用于目标检测、边缘检测等领域中的局部最大值的筛选。

在目标检测中,经常会使用滑动窗口或者锚框来搜索可能包含目标的区域。这个过程中,往往会产生很多重叠的检测结果,不同的检测结果可能都认为自己是目标。这时候,需要使用NMS来筛选掉其中的冗余检测结果,只保留最准确的那一个。

NMS的基本思想很简单,对于一组检测结果,首先会按照其得分(比如分类概率)从高到低排序,然后从得分最高的检测结果开始,遍历其余所有检测结果。对于任意两个重叠度(IoU)大于一定阈值的检测结果,只保留得分较高的那个,将得分较低的检测结果删除。重复这个过程,直到所有检测结果被遍历完。

NMS算法的核心就是对检测框进行排序和遍历并删除冗余的检测框,然后返回排好序的检测框列表。NMS算法是目标检测的重要组成部分,也是多个目标检测算法共有的一个优化手段。
YOLO-V1的优缺点

优点:快速,简单!
问题1:每个Cell只预测一个类别,如果重叠无法解决问题2:小物体检测效果一般,长宽比可选的但单一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/55536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker系列】Docker-核心概念/常用命令与项目部署实践

写在前面 Docker是一种开源的容器化技术,它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中,从而实现快速部署和高效运行。Docker的核心概念包括镜像、容器、仓库等。本文将详细介绍Docker的基本概念、安装方法以及常用命令。 一、Doc…

搭建开发环境-WSL+Ubuntu(一键搭建开发环境)

概述 所谓工欲善其事必先利其器,搭环境往往是开发过程中卡出很多初学者的拦路虎。 对于很多老鸟来说,很多东西都已经习惯成自然,也就没有刻意和初学者说。但对于很多初学者,却是受益良多。 这个系列,先从操作系统开始…

前端工程化

早期混合开发: 1.沟通成本高 2.分工不明确 3.不变管理 4.不便维护和管理 前后端分离开发: 前端开发--------------(请求/响应)------------后端开发【依照接口文档(原型需求)】 需求分析-->接口定义--&g…

前端需要理解的工程化知识

1 Git 1.1 Git 常见工作流程 Git 有4个区域:工作区(workspace)、index(暂存区)、repository(本地仓库)和remote(远程仓库),而工作区就是指对文件发生更改的地方&#xff…

第一个VUE程序?

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title></head> <body><div id"app">{{message}} </div><!-- 1.导入Vue.js --> <script s…

matlab 根据索引提取点云

目录 一、语法二、说明三、名称-值对应参数1、输入参数2、输出参数四、代码示例五、结果展示六、参考链接一、语法 ptCloudOut = select(ptCloud,indices) ptCloudOut = select(ptCloud,row,column

如何使用HTML5新增的标签来优化SEO?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用HTML5新增的标签来优化SEO&#xff1f;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对…

【kubernetes】使用kubepshere部署中间件服务

KubeSphere部署中间件服务 入门使用KubeSphere部署单机版MySQL、Redis、RabbitMQ 记录一下搭建过程 (内容学习于尚硅谷云原生课程) 环境准备 VMware虚拟机k8s集群&#xff0c;一主两从&#xff0c;master也作为工作节点&#xff1b;KubeSphere k8skubesphere devops比较占用磁…

数据结构(基本概念和术语1)

数据、数据元素、数据项和数据对象 1.数据(Data) 是能输入计算机且能被计算机处理的各种符号的集合 信息的载体 是对客观事物符号化的表示能够被计算机识别、存储和加工 包括: 数值型的数据:整数、实数等 非数值型的数据:文字、图像、图形、声音等 2.数据元素(Data Eleme…

C#---第十九课:不同类型方法的执行顺序(new / virtual / common / override)

本文介绍不同类型的方法&#xff0c;在代码中的执行顺序问题&#xff1a; 构造方法普通方法&#xff08;暂用common代替&#xff09;、虚方法&#xff08;Virtual修饰&#xff09;、New方法&#xff08;new修饰&#xff09;三个优先级相同overide方法&#xff08;会替换virtual…

前端面试:【跨域与安全】跨域问题及解决方案

嗨&#xff0c;亲爱的Web开发者&#xff01;在构建现代Web应用时&#xff0c;跨域问题和安全性一直是不可忽视的挑战之一。本文将深入探讨跨域问题的背景以及解决方案&#xff0c;以确保你的应用既安全又能与其他域名的资源进行互操作。 1. 什么是跨域问题&#xff1f; 跨域问…

Go 自学:defer关键字

我们可以使用defer关键字延迟代码的执行&#xff0c;相当于我们把代码放入一个stack中&#xff0c;遵循last in first out的原则输出代码。 package mainimport ("fmt" )func myDefer() {for i : 0; i < 5; i {defer fmt.Print(i)} }func main() {defer fmt.Prin…

Elasticsearch配置优化

以下的优化基础是安装的 Elasticsearch 版本为 7.17.7&#xff0c;同时jdk版本为 1.8.321 1、jvm参数优化 这里说的jvm参数调优&#xff0c;是指elasticsearch安装目录下的jvm.options配置&#xff0c;如下图所示&#xff1a; 这里调整的内容主要是调整垃圾回收的收集器&#…

day16 代码回想录 二叉树03 二叉树的最大深度n叉树的最大深度二叉树的最小深度完全二叉树的节点个数

大纲 ● 104.二叉树的最大深度 ● 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数 二叉树的最大深度 题目链接&#xff1a;104.二叉树的最大深度 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数 叶子节点是左右孩子节点都为空的节点 …

c#两个数进行交换

1.使用中间变量的形式 private static void Main(string[] args){int a110;int a220;ChangeNumber(ref a1,ref a2)onsole.WriteLine($"a1的值{a1},a2的值{a2}");Console.ReadLine();}public static void ChangeNumber(ref int a1, ref int a2){int temp a1;//temp10…

机器学习实战之模型的解释性:Scikit-Learn的SHAP和LIME库

概要 机器学习模型的“黑箱”困境 机器学习模型的崛起让我们惊叹不已&#xff01;不论是预测房价、识别图片中的猫狗&#xff0c;还是推荐给你喜欢的音乐&#xff0c;这些模型都表现得非常出色。但是&#xff0c;有没有想过&#xff0c;这些模型到底是如何做出这些决策的呢&a…

【实操干货】如何开始用Qt Widgets编程?(三)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 在本文中&#xff0…

Unity——拖尾特效

拖尾是一种很酷的特效。拖尾的原理来自人类的视觉残留&#xff1a;观察快速移动的明亮物体&#xff0c;会看到物体移动的轨迹。摄像机通过调整快门时间&#xff0c;也可以拍出具有拖尾效果的照片&#xff0c;如在城市的夜景中&#xff0c;汽车的尾灯拖曳出红色的线条。 在较老…

如何选择合适的损失函数

目录 如何选择合适的损失函数 1、均方误差&#xff0c;二次损失&#xff0c;L2损失&#xff08;Mean Square Error, Quadratic Loss, L2 Loss&#xff09; 2、平均绝对误差&#xff0c;L1损失&#xff08;Mean Absolute Error, L1 Loss&#xff09; 3、MSE vs MAE &#xff…