YOLOv3

 YOLOv3

1. YOLOv3效果

1.1 COCO AP

YOLOv3速度最快,但准确率不是很高

                                                                  COCO数据集的一些指标含义

其中 AP指,IoU从0.5开始,以0.05为步距,直到0.95的所有AP IoU的均值

1.2 COCO AP IOU=0.5

1.3 YOLOv3的BackBone为DarkNet-53(53个卷积层)

 1.3.1 取消Max Pooling层,通过卷积层的步距设计实现下采样,这样做可能是提升准确率的原因。

1.3.2 DarkNet-53相比于ResNet的卷积核个数少,训练参数少,所以训练速度更快。

1.3.3 Convolutional层包括ConvLayer -> BN -> LeakyReLU

因为BN的1存在,卷积层中无偏置参数

1.3.4 上图每个方块都是一个残差结构(有何作用?)

 

2. YOLOv3结构

2.1 使用k-means聚类来确定bounding box,YOLOv3预测三个不同尺度的boxes,使用特征金字塔网络来提取这些对于尺度boxes的特征。

在COCO数据集上,对于每个尺度预测三个boxes,张量为N * N * [ 3 * ( 4  + 1 + 80 ) ]

80为类的个数,4为位置信息,1为confidence,N * N指对提取到的特征的每个像素都要预测

2.2 结构

 三个预测输出分别对应不同尺度的检测目标,预测输出1用来预测相对较大的目标,预测输出2用来预测中等大小的目标,预测输出3用来预测小目标,其中2和3之所以有预测较小目标的能力,一个是因为进行了上采样(How?),二是因为结构中融合了先前的特征,通道数增多,或者说上采样的目的就是为了融合之前的像素较高的特征,2中为26 *26,3中为52 * 52。

3. 目标边界框的预测

锚框参数为c~x~,c~y~,p~w~,p~h~网络预测四个边界参数t~x~,t~y~,t~w~,t~h~,从一个cell的左上角来偏移,cell左上角的的坐标为(c~x~,c~y~),初始预测框长宽为p~w~,p~h~,那么预测值如下:

 

σ函数即sigmoid函数,将预测的值压缩至0-1之间,一个cell的长宽就是1,保证在偏移时候选框的左上角点不会离开当前cell

 Q:长宽的更新为什么要选指数函数?

4. 正负样本匹配

如果一个bounding box的IoU不是最高的但大于阈值(0.5),则将该bounding box 丢掉。

如果一个bounding box没有被分配给任何一个GT(ground truth),则此bounding box只有confidence损失,没有候选框损失和分类损失。 

5. 损失计算

5.1 confidence损失

使用二值交叉熵,但在计算时o~i~的取值是0-1

 5.2 class 损失

使用二值交叉熵时,每个类别的概率相互独立,所有类别的概率之和并不等于一,这与交叉熵损失不同。

 6. 丢丢代码

numpy.round(x)

//返回浮点数x的四舍五入值

torch detach()

//当反向传播经过这个node时,梯度就不会从这个node往前面传播

torch.tensor(data, dtype=None, device=None, requires_grad=False)

//可以将numpy数组转换为tensor,torch.tensor()可以从data中的数据做拷贝而不是直接引用

 7. 定位损失

 

 注:g^i^~x~为GT的x坐标,c^i^~x~为cell左上角的x坐标,相减得到GT相对于cell左上角坐标的偏移量。这里定位损失计算的预测偏移量与真实偏移量间的损失。

  是由   反推出来的,

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值