YOLOv5深度可视化解析

前言:

目标检测是计算机视觉一个重要的领域。物体检测(object detection)是计算机视觉中一个重要的分支,其大致功能是识别一组预定义的对象类,比如说人、汽车、自行车、动物。并使用边界框(矩形框/bounding box)描述图像中每个检测到的图像位置。通常我们会使用最小边界框(矩形框/bounding box)框出目标物体位置,并进行分类。但是通常对象的形状往往是不规则的,所以另一种代替的方法是图像分割技术,图像分割技术一般会精确到像素级。

物体检测的两个步骤可以概括为:

步骤一:检测目标位置(生成矩形框)

步骤二:对目标物体进行分类

物体检测主流的算法框架大致分为one-stage与two-stage。two-stage算法代表有R-CNN系列,one-stage算法代表有Yolo系列。

two-stage:

two-stage原理有两个阶段,阶段一是生成感兴趣的区域,阶段二是将生成的感兴趣的区域输送到传递途径中( pipeline )进行对象分类和矩形框回归。

好处是模型准确度比较高,但是速度比较慢。

one-stage:

one-stage是通过获取输入图像并学习类条件概率(Class-conditional probability)和边界框坐标,将对象检测视为简单的回归问题。

PS:类条件概率 Class-conditional probability - 人工智能百科 - 超神经 类条件概率的定义

好处是速度比较快,但是模型准确度比较差。

论文:Optimizing the Trade-off between Single-Stage and Two-Stage Deep Object Detectors using Image Difficulty Prediction

https://arxiv.org/pdf/1803.08707.pdf

yolov5解析

YOLOv5深度可视化解析_第1张图片

(论文地址暂无)

yolov5网络由三个主要组件组成:
1)Backbone:在不同图像细粒度上聚合并形成图像特征的卷积神经网络。
2)Neck:一系列混合和组合图像特征的网络层,并将图像特征传递到预测层。
3)output:对图像特征进行预测,生成边界框和并预测类别。

具体的网络结构

YOLOv5深度可视化解析_第2张图片

https://arxiv.org/pdf/1506.02640.pdf(yolov1论文地址)

https://arxiv.org/pdf/1612.08242.pdf(yolov2论文地址)

https://arxiv.org/pdf/1804.02767.pdf(yolov3论文地址)

https://arxiv.org/pdf/2004.10934.pdf(yolov4论文地址)

在YOLOv5网络中的backbone作为特征提取部分是一个很重要的环节,Backbone的复杂程度能影响整个算法的耗时。

在Backbone中Focus模块是对图片进行切片(slice)操作,并且将切片操作获取的tensor(多维数组)拼接(Concat)起来,生成低维度的特征图起到一个下采样的作用。

SSP(Spatial Pyramid Pooling)的作用是使网络能输入任意大小的图片,并且能使不同任意尺寸的特征图通过SSP层之后都能输出一个固定长度的向量。然后将这个固定长度的向量输入到全连接层,进行后续的分类检测任务。

你可能感兴趣的:(计算机视觉,深度学习,pytorch,神经网络)