❝上期我们一起学了的算法结构以及跟比起来有哪些优缺点,如下: 目标检测算法YOLO-V2详解 今天我们看下在版本上改进的算法,到底做了哪些优化?❞
今天我们主要从以下几个方面来学习对做了哪些改进。
YOLO-V3模型框架
模型框架,我们主要从它的基础网络以及的结构方面学习,首先看下结构。
Darknet-53结构
是专门为设计的一个深度学习框架,有着非常好的图像识别的效果,如下图:
Darknet-53模型结构
整个网络主要包括组残差块,如下:
这就是网络的具体框架,接下来我们看下算法是怎么嫁接上去的。
YOLO-V3结构
借鉴了前面学的的思想,采用从不同尺度特征图上下手的检测方式,如下:
YOLO-V3结构
我们看下这个残差块,如上图右上小块,简单的说就是一组特征图与它经过两个卷积层后的特征图相加。
分别从框架的第步,第步和第步的特征图下手进行多尺度检测。首先,一起从最后输出的的特征图看如何检测的。这里将的特征图经过个卷积层进行二次提取特征后拿去检测目标。而后再将提取后的特征图上采样与第步的特征图合并经过个卷积层进行二次提取特征后拿去检测目标。再将第步的二次提取特征图上采样与第步的特征图合并进行二次特征提取检测目标。
一般使用大小的图片作为输入,根据上面结构图,最后得到的特征图为,的特征图为,的特征图为. 使用的是数据集训练,数据集目标检测有个类别,而中每个有个,每个还有五个基本参数,也就是说一个对应的输出维度为(这里不明白为什么这样计算的请参考YOLO-V2算法). 所以有个不同特征尺度的输出,分别为,和的检测结果。对于的输入图片,中的有个,而则有(个.
模型的训练及性能
明白了算法的结构,我们一起看下训练方面的东西,首先先验框该怎么设?
先验框设置
前面学的已经开始采用聚类得到先验框的尺寸,延续了这种方法,为每种下采样尺度设定3中先验框,总共聚类出中尺寸的先验框。在数据集上,这个先验框是,,,,,,,,. 分配上,在最小的特征图上(有最大的感受野)应用较大的先验框,,适合检测较大的对象。 中等的特征图上(中等感受野)应用中等大小的先验框,,,适合检测中等大小的对象。 较大的特征图上(较小的感受野)应用较小的先验框,,,适合检测较小的对象。如下表:
损失函数
对类别预测的代价函数进行了修改,并且没有用。那为什么没有用呢?在原来的分类网络中层都是假设一张图片或者一个只属于一个类别,但是在一些复杂场景下,一个可能属于多个类,比如,我们的类别中有和这两类,那么如果一张图像中有一个,那么我们检测的结果中类别标签就要同时有和这两类,这就是多标签分类。也就是一个属于多个类别。
所以在中,用了逻辑回归层来对每个类别做二分类。逻辑回归层主要用到函数,该函数可以将输入约束在的范围内,因此当一张图像经过特征提取后的某一类输出经过函数约束后如果大于,就表示属于该类,这样一个框就可以预测多个类别,代价函数用的是的交叉熵。
模型性能
在速度和准确率上都是很不错的,从下图中,我们可以看到在跟其他算法进行对比的图中,在上处于领先地位,其中由于输入图片为,所以最小为,而由于输入图片较大,为,也是领先于其他算法的。虽然最高的算法为,但是运行时间却要。而的也达到了。
目标检测算法对比
从下面各算法在数据集上的性能图中,我们也可以清楚的看到算法的强大性能。
各算法在COCO数据集上的性能
好了,至此,我们今天从结构,结构,先验框设置,损失函数,模型性能的角度对做了详细的介绍,以及跟对比做了哪些改进,希望对大家有些帮助。下期,我们将一起学习目标检测算法。
到此这篇yolov3简介(yolov3介绍)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/60840.html