本项目入口地址
配套yolov1入口地址
配套yolov2入口地址
截图来自这些视频
DeepStream.io简介
机器不会学习
说明:机器学习是知乎专栏,这个博客很详细,学习的好地方
铁芯核桃
说明:对yolov有代码级别的说明
比如:目标检测那点儿事——快到飞起的YOLO-V1,如果想看代码级别的就看这个博客。
这是一个非常好的描述。他们属于清华大学。
要么:
准确度 =(检测到的正确数字)/(检测到的所有数字)
召回 =(检测到正确的质量)/(所有正确的数量)
但是(检测到的正确数量)与设置的阈值有关
这里要重点说一下14701这个一维张量,很多人问我,为什么他就能按照你说的77*30来排列,这个就是损失函数来控制的,如下:
(上图有问题,大家都在引用)
上面两张图说明了。以上解释了预测阶段的框架和置信度图形标记。暗框颜色代表框内是否有物体的高置信度。高学历。
这是一个粗略的描述:
其中S^2就是7*7,B=2,代表有两个框,
位置误差的平方和根主要是为了降低大框架和小框架对位置偏差的容忍度。
置信度误差是,每个候选框跟实际物体框IOU大小,选出来一个最大的IOU比。注意不含物体的有了一个权重,这是因为图片大部分是背景,如果背景不增加权重,会导致物体检测不出来,加了权重,告诉网络,背景的影响要小一点,比如权重是0.1
所以任何算法都由两部分组成:
网络结构
损失函数
NMS:
将同类别排序,然后做IOU,剔除IOU大的,然后再对后边的进行重复操作。
Yolov1缺点:
1、小物体无法检测
2、狗(哈士奇 花点狗)这种无法检测出来
dropout原理
线性层后边,激活前面,BN对初始化条件不那么敏感
也就是说BN在训练阶段调整两个参数,预测就可以直接用了。
BN层是为了防止输出数据进入激活函数的饱和区,导致梯度消失。将输出结果强制归纳到0附近。
所以目前卷积后面就有一个BN层。
Yolov2详细介绍
YOLO V2目标检测算法
这里5次降采样,2^5=32,416/32=13,就是这么来的
VGG 和RESNET组合,这里没有了全连接层,全连接层参数多,训练慢,比如全连接层是1048 1048那么参数就是10481048,但是如果是全连接33 获取64通道,就是3364,所以输入大小一定要被32整除
为什么要全连接,直接做成3370的不好吗?
VGG发现的33卷积核,darknet19个卷基层,就是19个卷基层,里面还有11的卷积核,主要用来增加通道数量,3*3的感受野比较大
faster-rcnn设置了9种框,比例是自己设置的。yolo作者剔除了K-means聚类的算法,聚类出5个框
这里K means的距离是通过IOU比值。
感受野越大,未来要识别的物体越大
上面是yolov1.
这些框都是从所有框里面聚合分类后的5个类别,预测的时候只要偏移一下框就好了,不用去变换框的大小
为什么它是奇数而不是偶数
三个黄色框都是非0即1,紫色框是权重,超参数
文章出处登录后可见!