大气蓝色wap网站模板,中国商标注册网查询网官网,用例图在线制作网站,广州行业门户网站建设Yolo系列
Yolo系列算是目标检测领域的常青树了#xff0c;从v1到最近的v9#xff0c;一直都在不断迭代#xff0c;不断改进#xff0c;但是细看其各代网络的发展#xff0c;其实还是有很多一脉相承之处以及算法设计偏好的#xff0c;总结主要为以下几个方面#xff1a;…Yolo系列
Yolo系列算是目标检测领域的常青树了从v1到最近的v9一直都在不断迭代不断改进但是细看其各代网络的发展其实还是有很多一脉相承之处以及算法设计偏好的总结主要为以下几个方面
网络结构预处理 后处理损失函数anchor算法如何将目标检测做成端到端一阶段算法的关键
Yolov1
网络结构 第一代yoloDarkNet作为backbone没有neck和backbone部分。
划分grid anchor
yolov1提出了划分网格来实现目标检测的方案将一张图片划分为 S × S S\times S S×S个网格每个网格负责预测中心点在该网格内的目标。 anchor就类似于之前目标检测算法中的待检测框之前的目标检测算法是使用region proposal来提取待检测框yolo系列则是使用提取预设好的anchor。yolov1每个grid有5个anchor在yolov1中称为boundingboxyolov1中是直接预测bbox的长宽并没有预设anchor的尺寸。 也有说每个grid预测两个boundingbox的模型版本不同参数也可能有变化这不是重点重点是这种思想。 正负样本处理 损失函数
对于每个grid来说如果有ground truth的与GT的IOU最大的框为正样本其余为负样本至于正负样本数量不平衡问题令损失函数中正负样本的损失添加不同的系数。 yolov1把目标检测当作回归问题所以其损失函数为
预处理 后处理
Yolov1没有预处理如果说resize也算预处理的话那就有预处理。 Yolov1的后处理就是将输出的结果进行NMS非极大值抑制剔除重复的框。
Yolov2
yolov2的主要贡献
在模型中添加了BN层【关于BN层可以看之前的blogBN层详解】引入了Anchor机制使用聚类算法来预设Anchor的尺寸v1中直接预测bbox的宽高v2中挑一个IOU最大的anchor作为bbox预测bbox左上角角点的偏差同时对anchor的宽高进行微调。
正负样本处理 损失函数
IOU小于阈值的统统作为负样本只考虑置信度误差IOU最大的同时考虑置信度误差类别误差以及定位误差。和v1一样同样采用在正负样本前加上参数的方式来平衡正负样本误差。
Yolov3 又是比较经典的一代主要贡献 -网络结构基本定型形成backboneneckhead的结构采用darknet-53作为backbone同时生成三种特征图用于提取不同尺度上的特征。
正负样本 损失函数
不再使以grid来负责物体的预测但是还用grid来分配anchor只不过计算IOU的时候GT会对所有的anchor都计算IOU找到一个IOU最大的作为正样本对于IOU小于阈值的作为负样本其余的都忽略不算loss。loss的计算依旧是使用正负样本分别添加系数负样本只计算置信度正样本计算置信度类别误差和坐标误差。不过由于三个特征图所以loss是三个特征图的loss之和。
Yolov5 最经典最常用的一代网络结构讲解可以看之前的blogyolov5 主要贡献
采用bottleneck结构有效降低计算量采用CSP结构降低计算量和内存瓶颈增加梯度路径采用SPP结构图像金字塔池化实现全局特征和局部特征的融合采用了FPN结构图像金字塔小目标精度更好采用PANet结构【6.0版本后加的】可以做图像分割。
正负样本处理 损失函数
yolov5的正负样本处理相较于v3做了很大改进提高了正样本的数量。 yolov5中的正样本选择不再使用最大IOU规则而是先根据shape将GT分到不同的特征层根据GT的宽高比将该GT分配到一个特征层该层内GT中心点所在的grid以及附近的两个grid都负责预测该GT这三个grid的anchor都作为正样本其余作为负样本。 xywh的损失采用了CIOU损失IOU的发展路程可以看IOU那点事儿 类别和置信度的损失采用了BCEloss也就是交叉熵损失 所谓经典其实也不是说他们的效果比别的模型有多出众而是他们开箱即用不断更新更能吸引更多人来使用并不断迭代这才是为什么yolov3和yolov5一直这么火这两个是一家公司ultralytics做的他们实现的yolov5被称为u版目前已经迭代到了7.0版本。 模型的改进可以分为两点第一点是对模型本身的改进也就是结构的改进第二点是对于整个工程来说trick的使用和改进也就是超参的选择方式等yolov5的模型改进不多trick改进很多。