《博主简介》
小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
👍感谢小伙伴们点赞、关注!
《------往期经典推荐------》
一、AI应用软件开发实战专栏【链接】
项目名称 | 项目名称 |
---|---|
1.【人脸识别与管理系统开发】 | 2.【车牌识别与自动收费管理系统开发】 |
3.【手势识别系统开发】 | 4.【人脸面部活体检测系统开发】 |
5.【图片风格快速迁移软件开发】 | 6.【人脸表表情识别系统】 |
7.【YOLOv8多目标识别与自动标注软件开发】 | 8.【基于YOLOv8深度学习的行人跌倒检测系统】 |
9.【基于YOLOv8深度学习的PCB板缺陷检测系统】 | 10.【基于YOLOv8深度学习的生活垃圾分类目标检测系统】 |
11.【基于YOLOv8深度学习的安全帽目标检测系统】 | 12.【基于YOLOv8深度学习的120种犬类检测与识别系统】 |
13.【基于YOLOv8深度学习的路面坑洞检测系统】 | 14.【基于YOLOv8深度学习的火焰烟雾检测系统】 |
15.【基于YOLOv8深度学习的钢材表面缺陷检测系统】 | 16.【基于YOLOv8深度学习的舰船目标分类检测系统】 |
17.【基于YOLOv8深度学习的西红柿成熟度检测系统】 | 18.【基于YOLOv8深度学习的血细胞检测与计数系统】 |
19.【基于YOLOv8深度学习的吸烟/抽烟行为检测系统】 | 20.【基于YOLOv8深度学习的水稻害虫检测与识别系统】 |
21.【基于YOLOv8深度学习的高精度车辆行人检测与计数系统】 | 22.【基于YOLOv8深度学习的路面标志线检测与识别系统】 |
23.【基于YOLOv8深度学习的智能小麦害虫检测识别系统】 | 24.【基于YOLOv8深度学习的智能玉米害虫检测识别系统】 |
25.【基于YOLOv8深度学习的200种鸟类智能检测与识别系统】 | 26.【基于YOLOv8深度学习的45种交通标志智能检测与识别系统】 |
27.【基于YOLOv8深度学习的人脸面部表情识别系统】 | 28.【基于YOLOv8深度学习的苹果叶片病害智能诊断系统】 |
29.【基于YOLOv8深度学习的智能肺炎诊断系统】 | 30.【基于YOLOv8深度学习的葡萄簇目标检测系统】 |
31.【基于YOLOv8深度学习的100种中草药智能识别系统】 | 32.【基于YOLOv8深度学习的102种花卉智能识别系统】 |
33.【基于YOLOv8深度学习的100种蝴蝶智能识别系统】 | 34.【基于YOLOv8深度学习的水稻叶片病害智能诊断系统】 |
35.【基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统】 | 36.【基于YOLOv8深度学习的智能草莓病害检测与分割系统】 |
37.【基于YOLOv8深度学习的复杂场景下船舶目标检测系统】 | 38.【基于YOLOv8深度学习的农作物幼苗与杂草检测系统】 |
39.【基于YOLOv8深度学习的智能道路裂缝检测与分析系统】 | 40.【基于YOLOv8深度学习的葡萄病害智能诊断与防治系统】 |
41.【基于YOLOv8深度学习的遥感地理空间物体检测系统】 | 42.【基于YOLOv8深度学习的无人机视角地面物体检测系统】 |
43.【基于YOLOv8深度学习的木薯病害智能诊断与防治系统】 | 44.【基于YOLOv8深度学习的野外火焰烟雾检测系统】 |
45.【基于YOLOv8深度学习的脑肿瘤智能检测系统】 | 46.【基于YOLOv8深度学习的玉米叶片病害智能诊断与防治系统】 |
47.【基于YOLOv8深度学习的橙子病害智能诊断与防治系统】 | 48.【车辆检测追踪与流量计数系统】 |
49.【行人检测追踪与双向流量计数系统】 | 50.【基于YOLOv8深度学习的反光衣检测与预警系统】 |
51.【危险区域人员闯入检测与报警系统】 | 52.【高密度人脸智能检测与统计系统】 |
53.【CT扫描图像肾结石智能检测系统】 | 54.【水果智能检测系统】 |
55.【水果质量好坏智能检测系统】 | 56.【蔬菜目标检测与识别系统】 |
57.【非机动车驾驶员头盔检测系统】 | 58.【太阳能电池板检测与分析系统】 |
59.【工业螺栓螺母检测】 | 60.【金属焊缝缺陷检测系统】 |
61.【链条缺陷检测与识别系统】 | 62.【交通信号灯检测识别】 |
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
《------正文------》
目录
- 引言
- 什么是Padding填充
- 无填充卷积层的问题
- 填充对输入图像的影响
- 填充的优缺点
- 卷积层中填充的优点
- 卷积层中填充的缺点
引言
在卷积过程中,输出特征图的大小由输入特征图的大小、卷积核的大小和步幅决定。如果我们简单地在输入特征图上应用卷积核,那么输出特征图将小于输入。这可能导致输入特征图边界处的信息丢失。为了保留边界信息,我们使用填充。
什么是Padding填充
填充是一种用于在对特征图进行卷积操作之后保持输入图像空间维度的技术。填充涉及在卷积之前在输入特征图的边界周围添加额外的像素。
这可以通过两种方式完成:
- 有效填充:指在输入数据外围不添加任何填充,只使用原始数据进行卷积操作,输出的特征图尺寸会小于输入数据的尺寸。当我们想要减少特征图的空间维度时,这很有用。
- 相同填充:指在输入数据外围添加一定数量的0值元素,使得输出的特征图尺寸与输入数据的尺寸相同。当我们想要保留特征图的空间维度时,这很有用。
要添加用于填充的像素数量可以基于内核的大小和特征图大小的期望输出来计算。最常见的填充值是零填充,它涉及向输入特征图的边界添加零。
填充可以帮助减少输入特征图边界处的信息丢失,并可以提高模型的性能。然而,它也增加了卷积运算的计算成本。总的来说,填充是CNN中的一项重要技术,有助于保留特征图的空间维度,并可以提高模型的性能。
无填充卷积层的问题
- 对于灰度(n x n)图像和(f x f)滤波器/卷积核,由卷积运算产生的图像的维度是(n-f + 1)x(n-f + 1)。
例如,对于(8 x 8)图像和(3 x 3)滤波器,卷积运算后的输出大小为(6 x 6)。因此,每次执行卷积操作时,图像都会缩小。这对图像缩小到零之前可以执行此类操作的次数设置了上限,从而阻止我们构建更深层次的网络。 - 此外,角落和边缘上的像素比中间的像素使用得少得多。
例如:下图中像素A仅在一次卷积操作中被触摸,像素B在3次卷积操作中被触摸,而像素C在9次卷积操作中被触摸。一般来说,中间的像素比角落和边缘上的像素使用得更频繁。因此,关于图像的边界的信息不能像中间的信息那样被保留。
填充对输入图像的影响
填充只是一个向输入图像添加零层的过程,以便通过对输入图像的更改,来避免上述问题。
填充可防止输入图像缩小。
n X n的大小图像输入,图像输出大小为(n +2p- f + 1)x(n +2p- f + 1)
p=添加到图像边界的零层的数量,
f = 卷积核的大小
例如,通过向(8 x 8)图像添加 一层填充(p=1) 并使用(3 x 3)过滤器,我们将在执行卷积操作后获得(8 x 8)输出。
如果是(5 X 5 )的卷积核大小,要保持相同的特征图尺寸输入与输出大小一致,则需要2层填充(p=2)。
这通过将原始图像的边界处的像素带入填充图像的中间来增加它们的贡献。因此,保留了边界信息以及图像中间的信息。
除了零填充之外,还可以使用其他类型的填充,例如反射填充和复制填充。反射填充涉及沿输入特征图的边界沿着反射输入特征图,而复制填充涉及沿输入特征图的边界沿着复制输入特征图的像素。
填充类型的选择取决于模型的特定要求和手头的任务。一般来说,当我们想要保留特征图的空间维度时,相同的填充是首选的,而当我们想要减少特征图的空间维度时,有效的填充是首选的。
填充的优缺点
卷积层中填充的优点
- 保留空间信息:填充有助于保留特征图的空间维度,这在许多图像处理任务中非常重要。在没有填充的情况下,特征图的空间维度将在每次卷积操作之后减小,这可能导致输入特征图的边界处的重要信息的丢失。
- 改进的模型性能:填充可以通过减少输入特征图边界处的信息丢失来帮助提高模型的性能。这可以导致更好的准确性和更高的预测分数。
- 灵活性:填充的使用提供了选择内核大小和步幅的灵活性。它可以允许使用更大的内核和/或步幅,而不会丢失重要的空间信息。
卷积层中填充的缺点
- 增加计算成本:填充涉及向输入特征图添加额外的像素,这增加了卷积运算的计算成本。这可能导致更长的训练时间和更慢的推理时间。
- 增加的内存使用:使用填充会增加模型的内存使用,这在资源受限的环境中可能是一个问题。
- 总的来说,在大多数情况下,卷积层中填充的优点大于缺点,因为它可以帮助保留空间信息,提高模型性能,并提供选择内核大小和步幅的灵活性。然而,在设计卷积神经网络时,应考虑增加的计算成本和内存使用。
好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~