当前位置:   article > 正文

Yolov3原理分析_yolov3算法的基本原理

yolov3算法的基本原理

本人小白,这只是学习的笔记,如有差错望多多指正。

参考博客:1.介绍一个相对小众的深度学习框架Darknet,其YOLO神经网络算法对目标检测效果显著

                  2.YOLO v3网络结构分析(尤其是这一篇,更加深入和详细一些,网络模型图片也是转发于此)

一. 什么是Yolov3?

         Yolov3是基于一款小众的深度学习框架——darknet的目标检测开源项目,darknet短小精悍,虽然功能和复用性不如当前大火的深度学习框架Tensorflow和Caffe2,但由于其源码都是用纯C语言和CUDA底层编写的,所以它的特点让它在Yolov3项目中大放光彩:速度快,充分发挥多核处理器和GPU并行运算的功能。所以,Yolov3的快速检测正好适合我们这种需要实时检测视频帧的项目;此外,它的准确度也非常高,在尺寸中等偏小的物体上有非常高的准确率,这得益于它的训练方式(会在下面介绍),但在大尺寸的物体,比如占到了整个图片百分之60的物体,识别率则不尽如人意。

二. Yolov3的算法核心

上面已经介绍了,Yolov3是一个目标检测算法项目,而目标检测的本质,就是识别与回归,而处理图像用的最多的就是卷积神经网络CNN,所以,Yolov3本质上,就是一个实现了回归功能的深度卷积神经网络。

1. 特征提取方式

       既然是训练卷积神经网络,就要提取图片信息的特征。相对于FAST R-CNN目标检测模型中使用region proposal(候选区域)特征提取,Yolov3选择了对于图片的全局区域进行训练,速度加快的同时,能够更好的区分目标和背景,但是对于大物体而言,背景也有可能被算进目标的一部分,所以这就是它对中小物体效果特别好,而大背景却不尽如人意的原因

 2. 网络预测方式

            Yolov3在预测图片上采用的是端对端的检测,将整个图片的分为S*S个区域,而如果一个物体的中心落在某个区域上,则对应的网络会对它进行检测。

            而对于每个网络,都有一个bounding box,就是预测区域,每次预测时有四个坐标参数,左上角的xi,yi,宽度和高度tw,th,以及一个置信度。这个置信度就是逻辑回归的产物。置信度判断这个bounding box是否会被忽略,如果不会被忽略,则又会进行多标签分类的逻辑回归,从而贴上标签。

3 . 网络模型(最重要)

            Yolov3最重要的内容就是一个庞大而丰富的深度卷积神经网络模型,它一共有53个全连接卷积层,所以作者在Github上又将该项目称为Darknet-53,但实际上卷积层不止53层,因为特征提取也用到了大量的卷积核。

            下面这张图完美呈现了Darknet在测试时的网络连接状态:

           (图片来源: YOLO v3网络结构分析)

         

         

(1) 一张416*416大小的图片输入,会经过很多层的深度卷积(图片中略过了层数)一直降维到52,26和13。

          (2) 在52,26和13维分别有三个全卷积特征提取器,对应的是右边的Convolutional Set,这就是特征提取器的内部卷积核结构,1*1的卷积核用于降维,3*3的卷积核用于提取特征,多个卷积核交错达到目的。每个全卷积特征层是有连接的,在图中为Concatenate标志,意味着当前特征层的输入有来自于上一层的输出的一部分。每个特征层都有一个输出Predict,即预测结果,最后根据置信度大小对结果进行回归,得到最终的预测结果。

     这就是整个Yolov3中Darknet网络算法的特点和流程。
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/584965
推荐阅读
相关标签
  

闽ICP备14008679号