原博客:http://blog.csdn.net/fate_fjh/article/details/70598510

前言

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=.1learning_rate=0.001
max_batches = 40100
policy=steps
steps=-1,100,20000,30000
scales=.1,10,.1,.1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

batch:每次迭代要进行训练的图片数量 
subdivisions:batch中的图片再产生子集,源码中的图片数量int imgs = net.batch * net.subdivisions * ngpus 
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=1object_scale=5
noobject_scale=1
class_scale=1
coord_scale=1absolute=1
thresh = .6
random=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

虽然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,每次训练大小与输入大小一致

YOLOV2参数详解相关推荐

  1. CI流水线配置文件参数详解(一)

    文章目录 4. 参数详解(一) 4.1 ``script`` 4.2 ``image`` 指定使用Docker镜像.如 ``iamge:name`` ,暂时忽略. 4.3 ``before_scrip ...

  2. 内存性能参数详解(转载)

    内存性能参数详解 先说说最有效提高你机器内存性能的几个参数:CL,TRP,TRCD CAS Latency "列地址选通脉冲潜伏期" BIOS中可能的其他描述为:tCL.CAS L ...

  3. spring boot 实战 / 可执行war启动参数详解

    概述   上一篇文章<spring boot 实战 / mvn spring-boot:run 参数详解>主要讲解了spring boot 项目基于maven插件启动过程中借助profil ...

  4. 调包侠福音!机器学习经典算法开源教程(附参数详解及代码实现)

    Datawhale 作者:赵楠.杨开漠.谢文昕.张雨 寄语:本文针对5大机器学习经典算法,梳理了其模型.策略和求解等方面的内容,同时给出了其对应sklearn的参数详解和代码实现,帮助学习者入门和巩固 ...

  5. plot参数详解python_30行Python代码实现3D数据可视化

    作者:潮汐 来源:Python技术 欢迎来到编程教室~ 我们之前的文章中有讲解过不少 Matplotlib 的用法,比如: 完成这50个Matplotlib代码,你也能画出优秀的图表 25个常用Mat ...

  6. Ehcache配置参数详解

    ehcache配置参数详解 <?xml version="1.0" encoding="UTF-8"?><ehcache><dis ...

  7. PHP date函数参数详解

    PHP date函数参数详解 作者: 字体:[增加 减小] 类型:转载 time()在PHP中是得到一个数字,这个数字表示从1970-01-01到现在共走了多少秒,很奇怪吧  不过这样方便计算, 要找 ...

  8. ping ip 端口_学生会私房菜【20200305期】——Ping命令及其常用参数详解

    一命令原理 Ping是ICMP的一个典型应用.Ping是检测网络连通的常用工具,同时也能收集其他相关信息.用户可以在Ping命令中指定不同参数,如ICMP报文长度.发送的ICMP报文个数.等待回复响应 ...

  9. python箱线图_Python 箱线图 plt.boxplot() 参数详解

    Python 绘制箱线图主要用 matplotlib 库里 pyplot 模块里的 boxplot() 函数. plt.boxplot() 参数详解 plt.boxplot(x, # 指定要绘制箱线图 ...

最新文章

  1. 斯坦福神经网络神经元对特征提取的影响JS演示
  2. 李笑来 css,李笑来都想投资千万美金的ACSS通证即将强势登陆奇点交易所
  3. git创建本地分支、提交到远程分支
  4. Array with Odd Sum CodeForces - 1296A
  5. 写博客的好处,专家告诉你
  6. 安卓中,当activity处于不可见时将立即消毁
  7. Oracle数据库存储过程
  8. c# 中实用包,实用dll。
  9. 微信开发者工具打开导入其他人的项目源码 修改appid
  10. Atitit usrQC27模块化的规范模块化法 v4 t77 目录 1. 模块化层级(软件项目 1 1.1. 子项目》命名空间package机制》类》类文件》方法函数级别》语句 1 2. 常见的
  11. 七日年化收益率计算器_定投收益率该怎么算?
  12. 教你如何破解无线网络密码(无线网络密码破解)
  13. 这家饱受诟病的三线大厂,福利居然秒杀BATJ!
  14. python数字转换拼音程序_课内资源 - 基于Python的拼音汉字转换程序
  15. 用树莓派搭建全功能NAS服务器(01):树莓派基础操作OMV搭建
  16. 樱花动漫视频数据表分析樱花动漫
  17. 文案自动修改软件-文案自动改写的免费软件下载
  18. 阿里10年:一个普通技术人的成长之路
  19. Revit二次开发——设备自动接管插件的开发思路(入门实例教程)
  20. 年终敬酒万能语句(领导篇)

热门文章

  1. 使用apidoc生成文档
  2. 三年硬件工程师薪水_硬件工程师薪资虚高,你认可吗?
  3. LVS DR模型及LVS持久连接
  4. iphone部分手机不识别webp图片格式
  5. Python常见经典语法
  6. csv数据,已区分训练集和验证集,需要用r语言建立随机森林回归模型,计算模型精度,包括训练集和验证集的r方、mae、rmse
  7. VMware安装Ubuntu虚拟机详细教程
  8. android 微信启动动画,Android 模仿微信启动动画(转)
  9. 数据库各厂商发展历史(5. Teradata)
  10. SpringCache通用缓存学习