【问题标题】:How YOLO handles the input images of different sizes?YOLO 如何处理不同大小的输入图像?
【发布时间】:2023-02-17 21:09:18
【问题描述】:
我正在使用 YOLOv5 进行自定义对象检测。我们可以为网络提供不同的输入图像尺寸。 DNN 网络如何接受不同大小的输入? YOLO 是否针对不同的输入大小有不同的主干?
当我将参数 --imgsz 设为 640 时,YOLO 数据加载器将其大小调整为 (384, 672, 3),如果 --imgsz 为 320,调整后的图像大小为 (224, 352, 2)。
由于传统的 CNN 接受固定正方形大小(等高和等宽)的输入,YOLO 如何处理可变图像大小?
【问题讨论】:
标签:
deep-learning
object-detection
yolov5
【解决方案1】:
YOLOv5 与许多现代目标检测网络一样,使用主干网络(通常是卷积神经网络或 CNN)从输入图像中提取特征。骨干网络提取的特征然后由附加层处理以产生对象检测。
YOLOv5(以及许多其他目标检测网络)中的主干网络通常由多个卷积层组成,每个卷积层都会降低输入图像的空间分辨率。然后将主干网络生成的最终特征图送入附加层以生成对象检测。
YOLOv5 旨在接受不同尺寸的输入图像。当您指定 --imgsz 参数时,YOLOv5 的数据加载器会在通过网络传递每个输入图像之前将其调整为指定大小。 YOLOv5 中的主干网络旨在通过使用具有不同内核大小和步长的卷积层的组合来处理不同大小的图像。这允许网络在保留重要特征的同时有效地对输入图像进行下采样。
值得注意的是,调整输入图像的大小会对网络的准确性产生影响。一般来说,较大的输入图像会提供更好的准确性,但也需要更多的处理时间和内存。较小的输入图像可能会更快地处理,但可能会导致较低的准确性。在为您的网络选择输入大小时,在准确性和计算资源之间取得平衡非常重要。