简介
YOLOV3是一种轻量的目标检测网络,他不同于SSD,他是通过对整张图片划分小方块,每个小方块预测一个锚框,最后再和真实框进行一个回归,对锚框微调,得到最后的预测框。
骨干网络
原文作者采用的是DarkNet,这个网络结构没什么好说的
计算逻辑
那么整个YOLOV3预测需要计算哪些东西?
- 框内是否包含物体 ,通过sigmoid函数预测一个概率
- 框内物体的坐标,我们这里用xywh来表示,因此这个坐标我们需要用4个变量表示
- 预测物体的类别,它所属哪一类? 我们这里就设定为C个类别好了,预测一个1XC的向量
我们假设YOLO网络将图片划分成m x n个小方格
每个方格内产生K个预测框
那么最后出来的预测向量形状应该为
m x n x (1+4+C)x K = m x n x (5+C) x K
简单来说,经过darknet骨干网络后,我们再经过YoloDetectionBlock
最后拿1x1卷积来缩小通道至我们需要的那个向量形状
进行预测
损失函数
- 物体是否存在,拿交叉熵来计算
- 坐标损失,yolo采用的是 xywh格式
所以x,y用sigmoid交叉熵来计算中心点偏差
wh则是用abs绝对值计算损失 - 表征物体类别损失,用sigmoid 交叉熵计算
多尺度检测
取不同步长的特征图,并用小特征图融合,
从而得到多尺度预测