我有一个数据集,它提供以下格式的边界框坐标。
height- 84 width- 81 x - 343 y - 510。现在,我想标准化这些值(0-1)以使用yolov5模型训练它们。我在网上查了一下,发现我可以通过两种方式标准化这些值。方式一:
Normalized(Xmin) = (Xmin+w/2)/Image_Width
Normalized(Ymin) = (Ymin+h/2)/Image_Height
Normalized(w) = w/Image_Width
Normalized(h) = h/Image_Height
方式二:x_center和width除以图像宽度,y_center和height除以图像高度。 现在,我不确定应该遵循哪种方式来标准化给定数据集中的值。谁能建议我任何解决方案?另外,我的数据集中给定图像的大小是 1024 x 1024。现在,如果我将图像转换为 512 x 512 大小,我如何计算新的边界框坐标,即高度、宽度 x 和 y 的值是多少?
首先,Yolov5 会为您调整图像和边界框的大小,因此您不必担心这一点。默认情况下,它将最长边的大小调整为 640px,最短边的大小将调整为保留原始图像纵横比的长度。
关于归一化[0-1]。
Yolov5
期望的是 bbox 的中心点,而不是最小点,因此如果您的 box 尺寸 是 height = 84px
和 width = 81px
并且 那些 x
和 y
是 bbox 的最小点 (我不确定你的帖子),你的公式有效,因为你正在计算中心点:
Normalized(**x_center**) = (Xmin+w/2)/Image_Width
Normalized(**y_center**) = (Ymin+h/2)/Image_Height
...
关于调整大小: https://github.com/ultralytics/yolov5/discussions/7126#discussioncomment-2429260