【AI】YOLO学习笔记

news2024/11/15 8:05:08

作为经典的图像识别网络模型,学习YOLO的过程也是了解图像识别的发展过程,对于初学者来说,也可以了解所采用算法的来龙去脉,构建解决问题的思路。

1.YOLO V1

论文地址:https://arxiv.org/abs/1506.02640

YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。YOLO V1不同于之前模型的特点是:创造性的将候选区和对象识别这两个阶段合二为一,所以速度是它优于其他模型的点。
YOLO 网络模型
在这里插入图片描述
YOLO并没有真正去掉候选区,而是采用了预定义的预测区。也就是将图片划分为 7*7=49 个网格(grid),每个网格允许预测出2个边框(bounding box,包含某个对象的矩形框)。
模型的输入为448*448*3的图像,最后输出的是7*7*30的tensor,7*7是网格的大小,后面的30则是有两部分组成,前10位是描述的两个bounding box,分别是x,y,h,w,c,xy是中心点的位置,wh是预选框的宽度和高度,c是预选框的置信度;后20位是代表方框所属类别的概率。为了达成这种30位的输出层效果,我们需要通过损失函数来对模型进行限制。

在这里插入图片描述
NMS 非极大值抑制
简单来说,每个物体只保留最准确(置信度最高)的一个矩形框,其余的全删除。
YOLO采用重叠度的方式来进行筛选:
将候选框按照置信度排序,依次计算两个候选框的重叠度,当重叠度大于我们设定的阈值时,则丢弃置信度较小的候选框,从而达到减少候选框的目的。

IoU= 并集面积/交集面积​ = union_area/intersection_area

2.YOLO V2

YOLO V2的改进:

  • Batch Normalization
    V2版本舍弃Dropout,卷积后全部加入Batch Normalization,
    网络的每一层的输入都做了归一化,收敛相对更容易

  • 更大的分辨率
    V1训练时用的是224*224,测试时使用448*448,
    V2训练时额外又进行了10次448*448 的微调

  • 网络结构
    采用Darknet网络模型;去掉了FC层,全部采用卷积层;经过5次降采样,最后的输出为13*13的网格,5次降采样每次降为原来的一半,所以最出的输入是416*416,即便需要自己修改输入数据的大小,也要确保是32的倍数。
    采用1*1的卷积,减少计算量;

  • 聚类提取先验框
    k-means聚类中采用的距离为1-IOU;

  • Anchor Box
    通过引入anchor boxes,使得预测的box数量更多(13*13*n)

  • Directed Location Prediction
    V2中并没有直接使用偏移量,而是选择相对grid cell的偏移量

  • 感受野
    采用多层卷积,感受野更大

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

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

相关文章

TSINGSEE视频智能解决方案边缘AI智能与后端智能分析的区别与应用

视频监控与AI人工智能的结合是当今社会安全领域的重要发展趋势。随着科技的不断进步,视频监控系统已经不再局限于简单的录像和监视功能,而是开始融入人工智能技术,实现更加智能化的监控和安全管理。传统的监控系统往往需要人工操作来进行监控…

在滴滴和网易划水4年,过于真实了...

先简单交代一下吧,猫哥是某不知名985的本硕,19年毕业加入滴滴,之后跳槽到了网易,一直从事测试开发相关的工作。之前没有实习经历,算是四年半的工作经验吧。 这四年半之间他完成了一次晋升,换了一家公司&am…

Bootstrap 响应式实用工具-来自Twitter,目前最受欢迎的前端框架

Bootstrap 提供了一些辅助类,以便更快地实现对移动设备友好的开发。这些可以通过媒体查询结合大型、小型和中型设备,实现内容对设备的显示和隐藏。 需要谨慎使用这些工具,避免在同一个站点创建完全不同的版本。响应式实用工具目前只适用于块和表切换。 超小屏幕 手机 (<…

Linux 常用的操作命令

我们习惯的使用Windows,安装软件进行使用&#xff0c;比如 WPS&#xff0c;浏览器&#xff0c;一些工具&#xff0c;但是在Linux上就需要用命令去操作&#xff0c;也可以使用像Ubuntu 和 CentOS这类的可视化面板 Linux系统是开源的&#xff0c;所以开发人员可以反复的发现Bug以…

HTTP代理服务器脚本录制

1、报错1 target controller is configured to “use recording Controller“ but no such controller exists,ensure_target controller is configured to "use recording -CSDN博客

《打造第二大脑》—如何构建高效的笔记系统

最近看了一本书&#xff0c;因为我也用Obsidian来记笔记&#xff0c;&#xff08;Obsidian之前有介绍过Obsidian使用教程&#xff08;如何构建你的个人知识库&#xff0c;第二大脑&#xff09;&#xff09;看完这本书后发现里面给的方法跟Obsidian很契合&#xff0c;所以就整理…

RabbitMQ消息顺序性保障

RabbitMQ 没有属性设置消息的顺序性&#xff0c;只能设置消息的优先级&#xff0c;因此消息顺序性保障只能在 consumer 上实现 场景分析&#xff1a; 生产者向 RabbitMQ 里发送了三条数据&#xff0c; 顺序依次是 data1-> data2 -> data3&#xff0c;压入的是一个内存…

安装文本-图像对比学习模型CLIP的方法

文章目录 一、安装clip的误区二、安装clip的官方方法三、离线安装clip的方法1.下载clip包并解压2.然后激活自己的conda环境2.安装clip 一、安装clip的误区 安装clip最容易犯的错误就是直接使用pip安装clip包&#xff0c;如下&#xff1a; pip install clip这里需要注意的是&a…

【LeetCode刷题笔记(3)】【Python】【最长连续序列】【中等】

文章目录 最长连续序列题目描述示例示例 1示例 2 提示 解决方案解决方案1&#xff1a;【集合去重】【遍历数组查找元素】避免无效计数方案1的可行性分析 解决方案2&#xff1a;【集合去重】 【遍历集合查找元素】运行结果复杂度分析 结束语 最长连续序列 最长连续序列 题目描述…

2697. 字典序最小回文串

2697. 字典序最小回文串 难度: 简单 来源: 每日一题 2023.12.13 给你一个由 小写英文字母 组成的字符串 s &#xff0c;你可以对其执行一些操作。在一步操作中&#xff0c;你可以用其他小写英文字母 替换 s 中的一个字符。 请你执行 尽可能少的操作 &#xff0c;使 s 变…

Enterprise Portal Standard Edition [WS_ENT_STD]

拾取坐标系统 i18n internationalization-CSDN博客 另外一种网站 Content Management System(CMS)-CSDN博客

NAT——网络地址转换

目录 一、概念 二、NAT的分类 1.静态NAT 1.1 静态NAT的配置 1.2 利用eNSP小实验加强对静态NAT的理解 2、动态NAT 三、NAPT——端口映射 四、Easy IP 使用一个公网地址可以让所有人都上公网 一、概念 随着Internet的发展和网络应用的增多&#xff0c;IPv4地址枯竭已经成为…

zabbix批量添加端口监控

背景 以前做监控的时候&#xff0c;一台机器上就几个重要端口&#xff0c;手动添加一下监控就可以了。这次公司一个新业务上了很多服务器&#xff0c;每台服务器上的业务端口很多&#xff0c;而且还不一样。着手动添加会累死人的。所以想zabbix怎么批量添加端口监控。通过查了…

R、python读取空间转录组的8种方式

“ 空间转录组测序主要包括5个步骤&#xff0c;我们着重下游分析部分&#xff1a;空转数据分析和可视化。本篇主分享如何使用python和R读取空转数据&#xff0c;主要使用scanpy stlearn seurat包” 引言 在正式开始之前&#xff0c;我们先看看cellranger流程跑完之后&#xff0…

在Node.js中MongoDB排序的方法

本文主要介绍在Node.js中MongoDB排序的方法。 目录 Node.js中MongoDB排序使用原生的mongodb驱动程序进行排序使用Mongoose库中的排序 Node.js中MongoDB排序 在Node.js中使用MongoDB进行排序&#xff0c;可以使用原生的mongodb驱动程序或者Mongoose库。 使用原生的mongodb驱动…

macbookpro 2024怎么恢复出厂设置

可能你的MacBook曾经是高性能的代表&#xff0c;但是现在它正慢慢地逝去了自己的光芒&#xff1f;随着逐年的使用以及文件的添加和程序的安装&#xff0c;你的MacBook可能会开始变得迟缓卡顿&#xff0c;或者失却了以往的光彩。如果你发现你的Mac开始出现这些严重问题&#xff…

使用Go实现一个百行聊天服务器

前段时间, redis作者不是整了个c语言版本的聊天服务器嘛, 地址, 代码量拢共不过百行. 于是, 心血来潮下, 我也整了个Go语言版本. 简单来说就是实现了一个聊天室的功能. 将所有注释空行都去掉, 刚好100行实现. 废话不多说, 先上代码: package mainimport ("fmt"&quo…

区块链的可扩展性研究【06】Plasma

1.Plasma&#xff1a;Plasma 是一种基于以太坊区块链的 Layer2 扩容方案&#xff0c;它通过建立一个分层结构的区块链网络&#xff0c;将大量的交易放到子链上进行处理&#xff0c;从而提高了以太坊的吞吐量。Plasma 还可以通过智能合约实现跨链交易&#xff0c;使得不同的区块…

机器学习之无监督学习

聚类&#xff1a;发掘纵向结构的某种模式信息&#xff0c;某些x属于相同的分布或者类别 特征学习&#xff1a;发掘横向结构的某种模式信息&#xff0c;每一行都可以看成是一种属性或特征 密度估计&#xff1a;发掘底层数据分布&#xff0c;x都是从某个未知分布p(x)采出来的&a…

39、平均池化和全局平均池化

在了解了池化算法的基本概念之后,继续了解一个应用很广泛的池化,叫作全局平均池化。 先看下平均池化。平均池化就是在池化核标定的范围内,对像素取平均值然后作为输出。在很多AI框架或算法描述中,平均池化大概可以分为两种:一种叫作adaptive average pool(自适应平均池化…