YOLO Objection Detection

简介

这是一种把目标定位和检测合起来做的算法,据作者测试可以达到45fps(复杂模型)和155fps(精简模型)。

算法简介

Paste_Image.png

(1)把缩放成统一大小的图片分割成S×S的单元格
(2)每一个单元格负责输出B个矩形框,每一个框带四个位置信息(x, y, w, h),与一个该框是物体的概率,用Pr(Object)表示
(3)每一个单元格再负责输出C个类别的概率,用Pr(Class∣Object)表示
所以最终输出层应有S×S×(B∗5+C)个单元。最终输出时,是物体的概率乘以类别概率,才是整体识别到是一个物体的概率:
![][1]
[1]: http://latex.codecogs.com/gif.latex?\Pr(class)=Pr(Class|Object){\cdot}Pr(Object)

在论文You Only Look Once: Unified, Real-Time Object Detection中,S = 7,B = 2,C = 20。 所以输出的单元数为7×7×30。

所用到的神经网络结构:

YOLO Objection Detection_第1张图片

从上图的结构可以看到,倒数第二层是一个全连接层,所以最终的单元输出整合了全局信息,更好地预测图像区域。
神经网络空间分析原理

YOLO Objection Detection_第2张图片
p.png

![][2]
[2]: http://latex.codecogs.com/gif.latex?OutputSize=\frac{N+2P-F}{stride}+1
此时所用参数:
![][3]
[3]: http://latex.codecogs.com/gif.latex?Parameters=F{\cdot}F+1
Generally,
如果输入是一个![][4]
[4]: http://latex.codecogs.com/gif.latex?W_1{\times}H_1{\times}D_1
卷积需要4个参数:
(1)滤波器数量K
(2)滤波器大小F
(3)滤波器滑动步长S
(4)补零大小P
则产生的下一层“图像”大小:
![][5]
[5]: http://latex.codecogs.com/gif.latex?W_2{\times}H_2{\times}D_2
其中
![][6]
[6]: http://latex.codecogs.com/gif.latex?W_2=\frac{W_1+2P-F}{S}+1
![][7]
[7]: http://latex.codecogs.com/gif.latex?H_2=\frac{H_1+2P-F}{S}+1
![][8]
[8]: http://latex.codecogs.com/gif.latex?D_2{=}K
这一共需要的参数数量为:
![][9]
[9]: http://latex.codecogs.com/gif.latex?Parameters=F^2{\times}D_1{\times}K+K
对于Pooling
如果输入是一个![][4]
池化需要2个参数:
(1)池化大小F
(2)滑动步长S
则产生的下一层“图像”大小:
![][5]
其中
![][10]
[10]: http://latex.codecogs.com/gif.latex?W_2=\frac{W_1-F}{S}+1
![][11]
[11]: http://latex.codecogs.com/gif.latex?H_2=\frac{H_1-F}{S}+1
![][12]
[12]: http://latex.codecogs.com/gif.latex?D_2{=}D_1

Darknet空间分析
http://www.jianshu.com/writer#/notebooks/6424478/notes/5940397/preview

训练

整个网络最后一层为线性激活,其它层都为Leaky Rectified Linear激活方式

YOLO Objection Detection_第3张图片
123.png

第一项确定(x,y)
第二项确定(w,h),之所以用平方根,是因为这样可以减小Object大小不同造成的影响
第三四五项确定评分,这样的形式适用于稀疏矩阵。

Disadvantage

(1)异常缩放比会检测不出来
(2)物体很小时很难检测(一个方块只检测一个物体)
(3)定位相对不准确

你可能感兴趣的:(YOLO Objection Detection)