yolo数据归一化

321 阅读1分钟
{
  "version": "5.2.1",
  "flags": {},
  "shapes": [
    {
      "label": "cat",
      "points": [
        [
          75.68627450980398,
          62.54901960784309
        ],
        [
          693.3333333333334,
          636.078431372549
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "rectangle",
      "flags": {}
    },
    {
      "label": "leye",
      "points": [
        [
          230.58823529411768,
          388.0392156862744
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    },
    {
      "label": "reye",
      "points": [
        [
          373.72549019607857,
          428.23529411764696
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    }
  ],
  "imagePath": "0.jpg",
  "imageData": "",
  "imageHeight": 1280,
  "imageWidth": 720
}这些数据我该如何归一化呢

根据给出的数据,你可以按照以下步骤进行归一化处理:

1. 首先,根据图片的宽度和高度,将边界框的坐标和宽高进行归一化。图片的宽度为720,高度为1280。

   对于"cat"标签的边界框:
   - 中心点坐标:(x, y) = ((75.68627450980398 + 693.3333333333334) / 2, (62.54901960784309 + 636.078431372549) / 2) = (384.5098039215682, 349.31372549019605)
   - 宽度:width = 693.3333333333334 - 75.68627450980398 = 617.6470588235294
   - 高度:height = 636.078431372549 - 62.54901960784309 = 573.5294117647059

   归一化后的值为:
   - 中心点坐标:(x_normalized, y_normalized) = (384.5098039215682 / 720, 349.31372549019605 / 1280) = (0.5340137254901961, 0.2728170980392157)
   - 宽度:width_normalized = log(617.6470588235294 / anchor_width)
   - 高度:height_normalized = log(573.5294117647059 / anchor_height)

   对于"leye"标签的点:
   - 归一化后的值:(x_normalized, y_normalized) = (230.58823529411768 / 720, 388.0392156862744 / 1280) = (0.3206547843137255, 0.30348605098039214)

   对于"reye"标签的点:
   - 归一化后的值:(x_normalized, y_normalized) = (373.72549019607857 / 720, 428.23529411764696 / 1280) = (0.5190637362745098, 0.3341748399172797)

2. 对于类别,可以使用one-hot编码进行表示。根据给定的标签,"cat"的类别编码为[1, 0, 0]。

综上所述,你可以将给定的数据进行归一化处理得到以下结果:


{
  "version": "5.2.1",
  "flags": {},
  "shapes": [
    {
      "label": "cat",
      "points": [
        [
          0.5340137254901961,
          0.2728170980392157
        ],
        [
          0.3206547843137255,
          0.30348605098039214
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "rectangle",
      "flags": {}
    },
    {
      "label": "leye",
      "points": [
        [
          0.5190637362745098,
          0.3341748399172797
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    },
    {
      "label": "reye",
      "points": [
        [
          0.5190637362745098,
          0.3341748399172797
        ]
      ],
      "group_id": null,
      "description": "",
      "shape_type": "point",
      "flags": {}
    }
  ],
  "imagePath": "0.jpg",
  "imageData": "",
  "imageHeight": 1280,
  "imageWidth": 720
}


请注意,这里仅给出了归一化的示例,对于YOLOv5的训练和推理,还需要考虑其他参数,例如先验框(anchor box)的宽度和高度,以及使用的模型配置等。