#python #opencv #yolo
#python #opencv #yolo
Вопрос:
Я пытаюсь изменить размер изображений, но изменение размера изображений также требует от меня изменения значений ограничивающей рамки. Имеет ли это формат yolo x y ширина высота
Когда я изменяю размер изображения определенной ширины и высоты, какова была бы логика преобразования нормализованного значения связанного поля в формате x y Width height в новые значения после изменения размера изображения на temp_width и temp_height в python
Комментарии:
1.
scaling_factor_width = newImageSizeWidth/oldImageSizeWidth
теперь просто масштабируйте координату x ограничивающего прямоугольника и значение ширины ограничивающего прямоугольника с этим коэффициентом масштабирования. То же самое для scale_factor_height и высоты и координаты y ограничивающей рамки. Если вы хотите использовать вложенные изображения (обрезка), вам нужно будет вычесть новую координату x / y положения вложенного изображения из положения x / y ограничивающей рамки.
Ответ №1:
Формат YOLO действительно представляет собой нормализованные координаты / данные bbox (он же ограничительный прямоугольник).
Здесь есть четкие объяснения, как получить эти данные (а также Pascal VOC).
Ниже вы найдете код для получения этих данных в формате Yolo.
Тогда вы поймете, что до тех пор, пока вы используете масштабированные изображения, вам нечего менять.
Действительно, нормализованные координаты x_center, y_center, box_width и box_height bbox будут масштабироваться соответственно изображениям.
Но если вы их обрезаете, вам нужно будет получить координаты [x_topleft, y_topleft, box_width, box_height] bbox и нормализовать их с учетом размера crop_image.
Предположим, у вас есть ‘bbox’:
bbox = np.array([x_topleft, y_topleft, box_width, box_height])
b_width = bbox[2,]
b_height = bbox[3,]
x_max = bbox[0,] b_width
y_max = bbox[1,] b_height
bbox[0,] = ((x_max bbox[0,]) / 2) / width
bbox[1,] = ((y_max bbox[1,]) / 2) / height
bbox[2,] = bbox[2,] / width
bbox[3,] = bbox[3,] / height
bobox = bbox[0,], bbox[1,], bbox[2,], bbox[3,] # normalized x_center, y_center, box_width and box_height