卷积神经网络CNN(6)—— YOLOv2 参数详解

标签: cnn 深度学习 YOLOv2
6769人阅读 评论(10) 收藏 举报
分类:

前言

You Only Look Once (YOLO) 是一个基于GoogleNet的物体检测深度网络,Real-time(实时)与Efficient(有效)一定是YOLO最大的特点与优势。YOLO与其他物体检测的深度网络思路基本相同,学习物体分类以及BoundingBox位置与大小。
参考:https://pjreddie.com/darknet/yolo/
Darknet是基于C语言写的深度网络框架,好处就是相比C++简单易懂,不过对于工程化来说就显得很不友好,所以才会有很多人把YOLO移植到其他深度网络框架去。

在个人的理解下,图像语意分割深度网络当然是最好的解决方法,但是其效果与时效性一直没有很好的表现,因此在规则的物体选用物体检测,不规则的物体采用语意分割可能是目前比较好的解决方法。

YOLOv2 参数详解

对于YOLOv2的深度网络原理以及解释在网上已经有很多人给出,因此作者就对在YOLOv2中的参数进行总结,使得大家可以更好地理解与学习YOLOv2。
以tiny-yolo-voc.cfg为例子进行解释,主要讲解YOLOv2的参数,普通CNN具有的网络层参数,并不解释。

[net]
batch=64
subdivisions=8
width=416
height=416
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1

learning_rate=0.001
max_batches = 40100
policy=steps
steps=-1,100,20000,30000
scales=.1,10,.1,.1

batch:每次迭代要进行训练的图片数量
subdivisions:源码中的图片数量int imgs = net.batch * net.subdivisions * ngpus,按subdivisions大小分批进行训练
width:输入图片宽度, height:输入图片高度,channels :输入图片通道数

对于每次迭代训练,YOLOv2会基于角度(angle),饱和度(saturation),曝光(exposure),色调(hue)产生新的训练图片
angle:图片角度变化,单位为度,假如angle=5,就是生成新图片的时候随机旋转-5~5度
saturation & exposure: 饱和度与曝光变化大小,tiny-yolo-voc.cfg中1到1.5倍,以及1/1.5~1倍
hue:色调变化范围,tiny-yolo-voc.cfg中-0.1~0.1
max_batches:最大迭代次数
其余的为CNN学习参数,不予解释

[region]
anchors = 1.08,1.19,  3.42,4.41,  6.63,11.38,  9.42,5.11,  16.62,10.52
bias_match=1
classes=20
coords=4
num=5
softmax=1
jitter=.2
rescore=1

object_scale=5
noobject_scale=1
class_scale=1
coord_scale=1

absolute=1
thresh = .6
random=1

虽然region(YOLOv1的detection)在最后一层,但是很多参数都是一开始就载入使用的,尤其是对于图片数据处理的参数
classes:类别数量
coords:BoundingBox的tx,ty,tw,th,tx与ty是相对于左上角的gird,同时是当前grid的比例,tw与th是宽度与高度取对数
num:每个grid预测的BoundingBox个数
jitter:利用数据抖动产生更多数据,YOLOv2中使用的是crop,filp,以及net层的angle,flip是随机的,crop就是jitter的参数,tiny-yolo-voc.cfg中jitter=.2,就是在0~0.2中进行crop
anchors:预测框的初始宽高,第一个是w,第二个是h,总数量是num*2,YOLOv2作者说anchors是使用K-MEANS获得,其实就是计算出哪种类型的框比较多,可以增加收敛速度,如果不设置anchors,默认是0.5,还有就是anchors读入参数中名字是biases
这里有一个计算样本anchors的python脚本,anchors生成脚本
bias_match:如果为1,计算best iou时,预测宽高强制与anchors一致
softmax:如果为1,使用softmax
rescore:决定使用哪种方式计算IOU的误差,为1时,使用当前best iou计算,为0时,使用1计算
object_scale & noobject_scale & class_scale & coord_scale:YOLOv1论文中cost function的权重,哪一个更大,每一次更新权重的时候,对应方面的权重更新相对比重更大
thresh:决定是否需要计算IOU误差的参数,大于thresh,IOU误差不会夹在cost function中
random:如果为1每次迭代图片大小随机从320到608,步长为32,如果为0,每次训练大小与输入大小一致

查看评论

YOLO配置文件理解

http://www.infocool.net/kb/WWW/201703/317548.html [net] batch=64 每batch...
  • zhuiqiuk
  • zhuiqiuk
  • 2017-04-14 08:40:03
  • 4748

YOLO中参数和函数说明

YOLO:you only look once中参数和函数说明 1、画出的Box:为包围物体的ground truth。 2、lable标签: x y w h,(x,y)是box的位置,w,h是为bo...
  • u011507206
  • u011507206
  • 2017-04-01 21:12:20
  • 3197

YOLOV2参数详解

原博客:http://blog.csdn.net/fate_fjh/article/details/70598510 前言 You Only Look Once (YOLO) 是一个基于G...
  • xiaoye5606
  • xiaoye5606
  • 2017-06-02 15:50:39
  • 3999

YOLO升级版:YOLOv2和YOLO9000解析

论文笔记:YOLO9000: Better, Faster, Stronger;官方网站 评论:YOLO是基于深度学习方法的端到端实时目标检测系统(YOLO:实时快速目标检测)。YOLO的升级版有两...
  • jqw11
  • jqw11
  • 2017-04-24 14:57:11
  • 6245

yolo v2文件结构和源码的简单梳理

前言 在2017年6月30日,yolo在github上的源码进行了一次更新,有许多文件的位置都改变了。导致我在使用yolo v2训练自己的数据的时候遇到了许多麻烦(网上给的许多解决方案都不太完美)。在...
  • flztiii
  • flztiii
  • 2017-07-03 20:09:30
  • 5673

YOLOV2训练全过程详解

  • 2017年11月23日 17:47
  • 136KB
  • 下载

YOLOv2如何fine-tuning?

作者:木凌 时间:2016年11月。 博客连接:http://blog.csdn.net/u014540717 QQ交流群:554590241 在上一篇用YOLOv2模型训练VOC数据集中...
  • u014540717
  • u014540717
  • 2016-12-01 18:28:58
  • 11227

yolo v2 源码分析(一)

detector .c文件,这里仅分析train_detector void train_detector(char *datacfg, char *cfgfile, char *weightfil...
  • nongfu_spring
  • nongfu_spring
  • 2017-01-06 17:34:42
  • 5200

YOLO源码详解(五)- YOLO中的7*7个grid和RPN中的9个anchors

本系列作者:木凌 时间:2016年12月。 文章连接:http://blog.csdn.net/u014540717 QQ交流群:554590241 一直不知道7×7的网格到底是干什么的,不...
  • u014540717
  • u014540717
  • 2016-12-08 17:58:11
  • 6570

【YOLO】YOLO网络中参数的解读

1.Batch_Size(批尺寸)  该参数主要用于批梯度下降算法(Batch Gradient Descent)中,批梯度下降算法是每次迭代都遍历批中的所有样本,由批中的样本共同决定最优的方向...
  • Jinlong_Xu
  • Jinlong_Xu
  • 2017-07-30 13:07:07
  • 3335
    个人资料
    等级:
    访问量: 10万+
    积分: 1025
    排名: 4万+
    文章分类
    最新评论