yolov3 v4 v5的对比

2024-03-13 06:10
文章标签 yolov3 对比 v4 v5

本文主要是介绍yolov3 v4 v5的对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下将以v3、v4、v5的顺序进行介绍并比对:

1、输入端

yolov4:Mosaic数据增强、(cmBN、SAT自对抗训练)

yolov5:Mosaic数据增强、自适应锚框计算、自适应图片缩放

Yolov5会自动按照新的数据集的labels自动学习anchors的尺寸。采用 k 均值和遗传学习算法对自定义数据集进行分析,获得适合自定义数据集中对象边界框预测的预设锚定框。

2、backbone

yolov3 、v4网络结构,参考:https://zhuanlan.zhihu.com/p/143747206

 yolov3网络结构

yolov4网络结构

yolov5s网络结构

 yolov3:Darknet53,借鉴了ResNet的残差结构,使用这种结构可以让网络结构更深。

 yolov4:将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock。      

        CSPDarknet53,CSP就是CSPNet论文里面跨阶段局部融合网络,CSP结构在每个res_block残差块的头尾增加连接,使特征更好的向后传递,对小目标有好处。CSPNet仿照的是Densenet密集跨层跳层连接思想,但是考虑到内存消耗过大,故修改为部分局部跨层融合做法.

yolov5:Focus结构,CSP结构。

        Focus结构使用切片并concat的方式替换尺化操作,减少尺寸的同时不减少特征。由于减少了卷积层,所以可以减少计算量,同时不损失精度。

        Yolov5与Yolov4不同点在于,Yolov4中只有主干网络使用了CSP结构。而Yolov5中设计了两种CSP结构,以Yolov5s网络为例,CSP1_X结构应用于Backbone主干网络,另一种CSP2_X结构则应用于Neck中。

3、neck

yolov3:FPN

yolov4: SPP模块FPN+PAN结构

        采用SPP模块的方式,比单纯的使用k*k最大池化的方式,更有效的增加主干特征的接收范围,显著的分离了最重要的上下文特征。

yolov5:与yolov4一样的FPN+PAN结构,不同点在于Yolov4的Neck结构中,采用的都是普通的卷积操作。而Yolov5的Neck结构中,采用借鉴CSPnet设计的CSP2结构,加强网络特征融合的能力。

Prediction创新

yolov3:

        一个是目标框位置x,y,w,h(左上角和长宽)带来的误差,也即是 box 带来的 loss。

而在 box 带来的 loss 中又分为x,y 带来的 BCE Loss 以及w,h带来的 MSE Loss。

        一个是目标置信度带来的误差,也就是 obj 带来的 loss(BCE Loss)。

        最后一个是类别带来的误差,也就是 class 带来的 loss(类别数个 BCE Loss)

yolov4: CIOU_loss、DIOU_nms

        Bounding Box Regeression的Loss近些年的发展过程是:Smooth L1 Loss-> IoU Loss(2016)-> GIoU Loss(2019)-> DIoU Loss(2020)->CIoU Loss(2020)

        nms时将IOU替换成DIOU,提高对密集及遮挡目标的效果。

yolov5:GIOU_loss、加权nms(不如yolov4)

yolov4:https://zhuanlan.zhihu.com/p/143747206  写的太详细了

              https://zhuanlan.zhihu.com/p/150127712

yolov5:https://zhuanlan.zhihu.com/p/172121380

这篇关于yolov3 v4 v5的对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/803872

相关文章

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has