目录

资料

网络模型原理

网络框架

先验框

先验框计算 

训练

置信度

对象条件类别概率

讨论

Reference


资料

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

代码:https://github.com/ultralytics/yolov3

 

网络模型原理

网络框架

yolov8训练的模型部署到ios_网络

yolov8训练的模型部署到ios_网络_02

 

如左上图所示,Darknet-53是论文中提出的一种网络模型结构,可以作为检测模型的backbone,相较于 Darknet-19加深了网络层数,引入了Resnet中的跨层加和操作。如右上图所示,Darknet在ImageNet上的准确率比Darknet-19高近3个点,与ResNet-101和ResNet-152准确率相当,但计算复杂度和FPS要明显比这两者好很多。

 

yolov8训练的模型部署到ios_目标检测_03

 上图YOLOV3的Backbone部分采用的是Darknet-53结构,在Neck部分进行了高层特征与底层特征的融合,融合时采用了上采样的方法将高层特征图的长宽各增加一倍,高层特征获得了与底层特征图相同的尺寸,这样就可以concat到一起了。输出层输出三个尺寸的特征,小尺寸特征图用于检测大尺寸的物体,大尺寸特征图检测小尺寸物体。特征的输出维度为NxNx[3x(4+1+80)],NxN为输出特征图grid cell的数目,一共3个框,每个框有4维预测框数值

yolov8训练的模型部署到ios_网络_04

,

yolov8训练的模型部署到ios_正例_05

,

yolov8训练的模型部署到ios_目标检测_06

,

yolov8训练的模型部署到ios_深度学习_07

,1维预测框置信度,80维物体类别数(COCO数据集一共80个类别)。

先验框

anchor box其实就是从训练集的所有ground truth box中统计(使用k-means)出来的在训练集中最经常出现的几个box形状和尺寸。比如,在某个训练集中最常出现的box形状有扁长的、瘦高的和宽高比例差不多的正方形这三种形状。我们可以预先将这些统计上的先验(或来自人类的)经验加入到模型中,这样模型在学习的时候,瞎找的可能性就更小了些,当然就有助于模型快速收敛了。以前面提到的训练数据集中的ground truth box最常出现的三个形状为例,当模型在训练的时候我们可以告诉它,你要在grid cell 1附件找出的对象的形状要么是扁长的、要么是瘦高的、要么是长高比例差不多的正方形,你就不要再瞎试其他的形状了。anchor box其实就是对预测的对象范围进行约束,并加入了尺寸先验经验,从而实现多尺度学习的目的。

先验框计算 

yolov8训练的模型部署到ios_目标检测_08

yolov8训练的模型部署到ios_目标检测_09

yolov8训练的模型部署到ios_正例_10


训练

yolov8训练的模型部署到ios_yolov8训练的模型部署到ios_11

yolov8训练的模型部署到ios_网络_12

yolov8训练的模型部署到ios_yolov8训练的模型部署到ios_13


 

置信度

还存在一个很关键的问题:在训练中我们挑选哪个bounding box的准则是选择预测的box与ground truth box的IOU最大的bounding box做为最优的box,但是在预测中并没有ground truth box,怎么才能挑选最优的bounding box呢?这就需要另外的参数了,那就是下面要说到的置信度。

yolov8训练的模型部署到ios_网络_14

对象条件类别概率

对象条件类别概率是一组概率的数组,数组的长度为当前模型检测的类别种类数量,它的意义是当bounding box认为当前box中有对象时,要检测的所有类别中每种类别的概率。