Yolo 系列的讲解文章
- yolo系列之yolo v3【深度解析】
- 机器人小学期(3):YOLOv3
- How to implement a YOLO (v3) object detector from scratch in PyTorch: Part 1
- 目标检测网络之 YOLOv3 (明也无涯-康行天下- 博客园)
- 目标检测|YOLOv2原理与实现(附YOLOv3)
关键点
通过网络的输出来计算Bounding box 坐标和大小
非极大值抑制(Non-Maximum Suppression,NMS)
关于 YOLO 损失函数的介绍
Yolo3 的 tensorflow 代码 (Google Search 首页结果)
- YunYang1994/tensorflow-yolov3
- maiminh1996/YOLOv3-tensorflow
- qqwweee/keras-yolo3
- 【Tensorflow tf 掏粪记录】笔记五——YOLOv3 tensorflow 实现
- YOLOv3 的 TensorFlow 实现,GitHub 完整源码解析
- YOLOv3 in Tensorflow
- Yolo v3 Object Detection in Tensorflow
- Implementing YOLO v3 in Tensorflow (TF-Slim)
- 重磅:TensorFlow实现YOLOv3(内含福利)
- YOLOv3目标检测的TensorFlow实现,可用自己的数据来训练
实验
过拟合
在训练 SIXRay 数据库的时候,按照默认参数去训练,出现了明显的过拟合现象。
在作者的 讨论区 里看到这个问题普遍出现,所以作者提供了一些改进思路,如下:
(2) 过拟合的问题大家可以尝试着使用数据增强,正则化损失以及提前终止的办法去解决.(Link)
针对 bounding box 的数据增强 可以使用 imgaug 和 Augmentor 库来进行前期处理。这篇 博客 里举例说明了 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 两个防止过拟合的策略。
优化技巧