目标检测 | 让YOLO算法告诉你回归网络的能力

0.简介

这段时间YOLO系列算法很火,尤其是YOLOv3,很多大牛都复现了其在各种平台下的实现(tensorflow,pytorch,caffe…)。主要还是因为YOLOv3算法结合了很多有用的trick,兼顾了速度和精度。但究其本质仍然是回归算法,所以我们在这里先详细介绍下YOLOv1的实现细节,好了解回归算法的特性。网上有很多教程,但质量参差不齐,而且本人阅读起来很多细节比较难理解。因此还是打算总结一下,加深印象。后续还会写v2和v3的实现细节。我们主要分为三部分来介绍,算法整体结构+算法前向计算+算法训练过程。总体来说,YOLOv1算法的特点为算法结构简单,但具体实现细节比较多。

1.YOLO算法结构图

YOLO是利用一个简单的回归网络实现目标检测分类算法。直接放一张图来说明YOLO算法结构之简单。下图不是YOLO论文中的原始结构,而是用一个24层的网络替代了论文中原作者用的GoogleNet作为YOLO检测算法的特征提取器(我们可以用任意的分类网络替代,比如MobileNet,SqueezeNet,ShuffleNet等)。

那么有人会问这么简单的网络是怎么实现目标检测和分类的呢?其所有的秘密就在如下所示的相对复杂的损失函数中(所以损失函数才是深度学习任务的核心嘛,我一直这么认为)。详细细节我们下面展开讨论。(下述代码为网络最后一层的输出层,和损失函数层)

layer {
  name: "reg_reshape"
  type: "Reshape"
  bottom: "conv_reg"
  top: "regression"
  reshape_param {
    axis: 1
    shape {
      dim: 1470
    }
  }
}

layer {
  name: "det_loss"
  type: "DetectionLoss"
  bottom: "result"
  bottom: "label"
  top: "det_loss"
  loss_weight: 1
  detection_loss_param {
    side: 7
    num_class: 20
    num_object: 2
    object_scale: 1.0
    noobject_scale: 0.5
    class_scale: 1.0
    coord_scale: 5.0
    sqrt: true
    constriant: true
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanCruise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值