Yolo系列-yolov1

news2024/9/25 1:18:46

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.coloradmin.cn/o/935325.html

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

相关文章

Adapter Tuning Overview:在CV,NLP,多模态领域的代表性工作

文章目录 Delta TuningAdapter Tuning in CVAdapter Tuning in NLP Delta Tuning Adapter Tuning in CV 题目: Learning multiple visual domains with residual adapters 机构:牛津VGG组 论文: https://arxiv.org/pdf/1705.08045.pdf Adapter Tuning in NLP …

input输入框和按钮相关联

有了内容,提交按钮才会起作用!!! 当input输入框中输入内容的时候,按钮从禁用状态变成可用状态! 输入框中输入的内容会同步输出, 输入的内容被存放在e.detail.value中,将其提取出来赋…

MybatisPlus拦截器实战之数据的加解密和脱敏

文章目录 一、前言二、拦截器简介三、代码目录结构简介四、核心代码讲解4.1 application.yml文件4.2 自定义注解4.2.1 SensitiveEntity4.2.2 SensitiveData4.2.3 MaskedEntity4.2.4 MaskedField4.2.5 MaskedMethod 4.3 Mybatis-Plus 拦截器数据自动加密4.4 Mybatis 打印完整sql…

浅析Linux SCSI子系统:设备管理

文章目录 概述设备管理数据结构scsi_host_template:SCSI主机适配器模板scsi_host:SCSI主机适配器主机适配器支持DIF scsi_target:SCSI目标节点scsi_device:SCSI设备 添加主机适配器构建sysfs目录 添加SCSI设备挂载Lun 相关参考 概…

FTHR-G0001 新手小白的第一块keil开发板

前言 作为从未接触过这类板子的新手,从申请起就十分忐忑,拿到板子的第一印象就是小而又特别,既可以整块板使用,也可以掰开用杜邦线连接的形式具备了灵活与小巧的特点,而核心板的把排针围成一圈的设计就足以让它在树莓…

HRS--人力资源系统(Springboot+vue)--打基础升级--(五)编辑当条记录

今天开发第一步:当前条记录,点击编辑,可以修改数据 1. 首先点击编辑,获取到了当前条的数据,弹出了一个小窗口 这个窗口是不是很熟悉,,没错。。这个窗口跟新增按钮弹出的窗口是同一个的 bug1&am…

使用 Next.js、Langchain 和 OpenAI 构建 AI 聊天机器人

在当今时代,将 AI 体验集成到您的 Web 应用程序中变得越来越重要。LangChain 与 Next.js 的强大功能相结合,提供了一种无缝的方式来将 AI 驱动的功能引入您的应用程序。 在本指南中,我们将学习如何使用Next.js,LangChain&#xf…

【MongoDB系列】1.MongoDB 6.x 在 Windows 和 Linux 下的安装教程(详细)

本文主要介绍 MongoDB 最新版本 6.x 在Windows 和 Linux 操作系统下的安装方式,和过去 4.x 、5.x 有些许不同之处,供大家参考。 Windows 安装 进入官网下载 Mongodb 安装包,点此跳转,网站会自动检测当前操作系统提供最新的版本&…

线性代数的学习和整理14: 线性方程组求解

目录 1 线性方程组 2 有解,无解 3 解的个数 1 线性方程组 A*xy 3根直线的交点,就是解 无解的情况 无解: 三线平行无解:三线不相交 有解 有唯一解:三线相交于一点有无数解:三条线重叠 2 齐次线性方程组…

vector quantized diffusion model for text-to-image synthesis

CVPR 2022论文分享会 - 基于VQ-Diffusion的文本到图像合成_哔哩哔哩_bilibiliCVPR 2022论文分享会 - 基于VQ-Diffusion的文本到图像合成, 视频播放量 1438、弹幕量 2、点赞数 38、投硬币枚数 12、收藏人数 40、转发人数 13, 视频作者 微软科技, 作者简介 大家好我是田老师&…

【电源专题】单节锂离子电池的保护的基本原理

为什么需要保护 锂离子电池在使用中最重要的是要确保它不会被过度充电和放电,这两种行为对它的伤害都是不可修复的,甚至可能还是危险的。因为它的内部材料结构被破坏了,就什么问题都可能表现出来。 因此使用中首先要做的就是要给它加上保护电路,确保过度充放电的行为不会…

系统报错msvcp120.dll丢失的解决方法,常见的三种解决方法

今天为大家讲述关于系统报错msvcp120.dll丢失的解决方法。在这个信息爆炸的时代,我们每个人都可能遇到各种各样的问题,而这些问题往往需要我们去探索、去解决。今天,我将带领大家走进这个神秘的世界,一起寻找解决msvcp120.dll丢失…

LONG-TAILED RECOGNITION 精读

BackGround 解决类别不平衡问题一般的思路: re-sample the data 重采样design specific loss functions that better facilitate learning with imbalanced data 设计针对不平衡数据的损失函数enhance recognition performance of the tail classes by transferri…

【NVIDIA CUDA】2023 CUDA夏令营编程模型(二)

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

为啥外卖小哥宁愿600一月租电动车,也不花2、3千买一辆送外卖!背后的原因......

大家好!我是菜哥! 又到周末了,我们聊点非技术的东西。最近知乎“为何那些穿梭于城市大街小巷的外卖小哥,宁愿每月掏出600块租一辆电动车,也不愿意掏出2、3千买一辆呢?” 冲上热榜! 听起来有点“…

redis学习笔记 - 进阶部分

文章目录 redis单线程如何处理并发的客户端,以及为何单线程快?redis的发展历程:redis单线程和多线程的体现:redis3.x单线程时代但性能很快的主要原因:redis4.x开始引入多线程:redis6/redis7引入多线程IO&am…

UDP通信、本地套接字

#include <sys/types.h> #include <sys/socket > ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);- 参数&#xff1a;- sockfd : 通信的fd- buf : 要发送的数据- len : 发送数据的长度…

leetcode 567. 字符串的排列(滑动窗口-java)

滑动窗口 字符串的排列滑动窗口代码演示进阶优化版 上期经典 字符串的排列 难度 -中等 leetcode567. 字符串的排列 给你两个字符串 s1 和 s2 &#xff0c;写一个函数来判断 s2 是否包含 s1 的排列。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 换句…

curl --resolve参数的作用

之所以会有这样的操作&#xff0c;是因为域名一般对应的都是一个反向代理&#xff0c;直接请求域名&#xff0c;反向代理会将流量随机选一台机器打过去&#xff0c;而无法确保所有的机器都可用。所以直接用ip。 在 curl 命令中&#xff0c;--resolve 参数用于指定自定义的主机名…

【LeetCode-中等题】2. 两数相加

文章目录 题目方法一&#xff1a;借助一个进制位&#xff0c;以及更新尾结点方法一改进&#xff1a;相比较第一种&#xff0c;给head一个临时头节点&#xff08;开始节点&#xff09;&#xff0c;最后返回的时候返回head.next&#xff0c;这样可以省去第一次的判断 题目 方法一…