GOOGLE ADS

понедельник, 11 апреля 2022 г.

Как преобразовать ограничивающую рамку (x1, y1, x2, y2) в стиль YOLO (X, Y, W, H)

Я тренирую модель YOLO, у меня есть ограничивающие рамки в этом формате: -

x1, y1, x2, y2 => ex (100, 100, 200, 200)

Мне нужно преобразовать его в формат YOLO, чтобы он выглядел примерно так: -

X, Y, W, H => 0.436262 0.474010 0.383663 0.178218

Я уже рассчитал центральную точку X, Y, высоту H и вес W. Но все еще нужно, чтобы преобразовать их в числа с плавающей запятой, как уже упоминалось.


Решение проблемы

Вот фрагмент кода в python для преобразования координат x, y в формат yolo

def convert(size, box):
dw = 1./size[0]
dh = 1./size[1]
x = (box[0] + box[1])/2.0
y = (box[2] + box[3])/2.0
w = box[1] - box[0]
h = box[3] - box[2]
x = x*dw
w = w*dw
y = y*dh
h = h*dh
return (x,y,w,h)
im=Image.open(img_path)
w= int(im.size[0])
h= int(im.size[1])
print(xmin, xmax, ymin, ymax) #define your x,y coordinates
b = (xmin, xmax, ymin, ymax)
bb = convert((w,h), b)

Проверьте мой образец программы для преобразования из формата инструмента аннотации LabelMe в формат Yolo https://github.com/ivder/LabelMeYoloConverter

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...