卷积神经网络基础知识
1.什么是filter
通常一个6x6的灰度图像,构造一个3*3的矩阵,在卷积神经网络中称之为filter,对6x6的图像进行卷积运算。
2.什么是padding
假设输出图像大小为nn与过滤器大小为ff,输出图像大小则为(n−f+1)∗(n−f+1)(n−f+1)∗(n−f+1)(n-f+1)(n-f+1)。
这样做卷积运算的缺点是,卷积图像的大小会不断缩小,另外图像的左上角的元素只被一个输出所使用,所以在图像边缘的像素在输出中采用较少,也就意味着你丢掉了很多图像边缘的信息,为了解决这两个问题,就引入了padding操作,也就是在图像卷积操作之前,沿着图像边缘用0进行图像填充。对于33的过滤器,我们填充宽度为1时,就可以保证输出图像和输入图像一样大。
padding的两种模式:
Valid:no padding
输入图像nn,过滤器ff,输出图像大小为:(n−f+1)∗(n−f+1)
Same:输出图像和输入图像一样大
3.卷积步长
卷积步长是指过滤器在图像上滑动的距离,前两部分步长都默认为1
4.最大池化和平均池化
最大池化思想很简单,把44的图像分割成4个不同的区域,然后输出每个区域的最大值,这就是最大池化所做的事情。其实这里我们选择了22的过滤器,步长为2。在一幅真正的图像中提取最大值可能意味着提取了某些特定特征,比如垂直边缘、一只眼睛等等。
平均池化和最大池化唯一的不同是,它计算的是区域内的平均值而最大池化计算的是最大值。在日常应用使用最多的还是最大池化。
目标检测是一种应用广泛的计算机视觉技术,能够对图片、视频中的目标进行分类和定位,基于卷积神经网络的目标检测算法主要分为Two-stage和One-stage两种类型。
Two-stage算法会先生成一些候选框,再对每个候选框进行分类和定位优化。虽然它们的准确率通常较高,但需要更多时间和计算资源。而One-stage算法则能在特征解码时,一并生成目标所属的种类和区域信息,在执行速度上更具优势,近年来已不断优化,在检测精度比肩甚至超过了Two-stage算法。常见的Two-stage算法有RCNN系列,如R-CNN、Fast-RCNN、Faster-RCN等;常见的One-stage算法有YOLO系列,如YOLOv1~v10和YOLOX等。
前言
本文目的是用尽量浅显易懂的语言让零基础小白能够理解什么是YOLO系列模型,以及他们的设计思想和改进思路分别是什么。我不会把YOLO的论文给你用软件翻译一遍,这样做毫无意义;也不会使用太专业晦涩的名词和表达,对于每一个新的概念都会解释得尽量通俗一些,目的是使得你能像看故事一样学习YOLO模型,我觉得这样的学习方式才是知乎博客的意义所在。
为了使本文尽量生动有趣,我用葫芦娃作为例子展示YOLO的过程(真的是尽力了。。。)。