YoLoV1~YoLoV3 SPP

news2024/11/18 3:21:27

截止到今日,差不多对深度学习有了一定了解了,从图像分类的各种神经网络再到YOLO系列的目标检测,一步一步的逐渐实现相应功能,但对于一些具体的代码细节、部分理论,后期可能还需要加强学习和理解。

但是转眼也快开学了,时间也变得有点紧,所以这一方面的技术学习要先暂停一段时间了,等度过这一段时间,自己会重新拿起,训练出自己所需要的模型。

本篇博文主要解析YoLoV3,自己来来回回看了好几遍才明白个大概,总之,水平菜是本质。。。

YoLoV1~YoLoV2

YoLoV1的主要思想就是,如果将一幅图像分成S*S个网格,如果某个物体的中心落在这个网格中,那么这个网格就负责预测这个物体。其次呢,每个网格还要预测2个bounding box,每个bounding box除了预测位置之外,还要附带一个confidence,就是置信度,每个网格还要预测C个类别的分数,C的数值是类别的总数量。

confidence的值的计算公式就是网格中确实存在目标的概率(一般就是取0或者1)*IOU。

最终的预测的目标概率,是某个目标的概率*IOU(交并比)。

最终经过网络结构之后,输出一个7*7*30的特征矩阵,30这个参数主要包括3部分,第一部分:第一个bounding box的参数值,包括中心坐标x,y和bounding box的高和宽,这几个参数都是相对值,在0和1之间,x,y是相对于那个中心小方格而言的,w,h是相对于整个图片来说的。第二部分和第一部分类似,是第二个bounding box的信息。第三部分是20个类别分数。

损失函数,都是以误差平方和的形式实现,主要有三个,bounding box损失函数,confidence损失函数以及classes损失函数,具体计算方法这里不做详细解释了。

YoLoV2中一个创新点是高层特征和底层特征通过一个passthrough层进行一个融合,主要解决预测小目标的问题。BackBone是一个Darknet-19的结构。

YoLoV3~YoLoV3 SPP

YoLoV3的BackBone改成了Darknet-53的结构,包含一系列残差结构的堆叠,没有最大池化层,而是通过卷积层来进行尺度的压缩,运算参数少。每一个Convolutional卷积层包含一个普通卷积层,一个BN层,没有偏置项,还有一个LeakyReLU激活函数。

在两个卷积层后接一个残差结构,残差结构中还有两个卷积层结构。

YoLoV3在每个anchor预测三个不同的尺度,最后会得到3个不同的预测特征图输出,用来预测不同大小的目标。

YoLoV3 SPP中也和YoLoV3一样包含Darknet-53的结构,除此之外还应用了Mosaic图像增强,就是把4张图片拼接在一起进行预测,可以增加数据的多样性,增加目标的个数,BN能一次性统计多张图片的参数。

YoLoV3 SPP和YoLoV3网络结构的主要区别在于增加了SPP模块,实现了不同尺度的特征融合。第一个分支直接接到输出,第二个分支为5*5的最大池化下采样层,第三个分支为9*9的最大池化下采样层,第四个分支为13*13的最大池化下采样层,步距都是1,最后各个分支的高和宽以及深度都是一样的,最后通过一个Concatenate进行拼接,拼接之后深度就翻了4倍,实现多尺度的融合。

损失函数的计算:IoU损失,GIoU损失,DIoU损失,CIoU损失。

IoU损失可以更好的反应重合程度,具有尺度不变性,但是当当两个边界框不相交时,loss为0。DIoU可以直接最小化两个boxes之间的距离,因此可以更快的收敛,达到更高的定位精度。CIou效果最好。

最终训练模型预测结果:

数据集读取以及制作数据集

数据集读取的基本过程:从main中的train.txt中读取每一行的信息,再到xml文件中解析,获取图片的高度宽度以及目标的位置等,再到JPEGImages中载入图片信息。

自己构建数据集,要标注自己的数据集,一般用labelImg一张一张的进行标注,生成xml文件。

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

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

相关文章

IB 课程的挑战 (一)

近年来许多学校都引入 IB 课程 (国际预科文凭课程),让家长在为子女安排升学路途上能有更多的选择。然而,学生在修读IB课程时会遇到什么挑战呢?以下我们就会为大家分享几个有关IB课程的挑战,让各位家长得以参考。 挑战一:时间分配…

ConstraintLayout 使用详解,减少嵌套 UI, 提升性能

前言 对于初学者来说,可能觉得ConstraintLayout属性多,且属性长而弃用它,那你错失了这个大宝贝。 因为在复杂布局,我们会一直用RelativeLayout和LinearLayout去嵌套,因为嵌套的ViewGroup会导致手机多次测量和绘制&am…

解剖华为 Mate 50 Pro主板

华为Mate 50 Pro整体拆解难度中等,可还原性强。主板则是采用堆叠结构,主板1正面主要IC包括高通骁龙84G处理器芯片…… 日前,有拆解机构对华为Mate 50 Pro整机进行了拆解,表示其内部的配件大约有90%是国产元器件,如屏幕…

【Node.js实战】一文带你开发博客项目之Express重构(初始化环境,处理 session,连接 redis)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…

循环UI列表

先看一下效果 支持自定义选项数量,按钮切换,鼠标滑动切换,当前项框选提示,选项缩放等功能 SlideSwitch:鼠标切换选项开关,关闭只能点击按钮切换 SlideOffset:滑动触发值,鼠标X轴向滑动大于此值切换选项,小于不触发 ScaleSwitch:缩放开关,开启…

乘法逆元 +数论分块 +平方和公式

年后准备学习啦,开学还得准备考试。 乘法逆元: 因为涉及到除法,所以取余这个操作就错误。 所以如果我们要求(a/b)%mod,我们可以假设 (a/b)%mod a*c%mod 那么c就是b的逆元。 怎么求逆元呢,其实有很多方法…

指定加拿大UBC|临床肿瘤专业应届博士成功获访问学者offer

G博士指定加拿大UBC,本人具有多年的临床工作经验,但科研产出较少。经过努力,最终我们落实了该校的访问学者职位。又历经半年的流程,G博士终于获得加拿大签证,前往UBC报到。建议:提前申请,预留出…

蓝桥杯刷题-入门题(终章一)

你是如风的少年~😃 空 清新民谣版 - 汪小敏 - 单曲 - 网易云音乐 自在的少年 - 要不要买菜 - 单曲 - 网易云音乐 最后15道入门题,做完这15道,NEWOJ就91道题AC了 目录 一,数根 二,最大值和最小值(I&…

Qt扫盲-QTime理论总结

QTime理论总结一、概述二、使用1. 属性获取2. 时间加减3. 字符串与QTime互转一、概述 QTime对象包含一个时钟时间,可以用小时数、分钟数、秒数和毫秒数来表示。它提供了比较时间和通过添加毫秒数来操作时间的函数。 QTime使用24小时时钟格式;它没有AM/…

bigemap如何设置等高线坐标系并输出

如何设置等高线坐标系并输出发布时间:2018-01-17 版权:投影设置及数据导出矢量等高线生成完成后(详细生成过程参加上一章节:矢量等高线生成),我们就能够设置投影和导出等高线数据。投影设置我们生成等高线默认的坐标是…

大数据集群环境搭建

文章目录本文要点内容大纲一、大数据集群环境搭建1.1、分布式、集群概念初识1.2、集群环境搭建1.2.1、虚拟机克隆1.2.2、修改IP、主机名1.2.3、主机名和IP映射配置1.2.4、防火墙关闭1.2.5、集群机器间免密登录1.2.6、跨机器远程copy文件1.2.7、集群的时间同步问题二、Centos软件…

【3】Linux权限管控

学习笔记目录 初识Linux--入门Linux基础命令--会用Linux权限管控--懂权限Linux实用操作--熟练实战软件部署--深入掌握脚本&自动化--用的更强项目实战--学到经验云平台技术--紧跟潮流 认知root用户 root用户(超级管理员) 无论是Windows、MacOS、L…

【iMessage苹果家庭推推送源码】掀开应用程序“终端”,输入CDDESKTOP运转指令证书

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

沁恒CH32V307单片机入门(01):基础说明与流程体验

文章目录目的基础说明芯片介绍资料与工具开发环境流程体验开发调试下载总结目的 工作这几年单片机主要就接触过 Atmel、Renesas、Microchip、ST 这些厂家的,最近几年因为内部外部的各种因素单片机的价格和供应都挺不稳定的,将来会发生什么也不好说。另外…

python jenkins使用方法/使用笔记

笔者也经常在网上查询信息,但发现很多信息都是照搬,内容甚至有错误,可用性很低.笔者就认为如果要分享就应该把遇到的问题真实的分享出来,让更多同路人少走弯路.节约时间.觉得这篇文章有帮助的同学可以点个赞!将真有用的信息传递给更多人!常用的方法安装 jenkins 依赖pip instal…

python+django校园失物招领系统_13i29.

用户注册:用户填写用户名、密码、年级、姓名、电话号码、邮箱 ,然后点击注册按钮进行注册。 用户登录:用户填写已经注册的用户名和密码并输入验证码,点击登录按钮进行登录。 搜索:用户可以在搜索栏输入关键字进行检索&…

京阳科技拟在上交所上市:计划募资12亿元,业绩波动较大

近日,山东京阳科技股份有限公司(下称“京阳科技”)预披露招股书,准备在上海证券交易所主板上市。本次冲刺上市,京阳科技计划募资12亿元,用于10万吨/年新能源锂电池材料前驱体项目。 据招股书介绍&#xff0…

【刷题】珠玑妙算

至此,我终于明白了哈希表真正的妙用。 目录 文章目录 前言 一、珠玑妙算 二、具体实现 1.哈希表的构建 2.总结规律 1)给出两个字符串:"YBBY","GYYB",构建哈希表:(少猜了一个…

ch2 计算机的发展史

1. 计算机的发展史 人类活动的需求, 推动因素: 电子技术的发展计算机体系结构技术的发展 1. 1 计算机的体系结构 冯诺依曼 体系结构的计算机; 以运算器为核心的 冯诺依曼结构; IBM 360 : 提出计算机系统结构的概念…

DeepTime:时间序列预测中的元学习模型

DeepTime,是一个结合使用元学习的深度时间指数模型。通过使用元学习公式来预测未来,以应对时间序列中的常见问题(协变量偏移和条件分布偏移——非平稳)。该模型是时间序列预测的元学习公式协同作用的一个很好的例子。 DeepTime架…