YOLO V3学习笔记(对整个过程的超详细理解)

一.yolov3设计的基本思路

       在说yolov3时,我们先从图像分类到目标检测再到YOLOV3去介绍yolov3的的基本设计思路。     

如上图所示,在图像分类中(假设是三分类),我们输入一张图片时,是判断的是整个图像他的类别是属于三分类问题中的哪一类,然后为了得到类别(比如我们分的类别是狗猫猪这三类),我们将图片送入神经网络中,经过了一个全连接层进行分类,通过softmax进行最终的输出(PS:多分类问题用softmax,二分类问题用sigmoid),然后我们把神经网络的输出值和真实值之间进行一个损失的计算,再进行一个反向传播调整神经网络神经元的参数,直到loss收敛,表明网络已经训练好了,但是由于经过了一个人全连接层,输入和输出是固定的,并且输出位置的神经元个数和类别数是一样的。

那么,图像分类的原理,可以运用到目标检测当中吗?首先我们要知道什么是目标检测,目标检测与图像分类的不同在于目标检测是一个图片中可能包含多个我们要获取的目标信息并用画框的方式进行目标定位,而图像分类是对整个图片进行分类(也就是一个图片只有一个目标信息),如上图所示(目标检测标题下的图),假设图片中有一个人的目标,为了定位到他的位置,我们需要用框画出他的位置,也就是要让神经网络输出框的中心点,框的宽高,以及框的类(x,y,w,h,class),若按照图像分类的原理,是要经过一层全连接层,因此输出位置的神经元个数是5,可以实现一个目标的检测。但是若图片中有两个物体时怎么办,我们都知道由于经过全连接层输入和输出已经固定了,并且一个神经元负责检测一类问题,如果一个图片里包含了两个目标的话,那么我们就要获得两个目标的坐标信息(x1,y1,w1,h1,class1),(x2,y2,w2,h2,class2),显然此时的输出位置的神经元个数为5的神经网络是办不到的,那我们此时可以将输出位置的神经元个数增加到10个,显然是可以做到,在实际的训练中,数据集中每张图片包含的目标信息的个数是不一样的,我们不可能每次在网络训练的时候,都去增加神经元的个数,因此在目标检测任务中,我们会规定网络去分最大多少类。那怎么实现呢?YOLOv3给出了答案(上图yolov3的标题)

在yolo v3中,我们会把图片分成很多个网格(假设我们最大的分类数是4类),每个网格去检查这个网格中是否包含物体,每个网格都有自己对应的一个目标信息的输出值(也就是框的坐标信息值),网格中有目标的就置1,输出对应的目标信息。没有目标就置0,所有的目标信息的值都是0。具体怎么实现,请客官往下看。以下就是我在开组会时,使用的自己做的PPT内容(PS:PPT里有一部分内容是借鉴了其他大佬的博客的知识,但是我没有博客保存链接,因此看到了请艾特我)。

 第二部分:特征提取网络

 

 

 第三部分:边界框的生成

 

 

 

 第四部分:误差计算

 

 

第5部分:测试阶段

 PS:以上是我在开组会时,自己做的一个PPT内容(有些内容存在问题,但是我还没有解决),因为在汇报的过程中,我还加自己口述的内容,并没有写在PPT上,因此对于这里面的过程不懂的或者有什么错误的地方欢迎评论区留言,大家一起探讨。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux创始人LinusTorvalds有一句名言:Talk is cheap, Show me the code.(冗谈不够,放码过来!)。 代码阅读是从入门到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。  YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。YOLOv3的实现Darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。  本课程将解析YOLOv3的实现原理和源码,具体内容包括: YOLO目标检测原理  神经网络及Darknet的C语言实现,尤其是反向传播的梯度求解和误差计算 代码阅读工具及方法 深度学习计算的利器:BLAS和GEMM GPU的CUDA编程方法及在Darknet的应用 YOLOv3的程序流程及各层的源码解析本课程将提供注释后的Darknet的源码程序文件。  除本课程《YOLOv3目标检测:原理与源码解析》外,本人推出了有关YOLOv3目标检测的系列课程,包括:   《YOLOv3目标检测实战:训练自己的数据集》  《YOLOv3目标检测实战:交通标志识别》  《YOLOv3目标检测:原理与源码解析》  《YOLOv3目标检测:网络模型改进方法》 建议先学习课程《YOLOv3目标检测实战:训练自己的数据集》或课程《YOLOv3目标检测实战:交通标志识别》,对YOLOv3的使用方法了解以后再学习本课程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值