总结:YOLOv3: An Incremental Improvement

	前些日子刚刚实现了YOLOv3(过拟合版本), 今天从新学习了一下YOLOv3论文,写一个文档,记录一下,为了交流,也为了自己保存。
  1. Bounding Box Prediction
    网络预测:置信度(1) + 中心点偏移量(2)+ 宽高偏移量(2)+ 分类(n)
    中心点偏移量:原论文:If the cell is offset from the top left corner of the image by (cx; cy) and the bounding box prior has width and
    height pw, ph, then the predictions correspond to:
    bx = σ(tx) + cx
    by = σ(ty) + cy
    bw = pwe**tw
    bh = ph
    eth
    中心点偏移量相对于左上角点而言,以416图片13输出为例,目标中心点偏移(cx, cy)正向计算:
    bx, by = cx/(416/13), cy/(416/13) 整数部分可以通过特征图索引*步长来获得,小数部分就是网络需要学习的部分了。为了保证网络预测cx_offset, cy_offset值处于0-1之间,我们需要对结果进行sigmoid激活。之所以将中心点偏移约束到0-1之间,是因为若偏移量大于1或者小于0,意味着目标中心没有落在这个格子内,可能在左侧格子,也可能在右侧格子,那么就会与置信度产生冲突,严重影响预测结果。
    目标中心点反算过程(测试):
    此时我们已经通过网络获得中心点偏移量,即目标中心的小数位,我们只需要根据特征图索引乘以步长来获得整数位即可得到预测目标的中心点坐标。我们对网络输出进行IOU筛选,根据阈值筛选出IOU大于阈值的特征图格子,即网络认为存在目标中心点的格子,得到这些格子的索引,索引+偏移量(整数位+小数位)乘以步长来得到目标中心点坐标。
    目标框宽高偏移量正算:
    对于特征图每个格子,YOLOv3都准备了3个尺寸的ancher box(先验框),ancher box论文上根据K-means算法聚类得出3种尺寸9个box:On the COCO dataset the 9 clusters were:(10×13); (16×30); (33×23); (30×61); (62×45); (59×119); (116 × 90); (156 × 198);
    (373 × 326).先验框宽高:pw,ph,实际框宽高:bw、bh。偏移量计算公式:tw, th = bw/pw, bh/ph,为了使反算宽高值为正,网络稳定性以及将结果置于梯度较大的定义域内,YOLOv3将tw,th置于对数空间内,即:tw, th=log(bw/pw), log(bh/ph)。tw、th即为网络预测部分。
    目标框宽高反算(测试):
    tw = log(bw/pw)
    e
    tw = elog(bw/pw) = bw/pw
    bw = pw*e
    tw 目标框bh的计算同宽。
    因为中心点偏移量需要sigmoid记性约束,所以在训练过程中我们可以采用BCELoss,宽高损失采用MSELoss,原论文采用SSELoss,即MSELoss(reduction=“sum”)。
  2. Class Prediction
    目标分类:原论文采用sigmoid+BCELoss,我个人认为softmax会在几个目标间产生一种关系,即排他性,这对于中心点重叠的目标来讲是非常不友好的,而sigmoid则不会产生这种关系,sigmoid只会把非目标碾压接近0,而正确目标无限接近1,这同时也迎合了one-hot标签。
  3. Predictions Across Scales
    YOLOv3侦测网络有3个尺度的输出,以416图片为例,分别为13, 26, 52。3个尺寸的输出搭配9个先验框很大程度上满足了目标检测的要求,无论对于小目标亦或是大目标,YOLOv3给出了不错的结果。
    we predict 3 boxes at each scale so the tensor is N × N × [3 ∗ (4 + 1 + 80)] for the 4 bounding box offsets, 1 objectness prediction, and 80 class predictions.Thus our predictions for the 3rd scale benefit from all the prior computation as well as finegrained features from early on in the network.
    通过3种尺寸的侦测目标,同时通过concatenation(torch.cat),使得网络可以同时提取到图片深处的语义信息以及图片浅一些的细节。
  4. Feature Extractor
    YOLOv3通过darknet53来提取特征。
    之后我会通过实际操作来验证或者优化YOLOv3。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值