YOLO视觉神经网络框架学习笔记

这几天断断续续看了PulkitSharma的三篇文章,第三篇是解读YOLO视觉网络的,研读的过程做了个简单的阅读笔记,对YOLO框架有了个大体的了解,这篇笔记整理的逻辑并不够好,很多细节也没有具体记录,因为原文写的蛮好了,我只是记录一下重点.如果感兴趣欢迎阅读. 欢迎点赞


为什么YOLO起作用

  • YOLO (You Only Look Once) 用的是R-CNN网络,网络不会查看整个图像,而只会查看图像中包含对象可能性更高的部分。
  • 自称每秒处理45帧,并了解广义检查对象。
  • 提到一门课程Convolutional Neural Networks | Coursera

YOLO框架是什么

  • 了解一下YOLO怎么运作的,分为3步
    • 首先输入图像
    • 然后将图像划分为网格
    • 图像分类定位应用于每个网格,
    • 然后预测对象边界框并分类
  • 假设图像划分为3x3大小,共分为3类情况下,每个标签是8维向量
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MagvqeNr-1573184658774)(https://miro.medium.com/max/248/0*bri5MSTGbBpzU9j5.png)]

怎么编码盒子

  • x,y 的四个坐标是用于分割图边框比例来确定的

联合与非最大抑制的交集

  • 通过画监测区域与标注区域的交叉面积(交叉点面积/并集面积–IoU),若此数据大于0.5,则可以说预测足够好。0.5是我们在此处采用的任意阈值,但可以根据您的特定问题进行更改。直观地,您增加阈值越多,预测就越好。在这里插入图片描述
  • 最大非抑制:如图,多次被识别的汽车通过此技术可以清除,通过IoU对比,IoU比率大,但对对象检测概率最大的被保留
    在这里插入图片描述
  • 总结一下:

丢弃所有概率小于或等于预定阈值(例如0.5)的框
对于其余的框:
1.选择概率最高的框,并将其作为输出预测
2.将IoU大于阈值的其他框与上述步骤中的输出框一起丢弃
3.重复步骤2,直到所有框都被用作输出预测或被丢弃

锚盒子

每个网格中有多个对象怎么办?
在这里插入图片描述

  • 对于每个网格,我们可以根据锚点的数量检测两个或多个对象。,两个对象则是3x3x16的输出
    在这里插入图片描述
    在这里插入图片描述

把上述联合思考

考虑以下场景:我们使用3 X 3网格,每个网格有两个锚点,并且存在3个不同的对象类。因此,对应的y标签将具有3 X 3 X 16的形状。现在,假设我们在每个网格中使用5个锚定框,并且类别数已增加到5。因此目标将是3 X 3 X 5 X 5 = 3 X 3 X25。这就是训练过程的完成方式-拍摄特殊形状的图像,然后将其映射到3 X 3 X 16的目标(这可能会根据网格大小,锚点盒数和类数)。
拍摄形状为(608、608、3)的输入图像将此图像传递到卷积神经网络(CNN),然后返回(19、19、5、85)维输出上述输出的最后两个维度被平坦化以获得的输出音量(19,19,425):一。在这里,一个19 X 19网格的每个像元返回425个数字425 = 5 * 85,其中5是每个网格的锚点盒数
c。85 = 5 + 80,其中5是(pc,bx,by,bh,bw),而80是我们要检测的类数
最后,我们进行IoU和非最大抑制,以避免选择重叠的框

在Python中实现YOLO

GitHub - enggen/Deep-Learning-Coursera: Deep Learning Specialization by Andrew Ng, deeplearning.ai.

  • 可以用IDE搞起来,也可以用JupyterNotebook屡一遍代码.
  • 原文链接
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
神经网络的实验步骤详细分析具体-神经网络大作业(三).doc 本人做的神经网络的实验,步骤详细,分析具体,适合做入门学习用-I do neural network experiments, the steps detailed analysis of specific, suitable for entry to study 截取某些内容,方便参考: 用BP网络识别雷达测速的三类信号 一.数据来源      此信号来自一部测速雷达获得的三种目标的回波信号,三种目标分别是行人W、自行车B和卡车T,信号中包含目标的速度信息。 二.信号的分析与处理      根据所给的三类信号的样本,每一个样本中均包含1024个数据,由于每一个样本的数据量较大,不可能将所有1024个数据全都作为神经元的输入,计算量太大,所以必须首先对信号进行分析,提取最有价值的特征信息。      首先可以看看每一个样本中的数据图,以各类信号中的第一个样本为例,如图1所示。 (1)                                       (2)                                        (3) 图1 (1)行人数据图  (2)自行车数据图  (3)卡车数据图              从上图的时域数据基本上观察不出规律,因此我们要对数据进行傅立叶变换,从频域分析数据的特征,如下图2所示。 图2 行人数据频谱图 从上图中看到行人的数据的频谱的幅度很小,原因是因为信号在零点处的值特别大,所以要将在零点处的值去掉,得到如图3所示。 图3 行人数据去掉零点后的频谱图 这时可以观察到信号的一些特征,从图中发现信号的频谱图是基本对称分布的,而且信号的峰值也很大,可以对它首先进行归一化,如下图4所示。 图4 (1)行人数据归一化后的频谱图 (2)取绝对值后的频谱图 同时将自行车和卡车的频谱图来做比较如图5,6所示 图5 (1)自行车数据归一化后的频谱图        (2)取绝对值后的频谱图 图6 (1)卡车数据归一化后的频谱图              (2)取绝对值后的频谱图 从上面三幅图中,可以观察到信号都有明显的峰值,但是出现的位置不同,另外,信号的均值和方差明显不同。但是考虑到雷达所测数据中,会有一些速度反常规的游离数据,所以考虑采用受游离数据影响小的平均绝对值偏差来代替样本方差作为输入特征。同时,以数据的样本中位数来作为输入特征来减少游离数据的影响。根据这些特征进行提取来作为输入。 三.特征提取 1.取信号归一化后的均值作为一个特征量。 2.取信号归一化后的平均绝对值偏差作为一个特征量。 3.取信号归一化后的样本中位数作为一个特征量。 4.由三幅图的比较可以发现,信号的每两点之间的起伏程度也不尽相同,所以可以设定一个特征量,来纪录信号两点间的起伏程度的大小。 5.信号在经过归一化后,可以将信号全部的值加起来,用这个总的值来作为一个特征量。 除了上述的特征,还有很多特征可以提取,但是特征越多,需要的输入神经元越多,依照隐层神经元约为输入神经元的两倍的原则,隐层的神经元也将越多。则网络训练的时间将花费很大。所以,本实验只提取了上述特征中的1,2,3。 四.算法与实现 根据提取的特征的维数,来决定输入神经元的个数。因为提取的三个特征的维数分别为8,1和1,所以输入神经元的个数为10。输出神经元的个数定为3个,考虑到被识别的三种信号分别对应三个输出,虽然用两个神经元就可以表示三种输出状态,但是用三个神经元能更好地分辨,减少出错的概率。至于隐层的神经元个数则按照约为输入神经元个数的两倍的原则,设为20个。当然还可以在调试过程中根据输出的识别率来找到一个一个较为合适的个数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MINUS大大

你的鼓励是我写下去的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值