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…

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

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

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

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

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

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

Elasticsearch配置优化

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

机器学习实战之模型的解释性: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…

DevOps之自动化测试

什么是自动化测试&#xff1f; 明确一下自动化测试不是什么。自动化测试不是指自动化生成测试代码&#xff0c;而是自动化地执行由开发人员或测试人员编写的测试代码。正如下面这句谚语&#xff1a;“绝不要手工去做任何可以被自动化处理的事情。——Curt Hibbs” 之前是由人…

在ubuntu上部署label-studio

1. 安装label-studio 由于服务器的默认python3版本太低&#xff0c;尝试了很多方法&#xff0c;没有升级。因此采用annaconda方式安装label-studio. a.安装anaconda: 参照如下链接&#xff0c;安装anaconda。 Ubuntu安装Anaconda详细步骤&#xff08;Ubuntu22.04.1&#xff…

G. The Morning Star - 思维

分析&#xff1a; 直接暴力就会tle&#xff0c;不知道怎么下手&#xff0c;可以统计八个方向一条线上的所有坐标&#xff0c;这些坐标一定可以放在一起满足&#xff0c;分析都有哪些线&#xff0c;当横坐标相同时会有竖着的一条线都可以&#xff0c;也就是x c&#xff0c;当纵…

Midjourney 完整版教程(从账号注册到设计应用)

目录 一、Midjourney 介绍 二、Midjourney 的AI出图示例 三、手把手教你上手Midjourney 1、账号&初始化 1.1 账号注册登录 1.2 账号付费 1.3 账号初始化 2、Midjourney的基础设置 3、Midjourney 出图步骤。 (一)直接描述出图 (二)垫图生图。 4、Midjourney的…

C 连接MySQL8

Linux 安装MySQL 8 请参考文章&#xff1a;Docker 安装MySQL 8 详解 Visual Studio 2022 编写C 连接MySQL 8 C源码 #include <stdio.h> #include <mysql.h> int main(void) {MYSQL mysql; //数据库句柄MYSQL_RES* res; //查询结果集MYSQL_ROW row; //记录结…

ruoyi-cloud部署

默认你已经安装mysql&#xff0c;nacos&#xff0c;seata&#xff0c;sentinel等&#xff08;没有的可以先找教程安装&#xff09; 1、下载源码&#xff1a;git clone https://gitee.com/zhangmrit/ruoyi-cloud 2、项目依赖导入&#xff0c;选择自己的maven环境等&#xff0c;创…