yolov3损失函数_实时物体检测:YOLO,YOLOv2和YOLOv3(三)

作者:Jonathan Hui
编译:ronghuaiyang

导读

YOLOv3其实之前已经有一篇文章介绍过了,不过为了系列的完整性,再将部分要点总结一下。

YOLOv3在YOLO网站上的一段话:

在Pascal Titan X上,它以30FPS的速度处理图像,在COCO test-dev上有57.9%的mAP。

类别预测

大多数分类器假设输出标签是互斥的。如果输出是互斥物体类这样是对的。因此,YOLO使用softmax函数将分数转换为总和为1的概率。YOLOv3使用多标签分类。例如,输出标签可能是“行人”和“儿童”,它们不是互斥的。(现在输出的和可以大于1)YOLOv3用独立的logistic分类器替换softmax函数,计算属于特定标签的输入的概率。YOLOv3没有使用均方误差来计算分类损失,而是对每个标签使用二进制交叉熵损失。这也通过避免了softmax函数,减少了计算的复杂性。

边界框的预测和损失函数的计算

YOLOv3使用逻辑回归预测每个边界框的物体得分。YOLOv3改变了计算损失函数的方式。如果边界框先验锚框与ground truth物体的重叠比其他物体多,则对应的objectness得分为1。对于重叠大于预定义阈值(默认0.5)的其他先验锚框,它们不会产生任何成本。每个ground truth只与一个先验锚框关联。如果一个边界框的先验锚框没有被指定,它不会出现分类和定位的损失,只会有物体的置信度的损失。我们用tx和ty(而不是bx和by)来计算损失。

067ec106237af4a12ad0aca7b43b7710.png

像FPN一样的特征金字塔

YOLOv3对每个位置进行3次预测。每个预测一由个边界框,一个物体置信和80个类别分数组成,即N×N×[3×(4 + 1 + 80)]个预测。

YOLOv3在3个不同的尺度下进行预测(类似于FPN):

  1. 在最后一个feature map层上进行预测。
  2. 向后退2层,上采样2倍。然后YOLOv3获取一个分辨率更高的特征图,并使用元素加法将其与上采样特征映射合并。YOLOv3在合并后的映射上使用卷积进行第二组预测。
  3. 再重复2次,得到的feature map层具有良好的高层结构(语义)信息和良好的物体位置空间分辨率信息。

为了确定先验框,YOLOv3使用了k-means聚类。然后它预先选择9个聚类。对于COCO,锚的宽度和高度为:(10×13),(16×30),(33×23),(30×61),(62×45),(59×119),(116×90),(156×198),(373×326)。这9个先验根据其尺度分为3个不同的组。在检测物体时,每个组都被分配到上述特定一个特征图中。

特征提取器

使用新的53层Darknet-53代替Darknet-19作为特征提取器。Darknet-53主要组成包括3×3和1×1过滤器以及类似ResNet的残差网络连接。与ResNet-152相比,Darknet-53的BFLOP(十亿次浮点运算)更少,同样的分类准确率上却快了两倍。

99497843d989181d0b0d96bb202cfee5.png

YOLOv3 performance

YOLOv3的COCO AP指标与SSD相当,但快了3倍。但是YOLOv3的AP仍然落后于RetinaNet。特别是,AP@IoU =0.75时,与RetinaNet相比,YOLOv3的定位误差明显增加。YOLOv3在检测小对象方面也有显著的改进。

d8cedead5973785ba01f764b2496a911.png

当速度很重要时,YOLOv3在快速检测器类别中表现得非常好。

20f71b7a851e79b1883e53e974a96ef0.png

英文原文:https://medium.com/@jonathan_hui/real-time-object-detection-with-yolo-yolov2-28b1b93e2088

更多文章,请关注微信公众号:AI公园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值