Yolo v3 学习笔记

Yolo 系列的讲解文章

  1. yolo系列之yolo v3【深度解析】
  2. 机器人小学期(3):YOLOv3
  3. How to implement a YOLO (v3) object detector from scratch in PyTorch: Part 1
  4. 目标检测网络之 YOLOv3 (明也无涯-康行天下- 博客园)
  5. 目标检测|YOLOv2原理与实现(附YOLOv3)

关键点

通过网络的输出来计算Bounding box 坐标和大小
Bounding Box Prediction 公式1
Bounding Box Prediction 图示
非极大值抑制(Non-Maximum Suppression,NMS)

关于 YOLO 损失函数的介绍

  1. https://github.com/Liu-Yicheng/YOLOv3
  2. YOLOv3庖丁解牛(三):YOLOv3损失函数
  3. 图解YOLO
  4. 从YOLOv1到YOLOv3,目标检测的进化之路

Yolo3 的 tensorflow 代码 (Google Search 首页结果)

实验

基于 YunYang1994/tensorflow-yolov3

过拟合
在训练 SIXRay 数据库的时候,按照默认参数去训练,出现了明显的过拟合现象。
SIXRay训练tensorboard显示

在作者的 讨论区 里看到这个问题普遍出现,所以作者提供了一些改进思路,如下:

(2) 过拟合的问题大家可以尝试着使用数据增强,正则化损失以及提前终止的办法去解决.(Link)

针对 bounding box 的数据增强 可以使用 imgaugAugmentor 库来进行前期处理。这篇 博客 里举例说明了 imgaug 使用方法。

(3) 我看issue里面都提到了过拟合的情况,大家可以在训练代码里加上这样一行 (Link)

# 权重衰减 
with tf.name_scope("define_weight_decay"):
    moving_ave = tf.train.ExponentialMovingAverage(0.995).apply(tf.trainable_variables())

当然,应该不仅仅是加上下面这一行就可以了,MovingAverage (官方文档) 的概念和具体的使用方法请参考: tensorflow学习笔记(三十三):ExponentialMovingAverage,以及对它的补充说明:tf.train.ExponentialMovingAverage用法和说明

---- Update (31May2019) ----
原作者已经在代码里添加了 moving average 和 early stopping 两个防止过拟合的策略。

优化技巧

目标检测任务的优化策略tricks

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值